diff options
author | Jan Beulich <jbeulich@suse.com> | 2024-01-05 08:16:30 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2024-01-05 08:16:30 +0100 |
commit | e2c9acb943f9af1ceb6690264e5a4f3f531c48b6 (patch) | |
tree | 977d05439d04b765314b6360a504e9910fa3f94f /gas | |
parent | 8fd892f4dd3c0374582a0b8fd6836ce09529b2b5 (diff) | |
download | fsf-binutils-gdb-e2c9acb943f9af1ceb6690264e5a4f3f531c48b6.zip fsf-binutils-gdb-e2c9acb943f9af1ceb6690264e5a4f3f531c48b6.tar.gz fsf-binutils-gdb-e2c9acb943f9af1ceb6690264e5a4f3f531c48b6.tar.bz2 |
ELF: test certain .bss usages
Various targets have / had overrides for .bss. Make sure that in such
cases
- .previous still works correctly (requiring such targets to invoke
obj_elf_section_change_hook() from their overriding handlers),
- sub-section specifiers are accepted as far as feasible (mandated by
the doc).
Diffstat (limited to 'gas')
-rw-r--r-- | gas/testsuite/gas/elf/bss-prev.d | 13 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/bss-prev.s | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/bss-subsect.d | 11 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/bss-subsect.s | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/elf.exp | 7 |
5 files changed, 47 insertions, 0 deletions
diff --git a/gas/testsuite/gas/elf/bss-prev.d b/gas/testsuite/gas/elf/bss-prev.d new file mode 100644 index 0000000..b7ffac0 --- /dev/null +++ b/gas/testsuite/gas/elf/bss-prev.d @@ -0,0 +1,13 @@ +#name: .bss / .previous interaction +#as: --no-pad-sections +#readelf: -S --wide + +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + +\[Nr\] Name +Type +Addr(ess|) +Off +Size .* +#... + *\[ [1-9]\] *\.text +PROGBITS +0*0 +0[0-9a-f]* 0+ .* + *\[ [1-9]\] *\.data +PROGBITS +0*0 +0[0-9a-f]* 0*1 .* + *\[ [1-9]\] *\.bss +NOBITS +0*0 +0[0-9a-f]* 0*1 .* +#pass diff --git a/gas/testsuite/gas/elf/bss-prev.s b/gas/testsuite/gas/elf/bss-prev.s new file mode 100644 index 0000000..27564ce --- /dev/null +++ b/gas/testsuite/gas/elf/bss-prev.s @@ -0,0 +1,6 @@ + .text + .data + .bss + .byte 0 + .previous + .byte 1 diff --git a/gas/testsuite/gas/elf/bss-subsect.d b/gas/testsuite/gas/elf/bss-subsect.d new file mode 100644 index 0000000..ca59832 --- /dev/null +++ b/gas/testsuite/gas/elf/bss-subsect.d @@ -0,0 +1,11 @@ +#name: .bss <subsection> +#as: --no-pad-sections +#readelf: -S --wide + +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + +\[Nr\] Name +Type +Addr(ess|) +Off +Size .* +#... + *\[ [1-9]\] *\.bss +NOBITS +0*0 +0[0-9a-f]* 0*a .* +#pass diff --git a/gas/testsuite/gas/elf/bss-subsect.s b/gas/testsuite/gas/elf/bss-subsect.s new file mode 100644 index 0000000..b3de5b8d --- /dev/null +++ b/gas/testsuite/gas/elf/bss-subsect.s @@ -0,0 +1,10 @@ + .bss + .byte 0 + + .bss 2 + .balign 2 + .skip 2 + + .bss 1 + .balign 4 + .skip 4 diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index a21dbcc..88ef09c 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -336,6 +336,13 @@ if { [is_elf_format] } then { run_dump_test "pr25917" run_dump_test "bss" + # Some targets treat .bss similar to .lcomm. + if { ![istarget "csky-*-*"] + && ![istarget "mcore-*-*"] + && ![istarget "spu-*-*"] } then { + run_dump_test "bss-prev" $dump_opts + run_dump_test "bss-subsect" $dump_opts + } run_dump_test "bad-bss" run_dump_test "bad-section-flag" run_dump_test "bad-size" |