mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-22 02:50:08 +08:00
mbind gas tests and supports_gnu_osabi testsuite infrastructure
With the addition of section16 tests we have multiple tests advertising themselves as "mbind sections" and "mbind section contents". This patch fixes that, and fails on quite a few targets that force an OSABI value. It's a pain specifying all the relevant arm targets on an xfail line, so I wrote supports_gnu_osabi. binutils/ * testsuite/lib/binutils-common.exp (match_target): Accept '!' before TCL procedure. (supports_gnu_osabi): New procedure. (is_generic): New, from ld-lib.exp. (supports_gnu_unique): Use the above. gas/ * testsuite/gas/elf/section12a.d: Use supports_gnu_osabi in xfail, and rename test. * testsuite/gas/elf/section12b.d: Likewise. * testsuite/gas/elf/section16a.d: Likewise. * testsuite/gas/elf/section16b.d: Likewise. ld/ * testsuite/lib/ld-lib.exp (is_generic): Delete. * testsuite/ld-unique/unique.exp: Exclude tic6x.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2020-02-06 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* testsuite/lib/binutils-common.exp (match_target): Accept '!' before
|
||||||
|
TCL procedure.
|
||||||
|
(supports_gnu_osabi): New procedure.
|
||||||
|
(is_generic): New, from ld-lib.exp.
|
||||||
|
(supports_gnu_unique): Use the above.
|
||||||
|
|
||||||
2020-02-04 Alan Modra <amodra@gmail.com>
|
2020-02-04 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* Makefile.am (CFILES): Add od-elf32_avr.c.
|
* Makefile.am (CFILES): Add od-elf32_avr.c.
|
||||||
|
@ -171,32 +171,38 @@ proc is_rela { binary_file } {
|
|||||||
# in square brackets or as machine triplet otherwise.
|
# in square brackets or as machine triplet otherwise.
|
||||||
#
|
#
|
||||||
proc match_target { target } {
|
proc match_target { target } {
|
||||||
if [string match {\[*\]} $target] {
|
if [regexp {^!?\[.*\]$} $target] {
|
||||||
return $target
|
return $target
|
||||||
} else {
|
} else {
|
||||||
return [istarget $target]
|
return [istarget $target]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# True if the ELF target supports STB_GNU_UNIQUE with the ELF header's
|
# True if the ELF target supports setting the ELF header OSABI field
|
||||||
# OSABI field set to ELFOSABI_GNU.
|
# to ELFOSABI_GNU or ELFOSABI_FREEBSD, a requirement for STT_GNU_IFUNC
|
||||||
|
# symbol and SHF_GNU_MBIND section support.
|
||||||
#
|
#
|
||||||
# This generally depends on the target OS only, however there are a
|
# This generally depends on the target OS only, however there are a
|
||||||
# number of exceptions for bare metal targets as follows. The MSP430
|
# number of exceptions for bare metal targets as follows. The MSP430
|
||||||
# and Visium targets set OSABI to ELFOSABI_STANDALONE and cannot
|
# and Visium targets set OSABI to ELFOSABI_STANDALONE. Likewise
|
||||||
# support STB_GNU_UNIQUE. Likewise non-EABI ARM targets set OSABI to
|
# non-EABI ARM targets set OSABI to ELFOSABI_ARM
|
||||||
# ELFOSABI_ARM, and TI C6X targets to ELFOSABI_C6000_*. Finally
|
|
||||||
# rather than `bfd_elf_final_link' a number of targets use
|
|
||||||
# `_bfd_generic_final_link', which does not support STB_GNU_UNIQUE
|
|
||||||
# symbol binding causing assertion failures.
|
|
||||||
#
|
#
|
||||||
proc supports_gnu_unique {} {
|
# Note that some TI C6X targets use ELFOSABI_C6000_* but one doesn't,
|
||||||
|
# so we don't try to sort out tic6x here. (The effect is that linker
|
||||||
|
# testcases will generally need to exclude tic6x or use a -m option.)
|
||||||
|
#
|
||||||
|
proc supports_gnu_osabi {} {
|
||||||
if { [istarget *-*-gnu*]
|
if { [istarget *-*-gnu*]
|
||||||
|| [istarget *-*-linux*]
|
|| [istarget *-*-linux*]
|
||||||
|| [istarget *-*-nacl*] } {
|
|| [istarget *-*-nacl*]
|
||||||
return 1
|
|| ( [istarget *-*-*bsd*] && ![istarget arm*-*-netbsd*] )
|
||||||
}
|
|| [istarget *-*-symbianelf]
|
||||||
if { [istarget "arm*-*-*eabi*"] } {
|
|| [istarget *-*-lynxos]
|
||||||
|
|| ( [istarget *-*-nto*] && ![istarget arm*-*-*] )
|
||||||
|
|| [istarget *-*-irix*]
|
||||||
|
|| [istarget *-*-*eabi*]
|
||||||
|
|| [istarget *-*-rtems*]
|
||||||
|
|| [istarget *-*-solaris*] } {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
if { [istarget "wasm32*-*-*"] } {
|
if { [istarget "wasm32*-*-*"] } {
|
||||||
@ -207,19 +213,36 @@ proc supports_gnu_unique {} {
|
|||||||
}
|
}
|
||||||
if { [istarget "arm*-*-*"]
|
if { [istarget "arm*-*-*"]
|
||||||
|| [istarget "msp430-*-*"]
|
|| [istarget "msp430-*-*"]
|
||||||
|| [istarget "tic6x-*-*"]
|
|
||||||
|| [istarget "visium-*-*"] } {
|
|| [istarget "visium-*-*"] } {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
if { [istarget "am33_2.0-*-*"]
|
return 1
|
||||||
|| [istarget "d30v-*-*"]
|
}
|
||||||
|
|
||||||
|
# Return true if target uses the generic_link_hash_table linker.
|
||||||
|
proc is_generic { } {
|
||||||
|
if { [istarget "d30v-*-*"]
|
||||||
|| [istarget "dlx-*-*"]
|
|| [istarget "dlx-*-*"]
|
||||||
|| [istarget "pj*-*-*"]
|
|| [istarget "pj*-*-*"]
|
||||||
|| [istarget "s12z-*-*"]
|
|| [istarget "s12z-*-*"]
|
||||||
|| [istarget "xgate-*-*"] } {
|
|| [istarget "xgate-*-*"] } {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# True if the ELF target supports STB_GNU_UNIQUE.
|
||||||
|
#
|
||||||
|
# This require ELFOSABI_GNU, and `bfd_elf_final_link'.
|
||||||
|
#
|
||||||
|
proc supports_gnu_unique {} {
|
||||||
|
if { [istarget *-*-freebsd*] } {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
return 1
|
if { [supports_gnu_osabi] && ![is_generic] } {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# True for targets that do not sort .symtab as per the ELF standard.
|
# True for targets that do not sort .symtab as per the ELF standard.
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
2020-02-06 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* testsuite/gas/elf/section12a.d: Use supports_gnu_osabi in
|
||||||
|
xfail, and rename test.
|
||||||
|
* testsuite/gas/elf/section12b.d: Likewise.
|
||||||
|
* testsuite/gas/elf/section16a.d: Likewise.
|
||||||
|
* testsuite/gas/elf/section16b.d: Likewise.
|
||||||
|
|
||||||
2020-02-02 H.J. Lu <hongjiu.lu@intel.com>
|
2020-02-02 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR gas/25380
|
PR gas/25380
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
#source: section12.s
|
#source: section12.s
|
||||||
#as: --no-pad-sections
|
#as: --no-pad-sections
|
||||||
#readelf: -Sg --wide
|
#readelf: -Sg --wide
|
||||||
#name: mbind sections
|
#name: mbind sections 12
|
||||||
# A number of targets do not support SHF_GNU_MBIND
|
# A number of targets do not support SHF_GNU_MBIND
|
||||||
#xfail: arm*-*-netbsdelf* arm*-*-nto* msp430-*-* visium-*-*
|
#xfail: ![supports_gnu_osabi]
|
||||||
#xfail: *-*-hpux* *-*-cloudabi
|
|
||||||
|
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] \.mbind\.data[ ]+PROGBITS[ ]+0+0 0+[0-9a-f]+ 0+1 00 WAD 0 0 1
|
\[[ 0-9]+\] \.mbind\.data[ ]+PROGBITS[ ]+0+0 0+[0-9a-f]+ 0+1 00 WAD 0 0 1
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
#source: section12.s
|
#source: section12.s
|
||||||
#as: --no-pad-sections
|
#as: --no-pad-sections
|
||||||
#objdump: -s
|
#objdump: -s
|
||||||
#name: mbind section contents
|
#name: mbind section contents 16
|
||||||
# RX annoyingly reorders the sections so that they do not match the sequence
|
# RX annoyingly reorders the sections so that they do not match the sequence
|
||||||
# expected below.
|
# expected below.
|
||||||
#xfail: rx-*-*
|
#xfail: rx-*-*
|
||||||
# A number of targets do not support SHF_GNU_MBIND
|
# A number of targets do not support SHF_GNU_MBIND
|
||||||
#xfail: arm*-*-netbsdelf* arm*-*-nto* msp430-*-* visium-*-*
|
#xfail: ![supports_gnu_osabi]
|
||||||
#xfail: *-*-hpux* *-*-cloudabi
|
|
||||||
|
|
||||||
#...
|
#...
|
||||||
Contents of section .mbind.data:
|
Contents of section .mbind.data:
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
#source: section16.s
|
#source: section16.s
|
||||||
#as: --no-pad-sections
|
#as: --no-pad-sections
|
||||||
#readelf: -Sg --wide
|
#readelf: -Sg --wide
|
||||||
#name: mbind sections
|
#name: mbind sections 16
|
||||||
# A number of targets do not support SHF_GNU_MBIND
|
# A number of targets do not support SHF_GNU_MBIND
|
||||||
#xfail: arm*-*-netbsdelf* arm*-*-nto* msp430-*-* visium-*-*
|
#xfail: ![supports_gnu_osabi]
|
||||||
#xfail: *-*-hpux* *-*-cloudabi
|
|
||||||
|
|
||||||
#...
|
#...
|
||||||
\[[ 0-9]+\] \.mbind\.data[ ]+PROGBITS[ ]+0+0 0+[0-9a-f]+ 0+1 00 WAD 0 0 1
|
\[[ 0-9]+\] \.mbind\.data[ ]+PROGBITS[ ]+0+0 0+[0-9a-f]+ 0+1 00 WAD 0 0 1
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
#source: section16.s
|
#source: section16.s
|
||||||
#as: --no-pad-sections
|
#as: --no-pad-sections
|
||||||
#objdump: -s
|
#objdump: -s
|
||||||
#name: mbind section contents
|
#name: mbind section contents 16
|
||||||
# RX annoyingly reorders the sections so that they do not match the sequence
|
# RX annoyingly reorders the sections so that they do not match the sequence
|
||||||
# expected below.
|
# expected below.
|
||||||
#xfail: rx-*-*
|
#xfail: rx-*-*
|
||||||
# A number of targets do not support SHF_GNU_MBIND
|
# A number of targets do not support SHF_GNU_MBIND
|
||||||
#xfail: arm*-*-netbsdelf* arm*-*-nto* msp430-*-* visium-*-*
|
#xfail: ![supports_gnu_osabi]
|
||||||
#xfail: *-*-hpux* *-*-cloudabi
|
|
||||||
|
|
||||||
#...
|
#...
|
||||||
Contents of section .mbind.data:
|
Contents of section .mbind.data:
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2020-02-06 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* testsuite/lib/ld-lib.exp (is_generic): Delete.
|
||||||
|
* testsuite/ld-unique/unique.exp: Exclude tic6x.
|
||||||
|
|
||||||
2020-02-06 Alan Modra <amodra@gmail.com>
|
2020-02-06 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* configure.tgt (i[3-7]86-*-moss*): Don't clear targ_extra_ofiles.
|
* configure.tgt (i[3-7]86-*-moss*): Don't clear targ_extra_ofiles.
|
||||||
|
@ -30,7 +30,7 @@ if { ![is_elf_format] } {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Require STB_GNU_UNIQUE support with OSABI set to GNU.
|
# Require STB_GNU_UNIQUE support with OSABI set to GNU.
|
||||||
if { ![supports_gnu_unique] } {
|
if { ![supports_gnu_unique] || [istarget tic6x-*-*] } {
|
||||||
verbose "UNIQUE tests not run - target does not support UNIQUE"
|
verbose "UNIQUE tests not run - target does not support UNIQUE"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -1088,18 +1088,6 @@ proc check_gc_sections_available { } {
|
|||||||
return $gc_sections_available_saved
|
return $gc_sections_available_saved
|
||||||
}
|
}
|
||||||
|
|
||||||
# Return true if target uses the generic_link_hash_table linker.
|
|
||||||
proc is_generic { } {
|
|
||||||
if { [istarget "d30v-*-*"]
|
|
||||||
|| [istarget "dlx-*-*"]
|
|
||||||
|| [istarget "pj*-*-*"]
|
|
||||||
|| [istarget "s12z-*-*"]
|
|
||||||
|| [istarget "xgate-*-*"] } {
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# Return true if target uses genelf.em.
|
# Return true if target uses genelf.em.
|
||||||
proc uses_genelf { } {
|
proc uses_genelf { } {
|
||||||
if { [istarget "d30v-*-*"]
|
if { [istarget "d30v-*-*"]
|
||||||
|
Reference in New Issue
Block a user