From cc6fd584ed920b14d57703bb62c9ed773cea3732 Mon Sep 17 00:00:00 2001 From: Jozef Lawrynowicz Date: Fri, 20 Nov 2020 10:31:07 +0000 Subject: [PATCH] Fix SHF_GNU_RETAIN testsuite fallout binutils/ChangeLog: * testsuite/binutils-all/readelf-maskos-1a.d: Fix test for unrecognized bit set in SHF_MASKOS range. * testsuite/binutils-all/readelf-maskos-1b.d: Likewise. * testsuite/binutils-all/readelf-maskos-unknown.s: New test. ld/ChangeLog: * testsuite/ld-elf/retain3.s: Move symbolic reference into writeable .data section from read-only .text section. * testsuite/ld-elf/retain5.d: Don't pass --print-gc-sections for test that doesn't require it. * testsuite/ld-elf/retain6a.d: Adjust test. * testsuite/ld-elf/retain6main.s: Move symbolic reference into writeable .data section from read-only .text section. --- binutils/ChangeLog | 7 +++++++ binutils/testsuite/binutils-all/readelf-maskos-1a.d | 10 +++++----- binutils/testsuite/binutils-all/readelf-maskos-1b.d | 12 ++++++------ .../testsuite/binutils-all/readelf-maskos-unknown.s | 11 +++++++++++ ld/ChangeLog | 10 ++++++++++ ld/testsuite/ld-elf/retain3.s | 4 ++-- ld/testsuite/ld-elf/retain5.d | 2 +- ld/testsuite/ld-elf/retain6a.d | 2 +- ld/testsuite/ld-elf/retain6main.s | 10 +++++----- 9 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 binutils/testsuite/binutils-all/readelf-maskos-unknown.s diff --git a/binutils/ChangeLog b/binutils/ChangeLog index e8bcd97e8c..4acc0d479a 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,10 @@ +2020-11-20 Jozef Lawrynowicz + + * testsuite/binutils-all/readelf-maskos-1a.d: Fix test for unrecognized + bit set in SHF_MASKOS range. + * testsuite/binutils-all/readelf-maskos-1b.d: Likewise. + * testsuite/binutils-all/readelf-maskos-unknown.s: New test. + 2020-11-18 Jozef Lawrynowicz * NEWS: Announce SHF_GNU_RETAIN support. diff --git a/binutils/testsuite/binutils-all/readelf-maskos-1a.d b/binutils/testsuite/binutils-all/readelf-maskos-1a.d index 7b27358599..cb18b3b08b 100644 --- a/binutils/testsuite/binutils-all/readelf-maskos-1a.d +++ b/binutils/testsuite/binutils-all/readelf-maskos-1a.d @@ -1,10 +1,10 @@ #name: Unknown SHF_MASKOS value in section -#source: readelf-maskos.s -#notarget: [supports_gnu_osabi] msp430-*-elf visium-*-elf -#xfail: arm-*-elf +#source: readelf-maskos-unknown.s +#notarget: mips-*-* hppa-*-* score-*-* msp430-*-elf visium-*-elf #readelf: -S --wide -# PR26722 for the arm-*-elf XFAIL +# Only run this test for targets that are not ELFOSABI_STANDALONE, and do not +# set SHF_MASKOS bit 0x8000000. #... - \[[ 0-9]+\] .data.retain_var.*WAo.* + \[[ 0-9]+\] .data.var.*WAo.* #pass diff --git a/binutils/testsuite/binutils-all/readelf-maskos-1b.d b/binutils/testsuite/binutils-all/readelf-maskos-1b.d index 2cbb58a73b..5c363f698f 100644 --- a/binutils/testsuite/binutils-all/readelf-maskos-1b.d +++ b/binutils/testsuite/binutils-all/readelf-maskos-1b.d @@ -1,12 +1,12 @@ #name: -t (section details) for unknown SHF_MASKOS value in section -#source: readelf-maskos.s -#notarget: [supports_gnu_osabi] msp430-*-elf visium-*-elf -#xfail: arm-*-elf +#source: readelf-maskos-unknown.s +#notarget: mips-*-* hppa-*-* score-*-* msp430-*-elf visium-*-elf #readelf: -S -t --wide -# PR26722 for the arm-*-elf XFAIL +# Only run this test for targets that are not ELFOSABI_STANDALONE, and do not +# set SHF_MASKOS bit 0x8000000. #... - \[[ 0-9]+\] .data.retain_var + \[[ 0-9]+\] .data.var PROGBITS +0+ +[0-9a-f]+ +[0-9a-f]+ +[0-9a-f]+ +0 +0 +(1|2|4|8) - \[00200003\]: WRITE, ALLOC, OS \(00200000\) + \[0+0800003\]: WRITE, ALLOC, OS \(0+0800000\) #pass diff --git a/binutils/testsuite/binutils-all/readelf-maskos-unknown.s b/binutils/testsuite/binutils-all/readelf-maskos-unknown.s new file mode 100644 index 0000000000..b36066b538 --- /dev/null +++ b/binutils/testsuite/binutils-all/readelf-maskos-unknown.s @@ -0,0 +1,11 @@ + .section .data.var,"0x800003" + .global var + .type var, %object +var: + .long 2 + + .section .text._start,"ax" + .global _start + .type _start, %function +_start: + .word 0 diff --git a/ld/ChangeLog b/ld/ChangeLog index e9da9f8c88..c0b47f480b 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,13 @@ +2020-11-20 Jozef Lawrynowicz + + * testsuite/ld-elf/retain3.s: Move symbolic reference into writeable + .data section from read-only .text section. + * testsuite/ld-elf/retain5.d: Don't pass --print-gc-sections for test + that doesn't require it. + * testsuite/ld-elf/retain6a.d: Adjust test. + * testsuite/ld-elf/retain6main.s: Move symbolic reference into writeable + .data section from read-only .text section. + 2020-11-18 Alan Modra * testsuite/ld-powerpc/group1.d, diff --git a/ld/testsuite/ld-elf/retain3.s b/ld/testsuite/ld-elf/retain3.s index ce315cbaa6..9e388330ab 100644 --- a/ld/testsuite/ld-elf/retain3.s +++ b/ld/testsuite/ld-elf/retain3.s @@ -6,9 +6,9 @@ foo: .word 0 - .section .text.bar,"axR" + .section .data.bar,"awR" .global bar - .type bar, %function + .type bar, %object bar: .long foo diff --git a/ld/testsuite/ld-elf/retain5.d b/ld/testsuite/ld-elf/retain5.d index 86e85f8da5..9759531d65 100644 --- a/ld/testsuite/ld-elf/retain5.d +++ b/ld/testsuite/ld-elf/retain5.d @@ -1,6 +1,6 @@ #name: SHF_GNU_RETAIN 5 (don't pull SHF_GNU_RETAIN section out of lib) #source: retain5main.s -#ld: --gc-sections -e _start --print-gc-sections -Ltmpdir -lretain5 -Map=retain5.map +#ld: --gc-sections -e _start -Ltmpdir -lretain5 -Map=retain5.map #notarget: ![supports_gnu_osabi] ![check_gc_sections_available] #map: retain5.map #DUMPPROG: nm diff --git a/ld/testsuite/ld-elf/retain6a.d b/ld/testsuite/ld-elf/retain6a.d index aa93117ae7..c8a47d58c0 100644 --- a/ld/testsuite/ld-elf/retain6a.d +++ b/ld/testsuite/ld-elf/retain6a.d @@ -9,5 +9,5 @@ #... [0-9a-f]+ . retain_from_lib #... -[0-9a-f]+ . retained_fn +[0-9a-f]+ . retained_var #pass diff --git a/ld/testsuite/ld-elf/retain6main.s b/ld/testsuite/ld-elf/retain6main.s index a66c5b3247..a1916dea85 100644 --- a/ld/testsuite/ld-elf/retain6main.s +++ b/ld/testsuite/ld-elf/retain6main.s @@ -1,9 +1,9 @@ -/* Undefined symbol reference in retained section .text.retained_fn requires +/* Undefined symbol reference in retained section .data.retained_var requires symbol definition to be pulled out of library. */ - .section .text.retained_fn,"axR" - .global retained_fn - .type retained_fn, %function -retained_fn: + .section .data.retained_var,"awR" + .global retained_var + .type retained_var, %object +retained_var: .long bar .section .text._start,"ax" -- 2.29.2