[PATCH] ld/x86-64: Add PR gold/26939 tests

H.J. Lu hjl.tools@gmail.com
Tue Nov 24 19:31:36 GMT 2020


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/testsuite/ld-x86-64/pr26939-x32.d | 13 +++++++++++++
 ld/testsuite/ld-x86-64/pr26939.d     | 12 ++++++++++++
 ld/testsuite/ld-x86-64/pr26939.s     |  5 +++++
 ld/testsuite/ld-x86-64/x86-64.exp    |  2 ++
 4 files changed, 32 insertions(+)
 create mode 100644 ld/testsuite/ld-x86-64/pr26939-x32.d
 create mode 100644 ld/testsuite/ld-x86-64/pr26939.d
 create mode 100644 ld/testsuite/ld-x86-64/pr26939.s

diff --git a/ld/testsuite/ld-x86-64/pr26939-x32.d b/ld/testsuite/ld-x86-64/pr26939-x32.d
new file mode 100644
index 0000000000..af2c023a92
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr26939-x32.d
@@ -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
index 0000000000..d02bdfcdf8
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr26939.d
@@ -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
index 0000000000..f961361414
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr26939.s
@@ -0,0 +1,5 @@
+	.text
+	.globl	_start
+	.type	_start,@function
+_start:
+	movl	_start@GOTPCREL+4(%rip), %eax
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index b99e6f19b5..99c8a33c3e 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -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"
-- 
2.28.0



More information about the Binutils mailing list