From 270f32fc50b465e84c214a17d4ad3aebc3161bae Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 3 Mar 2021 17:25:28 +1030 Subject: [PATCH] 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. --- ld/ChangeLog | 13 +++++++++++++ ld/testsuite/ld-gc/abi-note.d | 1 - ld/testsuite/ld-gc/gc.exp | 18 +++++++++++++----- ld/testsuite/ld-gc/pr19167.d | 3 +-- ld/testsuite/ld-gc/pr19167a.s | 4 ++++ ld/testsuite/ld-gc/start.d | 5 ++--- ld/testsuite/ld-gc/start.s | 6 +++++- ld/testsuite/ld-gc/start2.d | 6 +++--- ld/testsuite/ld-gc/start2.s | 7 ++++++- ld/testsuite/ld-gc/stop.d | 3 +-- 10 files changed, 48 insertions(+), 18 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 9116ee01170..bf1d226b809 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,16 @@ +2021-03-03 Alan Modra + + * 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 * ldelfgen.c (ldelf_ctf_strtab_iter_cb): Skip zero-refcount strings. diff --git a/ld/testsuite/ld-gc/abi-note.d b/ld/testsuite/ld-gc/abi-note.d index 12391e198a0..1f78ceaa351 100644 --- a/ld/testsuite/ld-gc/abi-note.d +++ b/ld/testsuite/ld-gc/abi-note.d @@ -1,7 +1,6 @@ #name: --gc-sections with note section #ld: --gc-sections -e _start #readelf: -S --wide -#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi #... .* .note.ABI-tag[ ]+NOTE.* diff --git a/ld/testsuite/ld-gc/gc.exp b/ld/testsuite/ld-gc/gc.exp index ad3bc2e641e..ba528d000bf 100644 --- a/ld/testsuite/ld-gc/gc.exp +++ b/ld/testsuite/ld-gc/gc.exp @@ -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/-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 "abi-note" -run_dump_test "start" -run_dump_test "start2" -run_dump_test "stop" -run_dump_test "pr19167" + if { [is_elf_format] } then { + run_dump_test "abi-note" run_dump_test "all-debug-sections" + run_dump_test "pr19167" 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 { @@ -175,3 +181,5 @@ if { [is_elf_format] && [check_shared_lib_support] \ if { [is_elf_format] } then { run_dump_test "skip-map-discarded" } + +set ASFLAGS $old_asflags diff --git a/ld/testsuite/ld-gc/pr19167.d b/ld/testsuite/ld-gc/pr19167.d index 9555cc8105a..f652dd018f4 100644 --- a/ld/testsuite/ld-gc/pr19167.d +++ b/ld/testsuite/ld-gc/pr19167.d @@ -2,8 +2,7 @@ #source: pr19167b.s #ld: --gc-sections -e _start #objdump: -s -j _foo -#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi -#xfail: frv-*-* metag-*-* +#xfail: bfin-*-*linux* frv-*-*linux* lm32-*-*linux* #... Contents of section _foo: diff --git a/ld/testsuite/ld-gc/pr19167a.s b/ld/testsuite/ld-gc/pr19167a.s index 7dc16e263f6..73a0a276809 100644 --- a/ld/testsuite/ld-gc/pr19167a.s +++ b/ld/testsuite/ld-gc/pr19167a.s @@ -1,6 +1,10 @@ .globl _start _start: + .ifdef UNDERSCORE + .dc.a ___start__foo + .else .dc.a __start__foo + .endif .section _foo,"aw",%progbits foo: .ascii "This is " diff --git a/ld/testsuite/ld-gc/start.d b/ld/testsuite/ld-gc/start.d index 85b06127226..0998ecfcc68 100644 --- a/ld/testsuite/ld-gc/start.d +++ b/ld/testsuite/ld-gc/start.d @@ -1,9 +1,8 @@ #name: --gc-sections with __start_ #ld: --gc-sections -e _start #nm: -n -#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi -#xfail: frv-*-* metag-*-* +#xfail: bfin-*-*linux* frv-*-*linux* lm32-*-*linux* #... -[0-9a-f]+ D +__start__foo +[0-9a-f]+ D +_?__start__foo #... diff --git a/ld/testsuite/ld-gc/start.s b/ld/testsuite/ld-gc/start.s index a417a97b22c..505122d5204 100644 --- a/ld/testsuite/ld-gc/start.s +++ b/ld/testsuite/ld-gc/start.s @@ -1,6 +1,10 @@ -.globl _start + .globl _start _start: + .ifdef UNDERSCORE + .dc.a ___start__foo + .else .dc.a __start__foo + .endif .section _foo,"aw",%progbits foo: .long 1 diff --git a/ld/testsuite/ld-gc/start2.d b/ld/testsuite/ld-gc/start2.d index 480dc74d9f3..b893ba23729 100644 --- a/ld/testsuite/ld-gc/start2.d +++ b/ld/testsuite/ld-gc/start2.d @@ -1,10 +1,10 @@ #name: --gc-sections with -z start-stop-gc #ld: --gc-sections -e _start -z start-stop-gc #nm: -n -#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi -#xfail: bfin-*-*linux* frv-*-* +#notarget: [uses_genelf] +#xfail: bfin-*-*linux* frv-*-*linux* #failif #... -[0-9a-f]+ D +__start__foo +[0-9a-f]+ D +_?__start__foo #... diff --git a/ld/testsuite/ld-gc/start2.s b/ld/testsuite/ld-gc/start2.s index b0084a188ae..920feb26936 100644 --- a/ld/testsuite/ld-gc/start2.s +++ b/ld/testsuite/ld-gc/start2.s @@ -1,7 +1,12 @@ -.globl _start + .globl _start _start: + .ifdef UNDERSCORE + .weak ___start__foo + .dc.a ___start__foo + .else .weak __start__foo .dc.a __start__foo + .endif .section _foo,"aw",%progbits foo: .long 1 diff --git a/ld/testsuite/ld-gc/stop.d b/ld/testsuite/ld-gc/stop.d index ebd3597d6e1..140d1d2f27e 100644 --- a/ld/testsuite/ld-gc/stop.d +++ b/ld/testsuite/ld-gc/stop.d @@ -1,9 +1,8 @@ #name: --gc-sections removing __stop_ #ld: --gc-sections -e _start #nm: -n -#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi #failif #... -[0-9a-f]+ D +__stop__foo +[0-9a-f]+ D +_?__stop__foo #... -- 2.30.2