[22/22] ELF: test certain .text/.data usages

Message ID d3553549-fdcb-4621-9292-0cf9dabe75ef@suse.com
State New
Headers
Series ELF: correct handling of simplified section directives |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_binutils_check--master-arm success Testing passed

Commit Message

Jan Beulich Dec. 15, 2023, 12:20 p.m. UTC
  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.
  

Patch

--- /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
--- /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
--- /dev/null
+++ b/gas/testsuite/gas/elf/data-subsect.d
@@ -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
--- /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
--- 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
--- /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
--- /dev/null
+++ b/gas/testsuite/gas/elf/text-prev.s
@@ -0,0 +1,6 @@ 
+	.data
+	.section .aux, "a", %progbits
+	.text
+	.nop
+	.previous
+	.byte 0
--- /dev/null
+++ b/gas/testsuite/gas/elf/text-subsect.d
@@ -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
--- /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