From 1de6e1fdf10e9e1ab387da04c3bbc6e83e5c5226 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 5 Jan 2024 08:17:34 +0100 Subject: ELF: test certain .text/.data usages Various targets have / had overrides for .text and/or .data. Make sure that in such cases sub-section specifiers are accepted, as mandated by the doc. --- gas/testsuite/gas/elf/data-prev.d | 14 ++++++++++++++ gas/testsuite/gas/elf/data-prev.s | 6 ++++++ gas/testsuite/gas/elf/data-subsect.d | 11 +++++++++++ gas/testsuite/gas/elf/data-subsect.s | 14 ++++++++++++++ gas/testsuite/gas/elf/elf.exp | 4 ++++ gas/testsuite/gas/elf/text-prev.d | 14 ++++++++++++++ gas/testsuite/gas/elf/text-prev.s | 6 ++++++ gas/testsuite/gas/elf/text-subsect.d | 11 +++++++++++ gas/testsuite/gas/elf/text-subsect.s | 10 ++++++++++ 9 files changed, 90 insertions(+) create mode 100644 gas/testsuite/gas/elf/data-prev.d create mode 100644 gas/testsuite/gas/elf/data-prev.s create mode 100644 gas/testsuite/gas/elf/data-subsect.d create mode 100644 gas/testsuite/gas/elf/data-subsect.s create mode 100644 gas/testsuite/gas/elf/text-prev.d create mode 100644 gas/testsuite/gas/elf/text-prev.s create mode 100644 gas/testsuite/gas/elf/text-subsect.d create mode 100644 gas/testsuite/gas/elf/text-subsect.s diff --git a/gas/testsuite/gas/elf/data-prev.d b/gas/testsuite/gas/elf/data-prev.d new file mode 100644 index 0000000..8464f1f --- /dev/null +++ b/gas/testsuite/gas/elf/data-prev.d @@ -0,0 +1,14 @@ +#name: .data / .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]\] *\.aux +PROGBITS +0*0 +0[0-9a-f]* 0*1 .* +#pass diff --git a/gas/testsuite/gas/elf/data-prev.s b/gas/testsuite/gas/elf/data-prev.s new file mode 100644 index 0000000..291805c --- /dev/null +++ b/gas/testsuite/gas/elf/data-prev.s @@ -0,0 +1,6 @@ + .text + .section .aux, "a", %progbits + .data + .byte 0 + .previous + .byte 1 diff --git a/gas/testsuite/gas/elf/data-subsect.d b/gas/testsuite/gas/elf/data-subsect.d new file mode 100644 index 0000000..bfbdd36 --- /dev/null +++ b/gas/testsuite/gas/elf/data-subsect.d @@ -0,0 +1,11 @@ +#name: .data +#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]\] *\.data +PROGBITS +0*0 +0[0-9a-f]* 0*a .* +#pass diff --git a/gas/testsuite/gas/elf/data-subsect.s b/gas/testsuite/gas/elf/data-subsect.s new file mode 100644 index 0000000..5436c46 --- /dev/null +++ b/gas/testsuite/gas/elf/data-subsect.s @@ -0,0 +1,14 @@ + .data + .byte 1 + + .data 2 + .balign 2 + .byte 3 + .byte 3 + + .data 1 + .balign 4 + .byte 2 + .byte 2 + .byte 2 + .byte 2 diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index 88ef09c..e03dc2b 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -194,6 +194,10 @@ if { [is_elf_format] } then { } } run_dump_test "pseudo" + run_dump_test "text-prev" $dump_opts + run_dump_test "text-subsect" $dump_opts + run_dump_test "data-prev" $dump_opts + run_dump_test "data-subsect" $dump_opts run_dump_test "section0" run_dump_test "section1" # The h8300 port issues a warning message for diff --git a/gas/testsuite/gas/elf/text-prev.d b/gas/testsuite/gas/elf/text-prev.d new file mode 100644 index 0000000..e8a14ee --- /dev/null +++ b/gas/testsuite/gas/elf/text-prev.d @@ -0,0 +1,14 @@ +#name: .text / .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*([1248]|10) .* + *\[ [1-9]\] *\.data +PROGBITS +0*0 +0[0-9a-f]* 0* .* +#... + *\[ [1-9]\] *\.aux +PROGBITS +0*0 +0[0-9a-f]* 0*1 .* +#pass diff --git a/gas/testsuite/gas/elf/text-prev.s b/gas/testsuite/gas/elf/text-prev.s new file mode 100644 index 0000000..673d5d2 --- /dev/null +++ b/gas/testsuite/gas/elf/text-prev.s @@ -0,0 +1,6 @@ + .data + .section .aux, "a", %progbits + .text + .nop + .previous + .byte 0 diff --git a/gas/testsuite/gas/elf/text-subsect.d b/gas/testsuite/gas/elf/text-subsect.d new file mode 100644 index 0000000..7968bc7 --- /dev/null +++ b/gas/testsuite/gas/elf/text-subsect.d @@ -0,0 +1,11 @@ +#name: .text +#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*(6[1248]|70) .* +#pass diff --git a/gas/testsuite/gas/elf/text-subsect.s b/gas/testsuite/gas/elf/text-subsect.s new file mode 100644 index 0000000..1f50c58 --- /dev/null +++ b/gas/testsuite/gas/elf/text-subsect.s @@ -0,0 +1,10 @@ + .text + .nop + + .text 2 + .balign 32 + .nop + + .text 1 + .balign 64 + .nop -- cgit v1.1