ld-gc tests on underscore targets

Adjust tests to reference __start and __stop syms with an extra
leading underscore when appropriate, and run tests on more targets.

	* testsuite/ld-gc/gc.exp: Define UNDERSCORE in ASFLAGS.
	Move tests with ELF section directives to is_elf_format block.
	* testsuite/ld-gc/abi-note.d: Run on more targets.
	* testsuite/ld-gc/pr19167.d: Likewise and adjust xfails.
	* testsuite/ld-gc/start.d: Likewise.
	* testsuite/ld-gc/start2.d: Likewise.
	* testsuite/ld-gc/stop.d: Likewise.
	* testsuite/ld-gc/pr19167a.s: Add support for underscore targets.
	* testsuite/ld-gc/start.s: Likewise.
	* testsuite/ld-gc/start2.s: Likewise.
This commit is contained in:
Alan Modra
2021-03-03 17:25:28 +10:30
parent dc83f2d20e
commit 270f32fc50
10 changed files with 48 additions and 18 deletions

View File

@ -1,3 +1,16 @@
2021-03-03 Alan Modra <amodra@gmail.com>
* testsuite/ld-gc/gc.exp: Define UNDERSCORE in ASFLAGS.
Move tests with ELF section directives to is_elf_format block.
* testsuite/ld-gc/abi-note.d: Run on more targets.
* testsuite/ld-gc/pr19167.d: Likewise and adjust xfails.
* testsuite/ld-gc/start.d: Likewise.
* testsuite/ld-gc/start2.d: Likewise.
* testsuite/ld-gc/stop.d: Likewise.
* testsuite/ld-gc/pr19167a.s: Add support for underscore targets.
* testsuite/ld-gc/start.s: Likewise.
* testsuite/ld-gc/start2.s: Likewise.
2021-03-02 Nick Alcock <nick.alcock@oracle.com> 2021-03-02 Nick Alcock <nick.alcock@oracle.com>
* ldelfgen.c (ldelf_ctf_strtab_iter_cb): Skip zero-refcount strings. * ldelfgen.c (ldelf_ctf_strtab_iter_cb): Skip zero-refcount strings.

View File

@ -1,7 +1,6 @@
#name: --gc-sections with note section #name: --gc-sections with note section
#ld: --gc-sections -e _start #ld: --gc-sections -e _start
#readelf: -S --wide #readelf: -S --wide
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
#... #...
.* .note.ABI-tag[ ]+NOTE.* .* .note.ABI-tag[ ]+NOTE.*

View File

@ -86,15 +86,21 @@ test_gc "Check --gc-section/-q" "gcrexe" $ld "--gc-sections -q -e main"
test_gc "Check --gc-section/-r/-e" "gcrel" $ld "-r --gc-sections -e main" test_gc "Check --gc-section/-r/-e" "gcrel" $ld "-r --gc-sections -e main"
test_gc "Check --gc-section/-r/-u" "gcrel" $ld "-r --gc-sections -u used_func" test_gc "Check --gc-section/-r/-u" "gcrel" $ld "-r --gc-sections -u used_func"
set old_asflags $ASFLAGS
if [is_underscore_target] {
set ASFLAGS "$ASFLAGS --defsym UNDERSCORE=1"
}
run_dump_test "noent" run_dump_test "noent"
run_dump_test "abi-note"
run_dump_test "start"
run_dump_test "start2"
run_dump_test "stop"
run_dump_test "pr19167"
if { [is_elf_format] } then { if { [is_elf_format] } then {
run_dump_test "abi-note"
run_dump_test "all-debug-sections" run_dump_test "all-debug-sections"
run_dump_test "pr19167"
run_dump_test "pr20882" run_dump_test "pr20882"
run_dump_test "stop"
run_dump_test "start"
run_dump_test "start2"
} }
if { [is_elf_format] && [check_shared_lib_support] } then { if { [is_elf_format] && [check_shared_lib_support] } then {
@ -175,3 +181,5 @@ if { [is_elf_format] && [check_shared_lib_support] \
if { [is_elf_format] } then { if { [is_elf_format] } then {
run_dump_test "skip-map-discarded" run_dump_test "skip-map-discarded"
} }
set ASFLAGS $old_asflags

View File

@ -2,8 +2,7 @@
#source: pr19167b.s #source: pr19167b.s
#ld: --gc-sections -e _start #ld: --gc-sections -e _start
#objdump: -s -j _foo #objdump: -s -j _foo
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi #xfail: bfin-*-*linux* frv-*-*linux* lm32-*-*linux*
#xfail: frv-*-* metag-*-*
#... #...
Contents of section _foo: Contents of section _foo:

View File

@ -1,6 +1,10 @@
.globl _start .globl _start
_start: _start:
.ifdef UNDERSCORE
.dc.a ___start__foo
.else
.dc.a __start__foo .dc.a __start__foo
.endif
.section _foo,"aw",%progbits .section _foo,"aw",%progbits
foo: foo:
.ascii "This is " .ascii "This is "

View File

@ -1,9 +1,8 @@
#name: --gc-sections with __start_ #name: --gc-sections with __start_
#ld: --gc-sections -e _start #ld: --gc-sections -e _start
#nm: -n #nm: -n
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi #xfail: bfin-*-*linux* frv-*-*linux* lm32-*-*linux*
#xfail: frv-*-* metag-*-*
#... #...
[0-9a-f]+ D +__start__foo [0-9a-f]+ D +_?__start__foo
#... #...

View File

@ -1,6 +1,10 @@
.globl _start .globl _start
_start: _start:
.ifdef UNDERSCORE
.dc.a ___start__foo
.else
.dc.a __start__foo .dc.a __start__foo
.endif
.section _foo,"aw",%progbits .section _foo,"aw",%progbits
foo: foo:
.long 1 .long 1

View File

@ -1,10 +1,10 @@
#name: --gc-sections with -z start-stop-gc #name: --gc-sections with -z start-stop-gc
#ld: --gc-sections -e _start -z start-stop-gc #ld: --gc-sections -e _start -z start-stop-gc
#nm: -n #nm: -n
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi #notarget: [uses_genelf]
#xfail: bfin-*-*linux* frv-*-* #xfail: bfin-*-*linux* frv-*-*linux*
#failif #failif
#... #...
[0-9a-f]+ D +__start__foo [0-9a-f]+ D +_?__start__foo
#... #...

View File

@ -1,7 +1,12 @@
.globl _start .globl _start
_start: _start:
.ifdef UNDERSCORE
.weak ___start__foo
.dc.a ___start__foo
.else
.weak __start__foo .weak __start__foo
.dc.a __start__foo .dc.a __start__foo
.endif
.section _foo,"aw",%progbits .section _foo,"aw",%progbits
foo: foo:
.long 1 .long 1

View File

@ -1,9 +1,8 @@
#name: --gc-sections removing __stop_ #name: --gc-sections removing __stop_
#ld: --gc-sections -e _start #ld: --gc-sections -e _start
#nm: -n #nm: -n
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
#failif #failif
#... #...
[0-9a-f]+ D +__stop__foo [0-9a-f]+ D +_?__stop__foo
#... #...