ld/x86-64: Add PR gold/26939 tests
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 24 Nov 2020 19:32:14 +0000 (11:32 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 24 Nov 2020 19:32:26 +0000 (11:32 -0800)
GOTPCRELX relocations can be transformed only when addend == -4.  Add
tests for GOTPCRELX relocations with addend != -4.

PR gold/26939
* testsuite/ld-x86-64/pr26939-x32.d: New file.
* testsuite/ld-x86-64/pr26939.d: Likewise.
* testsuite/ld-x86-64/pr26939.s: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Run PR gold/26939 tests.

ld/ChangeLog
ld/testsuite/ld-x86-64/pr26939-x32.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr26939.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr26939.s [new file with mode: 0644]
ld/testsuite/ld-x86-64/x86-64.exp

index 2d687f9ed30628f2c698af5701c7173579c3a31a..0faa03a82210652d50f746adeabf73e6469c792f 100644 (file)
@@ -1,3 +1,11 @@
+2020-11-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/26939
+       * testsuite/ld-x86-64/pr26939-x32.d: New file.
+       * testsuite/ld-x86-64/pr26939.d: Likewise.
+       * testsuite/ld-x86-64/pr26939.s: Likewise.
+       * testsuite/ld-x86-64/x86-64.exp: Run PR gold/26939 tests.
+
 2020-11-23  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/26918
diff --git a/ld/testsuite/ld-x86-64/pr26939-x32.d b/ld/testsuite/ld-x86-64/pr26939-x32.d
new file mode 100644 (file)
index 0000000..af2c023
--- /dev/null
@@ -0,0 +1,13 @@
+#source: pr26939.s
+#as: --x32
+#ld: -pie -melf32_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+#...
+[      ]*[a-f0-9]+:    8b 05 ([0-9a-f]{2} ){4} *       mov    0x[a-f0-9]+\(%rip\),%eax        # [a-f0-9]+ <.*>
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr26939.d b/ld/testsuite/ld-x86-64/pr26939.d
new file mode 100644 (file)
index 0000000..d02bdfc
--- /dev/null
@@ -0,0 +1,12 @@
+#as: --64
+#ld: -pie -melf_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+#...
+[      ]*[a-f0-9]+:    8b 05 ([0-9a-f]{2} ){4} *       mov    0x[a-f0-9]+\(%rip\),%eax        # [a-f0-9]+ <.*>
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr26939.s b/ld/testsuite/ld-x86-64/pr26939.s
new file mode 100644 (file)
index 0000000..f961361
--- /dev/null
@@ -0,0 +1,5 @@
+       .text
+       .globl  _start
+       .type   _start,@function
+_start:
+       movl    _start@GOTPCREL+4(%rip), %eax
index b99e6f19b57c5046fb12f1c9be5aeb9c7b3c354d..99c8a33c3e3c520d7658b34c37839457bc7b602e 100644 (file)
@@ -659,6 +659,8 @@ run_dump_test "pr20253-5b"
 run_dump_test "tlsdesc2"
 run_dump_test "pr22048"
 run_dump_test "pr22929"
+run_dump_test "pr26939"
+run_dump_test "pr26939-x32"
 
 proc undefined_weak {cflags ldflags} {
     set testname "Undefined weak symbol"