X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gas%2Ftestsuite%2Fgas%2Felf%2Felf.exp;h=746ff7eea0ddb323a18ed64a5699e6734be890dc;hb=f1f28025c3ea75d5368ddd3046461648145b89b3;hp=b437730ca980b0c8f514a47058da118913a5e75f;hpb=7bfd842d05042bfa697b1ded0c8f9bf3e58171fe;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index b437730ca9..746ff7eea0 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -1,3 +1,19 @@ +# Copyright (C) 2012-2020 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + # # elf tests # @@ -39,11 +55,37 @@ proc run_elf_list_test { name suffix opts readelf_opts readelf_pipe } { # We're testing bits in obj-elf -- don't run on anything else. if { [is_elf_format] } then { set target_machine "" + set dump_opts "" + if {[istarget "arc*-*-*"]} { + set target_machine -arc + } + if {[istarget "arm*-*-*"]} { + set target_machine -arm + } + if {[istarget "avr*-*-*"]} { + set dump_opts {{as -mno-link-relax}} + } + if {[istarget "m32r*-*-*"]} then { + set target_machine -m32r + } if {[istarget "mips*-*-*"]} then { set target_machine -mips } - if {[istarget m32r*-*-*]} then { - set target_machine -m32r + if {[istarget "msp430-*-*"]} then { + set target_machine -msp430 + } + if {[istarget "pru-*-*"]} { + set dump_opts {{as -mno-link-relax}} + } + if {[istarget "riscv*-*-*"]} then { + set target_machine -riscv + set dump_opts {{as -mno-relax}} + } + if {[istarget "rl78-*-*"]} then { + set target_machine -rl78 + } + if {[istarget "rx-*-*"]} then { + set target_machine -rx } if {[istarget "score-*-*"]} then { set target_machine -score @@ -51,29 +93,22 @@ if { [is_elf_format] } then { if {[istarget "tic6x-*-*"]} then { set target_machine -tic6x } + if {[istarget "v850*-*-*"]} then { + set target_machine -v850 + } if {[istarget "xtensa*-*-*"]} then { set target_machine -xtensa - } - if {[istarget "rx-*-*"]} then { - set target_machine -rx - } - if {[istarget "arm*-*-*"]} { - - if { ([istarget "*-*-*eabi"] - || [istarget "*-*-linux-*"] - || [istarget "*-*-nacl*"] - || [istarget "*-*-symbianelf"])} then { - set target_machine -armeabi - } else { - set target_machine -armelf - } + set dump_opts {{as --no-link-relax}} } # 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 "am3*-*-*"] && ![istarget "xtensa*-*-*"] + && ![istarget "msp430*-*-*"] + && ![istarget "nds32*-*-*"] && ![istarget "am3*-*-*"]} then { run_dump_test "ehopt0" } @@ -91,19 +126,25 @@ if { [is_elf_format] } then { run_dump_test "file" } } + run_dump_test "file-2" + setup_xfail "nds32*-*-*" run_dump_test "group0a" run_dump_test "group0b" run_dump_test "group0c" run_dump_test "group1a" run_dump_test "group1b" + run_dump_test "group2" + run_dump_test "group3" case $target_triplet in { { hppa64*-*-hpux* } { } + { riscv*-*-* } { } default { run_dump_test "groupautoa" } } case $target_triplet in { { hppa64*-*-hpux* } { } + { riscv*-*-* } { } { xtensa*-*-* } { } default { run_dump_test "groupautob" @@ -111,6 +152,8 @@ if { [is_elf_format] } then { } case $target_triplet in { { alpha*-*-* } { } + { am3*-*-* } { } + { *c54x*-*-* } { } { cr16*-*-* } { } { crx*-*-* } { } { h8300-*-* } { } @@ -119,14 +162,16 @@ if { [is_elf_format] } then { { mips*-*-* } { } { mn10200-*-* } { } { mn10300-*-* } { } - { *c54x*-*-* } { } + { msp43*-*-* } { } + { rl78-*-* } { } + { riscv*-*-* } { } { rx-*-* } { } 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 "m681*-*-*" "m68hc*-*-*" + setup_xfail "m681*-*-*" "m68hc*-*-*" "xgate-*-*" "vax-*-*" run_dump_test redef run_dump_test equ-reloc } @@ -134,10 +179,19 @@ if { [is_elf_format] } then { run_dump_test "pseudo" run_dump_test "section0" run_dump_test "section1" + # The h8300 port issues a warning message for + # new sections created without atrributes. if {! [istarget "h8300-*-*"]} then { - # The h8300 port issues a warning message for - # new sections created without atrributes. - run_elf_list_test "section2" "$target_machine" "-al" "-s" "" + set as_flags "-al --generate-missing-build-notes=no" + case $target_triplet in { + { i*86-*-* x86_64-*-* } { + set as_flags "$as_flags -mx86-used-note=no" + } + { riscv*-*-* } { + set as_flags "$as_flags -march-attr" + } + } + run_elf_list_test "section2" "$target_machine" "$as_flags" "-s" "" } run_dump_test "section3" run_dump_test "section4" @@ -154,15 +208,21 @@ if { [is_elf_format] } then { run_dump_test "symtab" } run_dump_test "symver" + run_dump_test "pr21661" + run_dump_test "pr14891" # No indirect functions on non-GNU targets. - # The MSP port sets the ELF header's OSABI field to ELFOSABI_STANDALONE. + # The Visium and MSP set 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 "*-*-hpux*"] + # We also need to exclude targets that do not support unique objects. + if { [istarget "*-*-hpux*"] + || [istarget "arm*-*-*"] || [istarget "msp*-*-*"] - || [istarget "arm*-*-*"]} then { + || [istarget "visium-*-*"] + || ![supports_gnu_unique] + } then { # hppa64 has a non-standard common directive if { ![istarget "hppa64*-*-hpux*"] } then { run_elf_list_test "type-noifunc" "" "" "-s" "| grep \"1 *\\\[FONTC\\\]\"" @@ -170,25 +230,69 @@ if { [is_elf_format] } then { } else { run_dump_test ifunc-1 run_elf_list_test "type" "" "" "-s" "| grep \"1 *\\\[FIONTCU\\\]\"" + run_elf_list_test "type-2" "" "--warn" "-s" "| grep \"0 *\\\[FIONT\\\]\"" } run_dump_test "section6" run_dump_test "section7" run_dump_test "section8" run_dump_test "section9" - run_dump_test "dwarf2-1" - run_dump_test "dwarf2-2" - run_dump_test "dwarf2-3" - run_dump_test "dwarf2-4" + run_dump_test "section10" + run_dump_test "section11" + run_dump_test "section12a" + run_dump_test "section12b" + run_dump_test "section13" + run_dump_test "section14" + run_dump_test "dwarf2-1" $dump_opts + run_dump_test "dwarf2-2" $dump_opts + run_dump_test "dwarf2-3" $dump_opts + run_dump_test "dwarf2-4" $dump_opts + run_dump_test "dwarf2-5" $dump_opts + run_dump_test "dwarf2-6" $dump_opts + run_dump_test "dwarf2-7" $dump_opts + run_dump_test "dwarf2-8" $dump_opts + run_dump_test "dwarf2-9" $dump_opts + run_dump_test "dwarf2-10" $dump_opts + run_dump_test "dwarf2-11" $dump_opts + run_dump_test "dwarf2-12" $dump_opts + run_dump_test "dwarf2-13" $dump_opts + run_dump_test "dwarf2-14" $dump_opts + run_dump_test "dwarf2-15" $dump_opts + run_dump_test "dwarf2-16" $dump_opts + run_dump_test "dwarf2-17" $dump_opts + run_dump_test "dwarf2-18" $dump_opts + run_dump_test "dwarf2-19" $dump_opts + run_dump_test "bss" + run_dump_test "bad-bss" run_dump_test "bad-section-flag" run_dump_test "bad-size" run_dump_test "bad-group" run_dump_test "syms" + + run_dump_test "missing-build-notes" -load_lib gas-dg.exp -dg-init -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/err-*.s $srcdir/$subdir/warn-*.s]] "" "" -dg-finish + run_dump_test "common1" + run_dump_test "common2" + + # hpux has a non-standard common directive. + if { ![istarget "*-*-hpux*"] } then { + run_dump_test "common3a" + run_dump_test "common3b" + run_dump_test "common4a" + run_dump_test "common4b" + run_dump_test "common5a" + run_dump_test "common5b" + run_dump_test "common5c" + run_dump_test "common5d" + } + + run_dump_test "strtab" + + run_dump_test "bignums" + load_lib gas-dg.exp + dg-init + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/err-*.s $srcdir/$subdir/warn-*.s]] "" "" + dg-finish }