]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
PowerPC paranioa testing of symbol merging involving comdat groups
authorAlan Modra <amodra@gmail.com>
Wed, 18 Nov 2020 09:59:25 +0000 (20:29 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 18 Nov 2020 13:19:31 +0000 (23:49 +1030)
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.

ld/ChangeLog
ld/testsuite/ld-powerpc/group1.d [new file with mode: 0644]
ld/testsuite/ld-powerpc/group1.s [new file with mode: 0644]
ld/testsuite/ld-powerpc/group1.sym [new file with mode: 0644]
ld/testsuite/ld-powerpc/group2.d [new file with mode: 0644]
ld/testsuite/ld-powerpc/group2.s [new file with mode: 0644]
ld/testsuite/ld-powerpc/group2.sym [new file with mode: 0644]
ld/testsuite/ld-powerpc/group3.s [new file with mode: 0644]
ld/testsuite/ld-powerpc/group3.sym [new file with mode: 0644]
ld/testsuite/ld-powerpc/powerpc.exp

index 0e2ddeeed6b4ee9749dc6378021859430cf6147d..e9da9f8c887deb8edec37761117c4dba39595685 100644 (file)
@@ -1,3 +1,15 @@
+2020-11-18  Alan Modra  <amodra@gmail.com>
+
+       * 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.
+
 2020-11-18  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
 
        * NEWS: Announce support for SHF_GNU_RETAIN.
diff --git a/ld/testsuite/ld-powerpc/group1.d b/ld/testsuite/ld-powerpc/group1.d
new file mode 100644 (file)
index 0000000..848e2ab
--- /dev/null
@@ -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 (file)
index 0000000..cb918a5
--- /dev/null
@@ -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 (file)
index 0000000..4ad8c17
--- /dev/null
@@ -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 (file)
index 0000000..3611006
--- /dev/null
@@ -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 (file)
index 0000000..882745c
--- /dev/null
@@ -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 (file)
index 0000000..509978a
--- /dev/null
@@ -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 (file)
index 0000000..075ee2f
--- /dev/null
@@ -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 (file)
index 0000000..6b5028d
--- /dev/null
@@ -0,0 +1,3 @@
+#...
+.* 4 FUNC +GLOBAL DEFAULT \[<localentry>: 1\] +1 foo
+#pass
index 2cbefb841c272aefae419ffd3e258a94783e55aa..e780d2e6f6ce49af0d3373a04f36508dbae0a4ff 100644 (file)
@@ -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 {