ELF: test certain .text/.data usages
authorJan Beulich <jbeulich@suse.com>
Fri, 5 Jan 2024 07:17:34 +0000 (08:17 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 5 Jan 2024 07:17:34 +0000 (08:17 +0100)
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 [new file with mode: 0644]
gas/testsuite/gas/elf/data-prev.s [new file with mode: 0644]
gas/testsuite/gas/elf/data-subsect.d [new file with mode: 0644]
gas/testsuite/gas/elf/data-subsect.s [new file with mode: 0644]
gas/testsuite/gas/elf/elf.exp
gas/testsuite/gas/elf/text-prev.d [new file with mode: 0644]
gas/testsuite/gas/elf/text-prev.s [new file with mode: 0644]
gas/testsuite/gas/elf/text-subsect.d [new file with mode: 0644]
gas/testsuite/gas/elf/text-subsect.s [new file with mode: 0644]

diff --git a/gas/testsuite/gas/elf/data-prev.d b/gas/testsuite/gas/elf/data-prev.d
new file mode 100644 (file)
index 0000000..8464f1f
--- /dev/null
@@ -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 (file)
index 0000000..291805c
--- /dev/null
@@ -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 (file)
index 0000000..bfbdd36
--- /dev/null
@@ -0,0 +1,11 @@
+#name: .data <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]\] *\.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 (file)
index 0000000..5436c46
--- /dev/null
@@ -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
index 88ef09c..e03dc2b 100644 (file)
@@ -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 (file)
index 0000000..e8a14ee
--- /dev/null
@@ -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 (file)
index 0000000..673d5d2
--- /dev/null
@@ -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 (file)
index 0000000..7968bc7
--- /dev/null
@@ -0,0 +1,11 @@
+#name: .text <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]\] *\.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 (file)
index 0000000..1f50c58
--- /dev/null
@@ -0,0 +1,10 @@
+       .text
+       .nop
+
+       .text 2
+       .balign 32
+       .nop
+
+       .text 1
+       .balign 64
+       .nop