aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-11-18 20:29:25 +1030
committerAlan Modra <amodra@gmail.com>2020-11-18 23:49:31 +1030
commite4d9e5422fa233e9e32ce89e07a5a6ca89e85090 (patch)
tree3697128c76e70fe669e89dd874bdf968c767923d /ld/testsuite
parent058430b4a1ed7441dfc2e167bfdb9dc89ea9a209 (diff)
downloadgdb-e4d9e5422fa233e9e32ce89e07a5a6ca89e85090.zip
gdb-e4d9e5422fa233e9e32ce89e07a5a6ca89e85090.tar.gz
gdb-e4d9e5422fa233e9e32ce89e07a5a6ca89e85090.tar.bz2
PowerPC paranioa testing of symbol merging involving comdat groups
Ensures we don't mistreat st_other localentry bits. * testsuite/ld-powerpc/group1.d, * testsuite/ld-powerpc/group1.s, * testsuite/ld-powerpc/group1.sym, * testsuite/ld-powerpc/group2.d, * testsuite/ld-powerpc/group2.s, * testsuite/ld-powerpc/group2.sym, * testsuite/ld-powerpc/group3.s, * testsuite/ld-powerpc/group3.sym: New test files. * testsuite/ld-powerpc/powerpc.exp: Run new tests.
Diffstat (limited to 'ld/testsuite')
-rw-r--r--ld/testsuite/ld-powerpc/group1.d14
-rw-r--r--ld/testsuite/ld-powerpc/group1.s10
-rw-r--r--ld/testsuite/ld-powerpc/group1.sym3
-rw-r--r--ld/testsuite/ld-powerpc/group2.d13
-rw-r--r--ld/testsuite/ld-powerpc/group2.s9
-rw-r--r--ld/testsuite/ld-powerpc/group2.sym3
-rw-r--r--ld/testsuite/ld-powerpc/group3.s9
-rw-r--r--ld/testsuite/ld-powerpc/group3.sym3
-rw-r--r--ld/testsuite/ld-powerpc/powerpc.exp9
9 files changed, 73 insertions, 0 deletions
diff --git a/ld/testsuite/ld-powerpc/group1.d b/ld/testsuite/ld-powerpc/group1.d
new file mode 100644
index 0000000..848e2ab
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/group1.d
@@ -0,0 +1,14 @@
+#source: group1.s
+#source: group2.s
+#source: group3.s
+#as: -a64 -e foo
+#ld: -melf64ppc
+#objdump: -d
+
+.*
+
+Disassembly of section \.text:
+
+.* <foo>:
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (4e 80 00 20|20 00 80 4e) blr
diff --git a/ld/testsuite/ld-powerpc/group1.s b/ld/testsuite/ld-powerpc/group1.s
new file mode 100644
index 0000000..cb918a5
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/group1.s
@@ -0,0 +1,10 @@
+ .abiversion 2
+ .section .text,"axG",%progbits,foo,comdat
+ .globl foo
+ .type foo,%function
+foo:
+0:
+ nop
+ .localentry foo,.-0b
+ blr
+ .size foo,.-0b
diff --git a/ld/testsuite/ld-powerpc/group1.sym b/ld/testsuite/ld-powerpc/group1.sym
new file mode 100644
index 0000000..4ad8c17
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/group1.sym
@@ -0,0 +1,3 @@
+#...
+.* 8 FUNC +GLOBAL DEFAULT \[<localentry>: 4\] +1 foo
+#pass
diff --git a/ld/testsuite/ld-powerpc/group2.d b/ld/testsuite/ld-powerpc/group2.d
new file mode 100644
index 0000000..3611006
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/group2.d
@@ -0,0 +1,13 @@
+#source: group2.s
+#source: group1.s
+#source: group3.s
+#as: -a64 -e foo
+#ld: -melf64ppc
+#objdump: -d
+
+.*
+
+Disassembly of section \.text:
+
+.* <foo>:
+.*: (4e 80 00 20|20 00 80 4e) blr
diff --git a/ld/testsuite/ld-powerpc/group2.s b/ld/testsuite/ld-powerpc/group2.s
new file mode 100644
index 0000000..882745c
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/group2.s
@@ -0,0 +1,9 @@
+ .abiversion 2
+ .section .text,"axG",%progbits,foo,comdat
+ .globl foo
+ .type foo,%function
+foo:
+0:
+ .localentry foo,0
+ blr
+ .size foo,.-0b
diff --git a/ld/testsuite/ld-powerpc/group2.sym b/ld/testsuite/ld-powerpc/group2.sym
new file mode 100644
index 0000000..509978a
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/group2.sym
@@ -0,0 +1,3 @@
+#...
+.* 4 FUNC +GLOBAL DEFAULT +1 foo
+#pass
diff --git a/ld/testsuite/ld-powerpc/group3.s b/ld/testsuite/ld-powerpc/group3.s
new file mode 100644
index 0000000..075ee2f
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/group3.s
@@ -0,0 +1,9 @@
+ .abiversion 2
+ .section .text,"axG",%progbits,foo,comdat
+ .globl foo
+ .type foo,%function
+foo:
+0:
+ .localentry foo,1
+ blr
+ .size foo,.-0b
diff --git a/ld/testsuite/ld-powerpc/group3.sym b/ld/testsuite/ld-powerpc/group3.sym
new file mode 100644
index 0000000..6b5028d
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/group3.sym
@@ -0,0 +1,3 @@
+#...
+.* 4 FUNC +GLOBAL DEFAULT \[<localentry>: 1\] +1 foo
+#pass
diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp
index 2cbefb8..e780d2e 100644
--- a/ld/testsuite/ld-powerpc/powerpc.exp
+++ b/ld/testsuite/ld-powerpc/powerpc.exp
@@ -335,6 +335,15 @@ set ppc64elftests {
"-a64 -mpower10" {pcrelopt.s}
{{objdump {-d -Mpower10} pcrelopt.d}
{readelf {-S --wide} pcrelopt.sec}} "pcrelopt" }
+ {"group1" "-melf64ppc -e foo" "" "-a64" {group1.s group2.s group3.s}
+ {{objdump {-d} group1.d}
+ {readelf {-s} group1.sym}} "group1"}
+ {"group2" "-melf64ppc -e foo" "" "-a64" {group2.s group1.s group3.s}
+ {{objdump {-d} group2.d}
+ {readelf {-s} group2.sym}} "group2"}
+ {"group3" "-melf64ppc -e foo" "" "-a64" {group3.s group2.s group1.s}
+ {{objdump {-d} group2.d}
+ {readelf {-s} group3.sym}} "group3"}
}
set ppceabitests {