X-Git-Url: https://oss.titaniummirror.com/gitweb?p=msp430-binutils.git;a=blobdiff_plain;f=gas%2Ftestsuite%2Fgas%2Felf%2Felf.exp;fp=gas%2Ftestsuite%2Fgas%2Felf%2Felf.exp;h=65245f4e8a6e89328657bbc698ddaa4f1f87a052;hp=83c80824b39ec55f0ee4ca6ff1c756fffdadb106;hb=d5da4f291af551c0b8b79e1d4a9b173d60e5c10e;hpb=7b5ea4fcdf2819e070665ab5610f8b48e3867c10 diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index 83c8082..65245f4 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -15,7 +15,13 @@ proc run_elf_list_test { name suffix opts readelf_opts readelf_pipe } { return } send_log "$READELF $readelf_opts dump.o $readelf_pipe > dump.out\n" - catch "exec $READELF $readelf_opts dump.o $readelf_pipe > dump.out\n" comp_output + set status [gas_host_run "$READELF $readelf_opts dump.o" ">readelf.out"] + if { [lindex $status 0] != 0 || ![string match "" [lindex $status 1]] } then { + send_log "[lindex $status 1]\n" + fail $testname + return + } + catch "exec cat readelf.out $readelf_pipe > dump.out\n" comp_output if ![string match "" $comp_output] then { send_log "$comp_output\n" fail $testname @@ -53,7 +59,7 @@ if { ([istarget "*-*-*elf*"] if {[istarget "score-*-*"]} then { set target_machine -score } - if {[istarget "xtensa-*-*"]} then { + if {[istarget "xtensa*-*-*"]} then { set target_machine -xtensa } if { ([istarget "*arm*-*-*"] @@ -67,23 +73,49 @@ if { ([istarget "*-*-*elf*"] set target_machine -armelf } } - run_dump_test "ehopt0" + + # The MN10300 and Xtensa ports disable the assembler's call frame + # optimization because it interfers with link-time relaxation of + # function prologues. + if {![istarget "mn10300-*-*"] + && ![istarget "xtensa*-*-*"] + && ![istarget "am3*-*-*"]} then { + run_dump_test "ehopt0" + } + case $target_triplet in { + { m68k-*-* m68[03]??-*-* } { + run_dump_test "file" { { as "--defsym m68k=1" } } + } + { mmix-*-* } { + run_dump_test "file" { { as "--defsym mmix=1" } } + } + { xtensa*-*-* } { + run_dump_test "file" { { as "--rename-section file.s=file.c" } } + } + default { + run_dump_test "file" + } + } run_dump_test "group0a" run_dump_test "group0b" run_dump_test "group1a" run_dump_test "group1b" case $target_triplet in { { alpha*-*-* } { } + { cr16*-*-* } { } + { crx*-*-* } { } + { h8300-*-* } { } { hppa*-*-* } { } { iq2000*-*-* } { } { mips*-*-* } { } + { mn10200-*-* } { } + { mn10300-*-* } { } { *c54x*-*-* } { } default { # The next test can fail if the target does not convert fixups # against ordinary symbols into relocations against section symbols. # This is usually revealed by the error message: # symbol `sym' required but not present - setup_xfail "cr16-*-*" "h8300-*-*" "mn10300-*-*" run_dump_test redef run_dump_test equ-reloc } @@ -95,6 +127,22 @@ if { ([istarget "*-*-*elf*"] run_dump_test "section4" run_elf_list_test "section5" "" "-al" "-SW" "| grep \" \\\\.test\\\[0-9\\\]\"" run_dump_test "struct" - run_dump_test "symver" - run_elf_list_test "type" "" "" "-s" "| grep \"1 \\\[FONT\\\]\"" + run_dump_test "symtab" + run_dump_test "symver" + + # The MSP port sets the ELF header's OSABI field to ELFOSABI_STANDALONE. + # The non-eabi ARM ports sets it to ELFOSABI_ARM. + # So for these targets we cannot include an IFUNC symbol type + # in the symbol type test. + if { [istarget "msp*-*-*"] + || [istarget "arm*-*-*"] + || [istarget "xscale*-*-*"]} then { + run_elf_list_test "type-noifunc" "" "" "-s" "| grep \"1 \\\[FONTC\\\]\"" + } else { + run_dump_test ifunc-1 + run_elf_list_test "type" "" "" "-s" "| grep \"1 \\\[FIONTCU\\\]\"" + } + + run_dump_test "section6" + run_dump_test "section7" }