aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2021-02-16 04:55:42 -0800
committerH.J. Lu <hjl.tools@gmail.com>2021-02-16 04:55:53 -0800
commitca1289b9f3b6c9854386d1373918978412a59f94 (patch)
tree108abbbfcc9936c592fd7fd0b0bec027434efc17 /gas/testsuite
parent394ae71f026cf62beb30511da42c8198da90d82d (diff)
downloadgdb-ca1289b9f3b6c9854386d1373918978412a59f94.zip
gdb-ca1289b9f3b6c9854386d1373918978412a59f94.tar.gz
gdb-ca1289b9f3b6c9854386d1373918978412a59f94.tar.bz2
gas: Allow SHF_GNU_RETAIN on all sections
Since SHF_GNU_RETAIN is allowed on all sections, strip SHF_GNU_RETAIN when checking incorrect section attributes. PR gas/27412 * config/obj-elf.c (obj_elf_change_section): Strip SHF_GNU_RETAIN when checking incorrect section attributes. * testsuite/gas/elf/elf.exp: Run section28 and section29. * testsuite/gas/elf/section28.d: New file. * testsuite/gas/elf/section28.s: Likewise. * testsuite/gas/elf/section29.d: Likewise. * testsuite/gas/elf/section29.s: Likewise.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/gas/elf/elf.exp2
-rw-r--r--gas/testsuite/gas/elf/section28.d15
-rw-r--r--gas/testsuite/gas/elf/section28.s11
-rw-r--r--gas/testsuite/gas/elf/section29.d11
-rw-r--r--gas/testsuite/gas/elf/section29.s4
5 files changed, 43 insertions, 0 deletions
diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp
index 2917ea9..525f47c 100644
--- a/gas/testsuite/gas/elf/elf.exp
+++ b/gas/testsuite/gas/elf/elf.exp
@@ -273,6 +273,8 @@ if { [is_elf_format] } then {
run_dump_test "section25"
run_dump_test "section26"
run_dump_test "section27"
+ run_dump_test "section28"
+ run_dump_test "section29"
run_dump_test "sh-link-zero"
run_dump_test "dwarf2-1" $dump_opts
run_dump_test "dwarf2-2" $dump_opts
diff --git a/gas/testsuite/gas/elf/section28.d b/gas/testsuite/gas/elf/section28.d
new file mode 100644
index 0000000..a1fd65b
--- /dev/null
+++ b/gas/testsuite/gas/elf/section28.d
@@ -0,0 +1,15 @@
+#readelf: -h -S --wide
+#name: SHF_GNU_RETAIN sections 28
+#notarget: ![supports_gnu_osabi]
+
+#...
+ +OS/ABI: +UNIX - (GNU|FreeBSD)
+#...
+ \[..\] \.note\.Linux +NOTE +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00 +A +0.*
+#...
+ \[..\] \.note\.Linux +NOTE +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00 +AR +0.*
+#...
+ \[..\] \.note\.foo +NOTE +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00 +0 +.*
+#...
+ \[..\] \.note\.foo +NOTE +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00 +R +0 +.*
+#pass
diff --git a/gas/testsuite/gas/elf/section28.s b/gas/testsuite/gas/elf/section28.s
new file mode 100644
index 0000000..ebcf42c
--- /dev/null
+++ b/gas/testsuite/gas/elf/section28.s
@@ -0,0 +1,11 @@
+ .section .note.Linux,"a"
+ .word 1
+
+ .section .note.Linux,"aR"
+ .word 1
+
+ .section .note.foo
+ .word 1
+
+ .section .note.foo,"R"
+ .word 1
diff --git a/gas/testsuite/gas/elf/section29.d b/gas/testsuite/gas/elf/section29.d
new file mode 100644
index 0000000..7e1b482
--- /dev/null
+++ b/gas/testsuite/gas/elf/section29.d
@@ -0,0 +1,11 @@
+#readelf: -h -S --wide
+#name: SHF_GNU_RETAIN sections 29
+#notarget: ![supports_gnu_osabi]
+
+#...
+ +OS/ABI: +UNIX - (GNU|FreeBSD)
+#...
+ \[..\] \.rodata\.str1\.1 +PROGBITS +[0-9a-f]+ [0-9a-f]+ 0+4 +01 +AMS +0 +0 +1
+#...
+ \[..\] \.rodata\.str1\.1 +PROGBITS +[0-9a-f]+ [0-9a-f]+ 0+4 +01 +AMSR +0 +0 +1
+#pass
diff --git a/gas/testsuite/gas/elf/section29.s b/gas/testsuite/gas/elf/section29.s
new file mode 100644
index 0000000..772031e
--- /dev/null
+++ b/gas/testsuite/gas/elf/section29.s
@@ -0,0 +1,4 @@
+ .section .rodata.str1.1,"aMS",%progbits,1
+ .asciz "foo"
+ .section .rodata.str1.1,"aMSR",%progbits,1
+ .asciz "bar"