summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-x86-64
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-x86-64')
-rw-r--r--ld/testsuite/ld-x86-64/gotpcrel1.dd2
-rw-r--r--ld/testsuite/ld-x86-64/lea1.s6
-rw-r--r--ld/testsuite/ld-x86-64/lea1a.d7
-rw-r--r--ld/testsuite/ld-x86-64/lea1b.d7
-rw-r--r--ld/testsuite/ld-x86-64/lea1c.d13
-rw-r--r--ld/testsuite/ld-x86-64/lea1d.d7
-rw-r--r--ld/testsuite/ld-x86-64/lea1e.d7
-rw-r--r--ld/testsuite/ld-x86-64/lea1f.d13
-rw-r--r--ld/testsuite/ld-x86-64/mov1b.d8
-rw-r--r--ld/testsuite/ld-x86-64/mov1d.d8
-rw-r--r--ld/testsuite/ld-x86-64/pr13082-3b.d5
-rw-r--r--ld/testsuite/ld-x86-64/pr13082-3c.d9
-rw-r--r--ld/testsuite/ld-x86-64/pr13082-3d.d10
-rw-r--r--ld/testsuite/ld-x86-64/pr13082-4b.d5
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1.s20
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1a.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1b.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1c.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1d.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1e.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1f.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1g.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1h.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1i.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1j.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1k.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1l.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-1m.d23
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-2.s9
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-2a.d4
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-2b.d4
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-2c.d13
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-2d.d13
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-3.s10
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-3a.d14
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-3b.d14
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-4.s10
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-4a.d5
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-4b.d13
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-4c.d5
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-4d.d13
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-4e.d13
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-5.s6
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-5a.d12
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-5b.d12
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-5c.d12
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-5d.d4
-rw-r--r--ld/testsuite/ld-x86-64/pr19609-5e.d12
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp31
49 files changed, 624 insertions, 31 deletions
diff --git a/ld/testsuite/ld-x86-64/gotpcrel1.dd b/ld/testsuite/ld-x86-64/gotpcrel1.dd
index 187a1a58bb4..46321dbba46 100644
--- a/ld/testsuite/ld-x86-64/gotpcrel1.dd
+++ b/ld/testsuite/ld-x86-64/gotpcrel1.dd
@@ -4,7 +4,7 @@
[ ]*[a-f0-9]+: [ a-f0-9]+ addr32 callq [a-f0-9]+ <foo>
[ ]*[a-f0-9]+: [ a-f0-9]+ callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
[ ]*[a-f0-9]+: [ a-f0-9]+ callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
-[ ]*[a-f0-9]+: [ a-f0-9]+ lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <foo>
+[ ]*[a-f0-9]+: [ a-f0-9]+ (rex mov|mov ) \$0x[a-f0-9]+,%(r|e)ax
[ ]*[a-f0-9]+: ff d0 callq \*%rax
[ ]*[a-f0-9]+: [ a-f0-9]+ mov 0x[a-f0-9]+\(%rip\),%rcx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
[ ]*[a-f0-9]+: ff d1 callq \*%rcx
diff --git a/ld/testsuite/ld-x86-64/lea1.s b/ld/testsuite/ld-x86-64/lea1.s
index 07a2e354734..2c9982e16dc 100644
--- a/ld/testsuite/ld-x86-64/lea1.s
+++ b/ld/testsuite/ld-x86-64/lea1.s
@@ -9,10 +9,12 @@ foo:
.globl _start
.type _start, @function
_start:
+ movl foo@GOTPCREL(%rip), %eax
+ movl bar@GOTPCREL(%rip), %r11d
movq foo@GOTPCREL(%rip), %rax
- movq bar@GOTPCREL(%rip), %rax
+ movq bar@GOTPCREL(%rip), %r11
movq __start_my_section@GOTPCREL(%rip), %rax
- movq __stop_my_section@GOTPCREL(%rip), %rax
+ movq __stop_my_section@GOTPCREL(%rip), %r11
.size _start, .-_start
.comm pad,4,4
.comm bar,4,4
diff --git a/ld/testsuite/ld-x86-64/lea1a.d b/ld/testsuite/ld-x86-64/lea1a.d
index 36e9f546d30..9b662cb839f 100644
--- a/ld/testsuite/ld-x86-64/lea1a.d
+++ b/ld/testsuite/ld-x86-64/lea1a.d
@@ -9,8 +9,11 @@
Disassembly of section .text:
#...
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%eax # [a-f0-9]+ <foo>
+[ ]*[a-f0-9]+: 44 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11d # [a-f0-9]+ <bar>
[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <foo>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <bar>
+[ ]*[a-f0-9]+: 4c 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <bar>
[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__start_my_section>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__stop_my_section>
+[ ]*[a-f0-9]+: 4c 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <__stop_my_section>
#pass
diff --git a/ld/testsuite/ld-x86-64/lea1b.d b/ld/testsuite/ld-x86-64/lea1b.d
index a92acd73e05..9108149b3a3 100644
--- a/ld/testsuite/ld-x86-64/lea1b.d
+++ b/ld/testsuite/ld-x86-64/lea1b.d
@@ -9,8 +9,11 @@
Disassembly of section .text:
#...
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%eax # [a-f0-9]+ <foo>
+[ ]*[a-f0-9]+: 44 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11d # [a-f0-9]+ <bar>
[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <foo>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <bar>
+[ ]*[a-f0-9]+: 4c 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <bar>
[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__start_my_section>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__stop_my_section>
+[ ]*[a-f0-9]+: 4c 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <__stop_my_section>
#pass
diff --git a/ld/testsuite/ld-x86-64/lea1c.d b/ld/testsuite/ld-x86-64/lea1c.d
index 072b1ee0983..68fec03d105 100644
--- a/ld/testsuite/ld-x86-64/lea1c.d
+++ b/ld/testsuite/ld-x86-64/lea1c.d
@@ -1,5 +1,5 @@
#source: lea1.s
-#as: --64
+#as: --64 -mrelax-relocations=yes
#ld: -melf_x86_64
#objdump: -dw
@@ -9,8 +9,11 @@
Disassembly of section .text:
#...
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <foo>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <bar>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__start_my_section>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__stop_my_section>
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: c7 c0 ([0-9a-f]{2} ){4} * mov \$0x[a-f0-9]+,%eax
+[ ]*[a-f0-9]+: 41 c7 c3 ([0-9a-f]{2} ){4} * mov \$0x[a-f0-9]+,%r11d
+[ ]*[a-f0-9]+: 48 c7 c0 ([0-9a-f]{2} ){4} * mov \$0x[a-f0-9]+,%rax
+[ ]*[a-f0-9]+: 49 c7 c3 ([0-9a-f]{2} ){4} * mov \$0x[a-f0-9]+,%r11
+[ ]*[a-f0-9]+: 48 c7 c0 ([0-9a-f]{2} ){4} * mov \$0x[a-f0-9]+,%rax
+[ ]*[a-f0-9]+: 49 c7 c3 ([0-9a-f]{2} ){4} * mov \$0x[a-f0-9]+,%r11
#pass
diff --git a/ld/testsuite/ld-x86-64/lea1d.d b/ld/testsuite/ld-x86-64/lea1d.d
index 2613061b948..4d708d22c3a 100644
--- a/ld/testsuite/ld-x86-64/lea1d.d
+++ b/ld/testsuite/ld-x86-64/lea1d.d
@@ -9,8 +9,11 @@
Disassembly of section .text:
#...
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%eax # [a-f0-9]+ <foo>
+[ ]*[a-f0-9]+: 44 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11d # [a-f0-9]+ <bar>
[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <foo>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <bar>
+[ ]*[a-f0-9]+: 4c 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <bar>
[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__start_my_section>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__stop_my_section>
+[ ]*[a-f0-9]+: 4c 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <__stop_my_section>
#pass
diff --git a/ld/testsuite/ld-x86-64/lea1e.d b/ld/testsuite/ld-x86-64/lea1e.d
index 109c1cd1be9..da601379181 100644
--- a/ld/testsuite/ld-x86-64/lea1e.d
+++ b/ld/testsuite/ld-x86-64/lea1e.d
@@ -9,8 +9,11 @@
Disassembly of section .text:
#...
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%eax # [a-f0-9]+ <foo>
+[ ]*[a-f0-9]+: 44 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11d # [a-f0-9]+ <bar>
[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <foo>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <bar>
+[ ]*[a-f0-9]+: 4c 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <bar>
[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__start_my_section>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__stop_my_section>
+[ ]*[a-f0-9]+: 4c 8d 1d ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <__stop_my_section>
#pass
diff --git a/ld/testsuite/ld-x86-64/lea1f.d b/ld/testsuite/ld-x86-64/lea1f.d
index 8d6cd783454..b7abeb30c0c 100644
--- a/ld/testsuite/ld-x86-64/lea1f.d
+++ b/ld/testsuite/ld-x86-64/lea1f.d
@@ -1,5 +1,5 @@
#source: lea1.s
-#as: --x32
+#as: --x32 -mrelax-relocations=yes
#ld: -melf32_x86_64
#objdump: -dw
@@ -9,8 +9,11 @@
Disassembly of section .text:
#...
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <foo>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <bar>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__start_my_section>
-[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__stop_my_section>
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: c7 c0 ([0-9a-f]{2} ){4} * mov \$0x[a-f0-9]+,%eax
+[ ]*[a-f0-9]+: 41 c7 c3 ([0-9a-f]{2} ){4} * mov \$0x[a-f0-9]+,%r11d
+[ ]*[a-f0-9]+: 40 c7 c0 ([0-9a-f]{2} ){4} * rex mov \$0x[a-f0-9]+,%eax
+[ ]*[a-f0-9]+: 41 c7 c3 ([0-9a-f]{2} ){4} * mov \$0x[a-f0-9]+,%r11d
+[ ]*[a-f0-9]+: 40 c7 c0 ([0-9a-f]{2} ){4} * rex mov \$0x[a-f0-9]+,%eax
+[ ]*[a-f0-9]+: 41 c7 c3 ([0-9a-f]{2} ){4} * mov \$0x[a-f0-9]+,%r11d
#pass
diff --git a/ld/testsuite/ld-x86-64/mov1b.d b/ld/testsuite/ld-x86-64/mov1b.d
index f112c1cba5b..74218539d97 100644
--- a/ld/testsuite/ld-x86-64/mov1b.d
+++ b/ld/testsuite/ld-x86-64/mov1b.d
@@ -1,6 +1,6 @@
#source: mov1.s
-#as: --64
-#ld: -pie -melf_x86_64
+#as: --64 -mrelax-relocations=yes
+#ld: -pie -melf_x86_64 --no-dynamic-linker
#objdump: -dw
.*: +file format .*
@@ -10,6 +10,6 @@ Disassembly of section .text:
#...
[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
-[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
-[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 * mov \$0x0,%rax
+[ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 * mov \$0x0,%rax
#pass
diff --git a/ld/testsuite/ld-x86-64/mov1d.d b/ld/testsuite/ld-x86-64/mov1d.d
index 794a546f86a..7cdab0cd54b 100644
--- a/ld/testsuite/ld-x86-64/mov1d.d
+++ b/ld/testsuite/ld-x86-64/mov1d.d
@@ -1,6 +1,6 @@
#source: mov1.s
-#as: --x32
-#ld: -pie -melf32_x86_64
+#as: --x32 -mrelax-relocations=yes
+#ld: -pie -melf32_x86_64 --no-dynamic-linker
#objdump: -dw
.*: +file format .*
@@ -10,6 +10,6 @@ Disassembly of section .text:
#...
[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
-[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
-[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 40 c7 c0 00 00 00 00 * rex mov \$0x0,%eax
+[ ]*[a-f0-9]+: 40 c7 c0 00 00 00 00 * rex mov \$0x0,%eax
#pass
diff --git a/ld/testsuite/ld-x86-64/pr13082-3b.d b/ld/testsuite/ld-x86-64/pr13082-3b.d
index 766dd741bbb..c3c3f86153c 100644
--- a/ld/testsuite/ld-x86-64/pr13082-3b.d
+++ b/ld/testsuite/ld-x86-64/pr13082-3b.d
@@ -2,6 +2,9 @@
#name: PR ld/13082-3 (b)
#as: --x32
#ld: -pie -melf32_x86_64
-#readelf: -r --wide
+#readelf: -r -x .data.rel.ro
There are no relocations in this file.
+
+Hex dump of section '.data.rel.ro':
+ 0x[a-f0-9]+ 00000000 00000000 ........
diff --git a/ld/testsuite/ld-x86-64/pr13082-3c.d b/ld/testsuite/ld-x86-64/pr13082-3c.d
new file mode 100644
index 00000000000..9947425bcae
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr13082-3c.d
@@ -0,0 +1,9 @@
+#source: pr13082-3.s
+#name: PR ld/13082-3 (c)
+#as: --64
+#ld: -shared -melf_x86_64
+#readelf: -r --wide
+
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +[0-9a-f]+ +func \+ 0
diff --git a/ld/testsuite/ld-x86-64/pr13082-3d.d b/ld/testsuite/ld-x86-64/pr13082-3d.d
new file mode 100644
index 00000000000..8385d5064ce
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr13082-3d.d
@@ -0,0 +1,10 @@
+#source: pr13082-3.s
+#name: PR ld/13082-3 (d)
+#as: --64
+#ld: -pie -melf_x86_64
+#readelf: -r -x .data.rel.ro
+
+There are no relocations in this file.
+
+Hex dump of section '.data.rel.ro':
+ 0x[a-f0-9]+ 00000000 00000000 ........
diff --git a/ld/testsuite/ld-x86-64/pr13082-4b.d b/ld/testsuite/ld-x86-64/pr13082-4b.d
index 6d4a35b7d65..2b7584c289b 100644
--- a/ld/testsuite/ld-x86-64/pr13082-4b.d
+++ b/ld/testsuite/ld-x86-64/pr13082-4b.d
@@ -2,6 +2,9 @@
#name: PR ld/13082-4 (b)
#as: --x32
#ld: -pie -melf32_x86_64
-#readelf: -r --wide
+#readelf: -r -x .data.rel.ro
There are no relocations in this file.
+
+Hex dump of section '.data.rel.ro':
+ 0x[a-f0-9]+ 01000000 00000000 ........
diff --git a/ld/testsuite/ld-x86-64/pr19609-1.s b/ld/testsuite/ld-x86-64/pr19609-1.s
new file mode 100644
index 00000000000..91cc13038c1
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1.s
@@ -0,0 +1,20 @@
+ .text
+ .weak bar
+ .globl _start
+ .type _start, @function
+_start:
+ cmp bar@GOTPCREL(%rip), %rax
+ cmp bar@GOTPCREL(%rip), %ecx
+ cmp bar@GOTPCREL(%rip), %r11
+ cmp bar@GOTPCREL(%rip), %r12d
+
+ mov bar@GOTPCREL(%rip), %rax
+ mov bar@GOTPCREL(%rip), %ecx
+ mov bar@GOTPCREL(%rip), %r11
+ mov bar@GOTPCREL(%rip), %r12d
+
+ test %rax, bar@GOTPCREL(%rip)
+ test %ecx, bar@GOTPCREL(%rip)
+ test %r11, bar@GOTPCREL(%rip)
+ test %r12d, bar@GOTPCREL(%rip)
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-x86-64/pr19609-1a.d b/ld/testsuite/ld-x86-64/pr19609-1a.d
new file mode 100644
index 00000000000..a908e39625b
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1a.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64 --no-relax
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 81 f8 00 00 00 00 cmp \$0x0,%rax
+[ ]*[a-f0-9]+: 81 f9 00 00 00 00 cmp \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 81 fb 00 00 00 00 cmp \$0x0,%r11
+[ ]*[a-f0-9]+: 41 81 fc 00 00 00 00 cmp \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 mov \$0x0,%rax
+[ ]*[a-f0-9]+: c7 c1 00 00 00 00 mov \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 c7 c3 00 00 00 00 mov \$0x0,%r11
+[ ]*[a-f0-9]+: 41 c7 c4 00 00 00 00 mov \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 f7 c0 00 00 00 00 test \$0x0,%rax
+[ ]*[a-f0-9]+: f7 c1 00 00 00 00 test \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 f7 c3 00 00 00 00 test \$0x0,%r11
+[ ]*[a-f0-9]+: 41 f7 c4 00 00 00 00 test \$0x0,%r12d
diff --git a/ld/testsuite/ld-x86-64/pr19609-1b.d b/ld/testsuite/ld-x86-64/pr19609-1b.d
new file mode 100644
index 00000000000..d5e2e858bc4
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1b.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -pie -melf_x86_64 --no-dynamic-linker
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 81 f8 00 00 00 00 cmp \$0x0,%rax
+[ ]*[a-f0-9]+: 81 f9 00 00 00 00 cmp \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 81 fb 00 00 00 00 cmp \$0x0,%r11
+[ ]*[a-f0-9]+: 41 81 fc 00 00 00 00 cmp \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 mov \$0x0,%rax
+[ ]*[a-f0-9]+: c7 c1 00 00 00 00 mov \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 c7 c3 00 00 00 00 mov \$0x0,%r11
+[ ]*[a-f0-9]+: 41 c7 c4 00 00 00 00 mov \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 f7 c0 00 00 00 00 test \$0x0,%rax
+[ ]*[a-f0-9]+: f7 c1 00 00 00 00 test \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 f7 c3 00 00 00 00 test \$0x0,%r11
+[ ]*[a-f0-9]+: 41 f7 c4 00 00 00 00 test \$0x0,%r12d
diff --git a/ld/testsuite/ld-x86-64/pr19609-1c.d b/ld/testsuite/ld-x86-64/pr19609-1c.d
new file mode 100644
index 00000000000..3b1e98d2e63
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1c.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -shared -melf_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
diff --git a/ld/testsuite/ld-x86-64/pr19609-1d.d b/ld/testsuite/ld-x86-64/pr19609-1d.d
new file mode 100644
index 00000000000..980d8dc4f91
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1d.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -E -melf_x86_64 --no-dynamic-linker
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 81 f8 00 00 00 00 cmp \$0x0,%rax
+[ ]*[a-f0-9]+: 81 f9 00 00 00 00 cmp \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 81 fb 00 00 00 00 cmp \$0x0,%r11
+[ ]*[a-f0-9]+: 41 81 fc 00 00 00 00 cmp \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 mov \$0x0,%rax
+[ ]*[a-f0-9]+: c7 c1 00 00 00 00 mov \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 c7 c3 00 00 00 00 mov \$0x0,%r11
+[ ]*[a-f0-9]+: 41 c7 c4 00 00 00 00 mov \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 f7 c0 00 00 00 00 test \$0x0,%rax
+[ ]*[a-f0-9]+: f7 c1 00 00 00 00 test \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 f7 c3 00 00 00 00 test \$0x0,%r11
+[ ]*[a-f0-9]+: 41 f7 c4 00 00 00 00 test \$0x0,%r12d
diff --git a/ld/testsuite/ld-x86-64/pr19609-1e.d b/ld/testsuite/ld-x86-64/pr19609-1e.d
new file mode 100644
index 00000000000..dac5fef641a
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1e.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -shared -E -Bsymbolic -melf_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
diff --git a/ld/testsuite/ld-x86-64/pr19609-1f.d b/ld/testsuite/ld-x86-64/pr19609-1f.d
new file mode 100644
index 00000000000..93a7f2cc4bc
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1f.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -pie --dynamic-list-data -melf_x86_64 --no-dynamic-linker
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 81 f8 00 00 00 00 cmp \$0x0,%rax
+[ ]*[a-f0-9]+: 81 f9 00 00 00 00 cmp \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 81 fb 00 00 00 00 cmp \$0x0,%r11
+[ ]*[a-f0-9]+: 41 81 fc 00 00 00 00 cmp \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 mov \$0x0,%rax
+[ ]*[a-f0-9]+: c7 c1 00 00 00 00 mov \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 c7 c3 00 00 00 00 mov \$0x0,%r11
+[ ]*[a-f0-9]+: 41 c7 c4 00 00 00 00 mov \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 f7 c0 00 00 00 00 test \$0x0,%rax
+[ ]*[a-f0-9]+: f7 c1 00 00 00 00 test \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 f7 c3 00 00 00 00 test \$0x0,%r11
+[ ]*[a-f0-9]+: 41 f7 c4 00 00 00 00 test \$0x0,%r12d
diff --git a/ld/testsuite/ld-x86-64/pr19609-1g.d b/ld/testsuite/ld-x86-64/pr19609-1g.d
new file mode 100644
index 00000000000..05a4964cd33
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1g.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -pie -E -melf_x86_64 --no-dynamic-linker
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 81 f8 00 00 00 00 cmp \$0x0,%rax
+[ ]*[a-f0-9]+: 81 f9 00 00 00 00 cmp \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 81 fb 00 00 00 00 cmp \$0x0,%r11
+[ ]*[a-f0-9]+: 41 81 fc 00 00 00 00 cmp \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 mov \$0x0,%rax
+[ ]*[a-f0-9]+: c7 c1 00 00 00 00 mov \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 c7 c3 00 00 00 00 mov \$0x0,%r11
+[ ]*[a-f0-9]+: 41 c7 c4 00 00 00 00 mov \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 f7 c0 00 00 00 00 test \$0x0,%rax
+[ ]*[a-f0-9]+: f7 c1 00 00 00 00 test \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 f7 c3 00 00 00 00 test \$0x0,%r11
+[ ]*[a-f0-9]+: 41 f7 c4 00 00 00 00 test \$0x0,%r12d
diff --git a/ld/testsuite/ld-x86-64/pr19609-1h.d b/ld/testsuite/ld-x86-64/pr19609-1h.d
new file mode 100644
index 00000000000..56750768df2
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1h.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -melf32_x86_64 --no-relax
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 81 f8 00 00 00 00 cmp \$0x0,%rax
+[ ]*[a-f0-9]+: 81 f9 00 00 00 00 cmp \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 81 fb 00 00 00 00 cmp \$0x0,%r11
+[ ]*[a-f0-9]+: 41 81 fc 00 00 00 00 cmp \$0x0,%r12d
+[ ]*[a-f0-9]+: 40 c7 c0 00 00 00 00 rex mov \$0x0,%eax
+[ ]*[a-f0-9]+: c7 c1 00 00 00 00 mov \$0x0,%ecx
+[ ]*[a-f0-9]+: 41 c7 c3 00 00 00 00 mov \$0x0,%r11d
+[ ]*[a-f0-9]+: 41 c7 c4 00 00 00 00 mov \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 f7 c0 00 00 00 00 test \$0x0,%rax
+[ ]*[a-f0-9]+: f7 c1 00 00 00 00 test \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 f7 c3 00 00 00 00 test \$0x0,%r11
+[ ]*[a-f0-9]+: 41 f7 c4 00 00 00 00 test \$0x0,%r12d
diff --git a/ld/testsuite/ld-x86-64/pr19609-1i.d b/ld/testsuite/ld-x86-64/pr19609-1i.d
new file mode 100644
index 00000000000..8ef42ad0883
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1i.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -pie -melf32_x86_64 --no-dynamic-linker
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 81 f8 00 00 00 00 cmp \$0x0,%rax
+[ ]*[a-f0-9]+: 81 f9 00 00 00 00 cmp \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 81 fb 00 00 00 00 cmp \$0x0,%r11
+[ ]*[a-f0-9]+: 41 81 fc 00 00 00 00 cmp \$0x0,%r12d
+[ ]*[a-f0-9]+: 40 c7 c0 00 00 00 00 rex mov \$0x0,%eax
+[ ]*[a-f0-9]+: c7 c1 00 00 00 00 mov \$0x0,%ecx
+[ ]*[a-f0-9]+: 41 c7 c3 00 00 00 00 mov \$0x0,%r11d
+[ ]*[a-f0-9]+: 41 c7 c4 00 00 00 00 mov \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 f7 c0 00 00 00 00 test \$0x0,%rax
+[ ]*[a-f0-9]+: f7 c1 00 00 00 00 test \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 f7 c3 00 00 00 00 test \$0x0,%r11
+[ ]*[a-f0-9]+: 41 f7 c4 00 00 00 00 test \$0x0,%r12d
diff --git a/ld/testsuite/ld-x86-64/pr19609-1j.d b/ld/testsuite/ld-x86-64/pr19609-1j.d
new file mode 100644
index 00000000000..4a36a702b62
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1j.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --x32
+#ld: -shared -melf32_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
diff --git a/ld/testsuite/ld-x86-64/pr19609-1k.d b/ld/testsuite/ld-x86-64/pr19609-1k.d
new file mode 100644
index 00000000000..faab0dfca0a
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1k.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --64 -mrelax-relocations=yes
+#ld: -pie -E -Bsymbolic-functions -melf_x86_64 --no-dynamic-linker
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 81 f8 00 00 00 00 cmp \$0x0,%rax
+[ ]*[a-f0-9]+: 81 f9 00 00 00 00 cmp \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 81 fb 00 00 00 00 cmp \$0x0,%r11
+[ ]*[a-f0-9]+: 41 81 fc 00 00 00 00 cmp \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 mov \$0x0,%rax
+[ ]*[a-f0-9]+: c7 c1 00 00 00 00 mov \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 c7 c3 00 00 00 00 mov \$0x0,%r11
+[ ]*[a-f0-9]+: 41 c7 c4 00 00 00 00 mov \$0x0,%r12d
+[ ]*[a-f0-9]+: 48 f7 c0 00 00 00 00 test \$0x0,%rax
+[ ]*[a-f0-9]+: f7 c1 00 00 00 00 test \$0x0,%ecx
+[ ]*[a-f0-9]+: 49 f7 c3 00 00 00 00 test \$0x0,%r11
+[ ]*[a-f0-9]+: 41 f7 c4 00 00 00 00 test \$0x0,%r12d
diff --git a/ld/testsuite/ld-x86-64/pr19609-1l.d b/ld/testsuite/ld-x86-64/pr19609-1l.d
new file mode 100644
index 00000000000..aedf5d8ce7f
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1l.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --64 -mrelax-relocations=no
+#ld: -melf_x86_64 --no-relax
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_start\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_start\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_start\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_start\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%rax # 0 <_start-0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 8d 0d ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%ecx # 0 <_start-0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 8d 1d ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%r11 # 0 <_start-0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 8d 25 ([0-9a-f]{2} ){4} * lea -0x[a-f0-9]+\(%rip\),%r12d # 0 <_start-0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+>
diff --git a/ld/testsuite/ld-x86-64/pr19609-1m.d b/ld/testsuite/ld-x86-64/pr19609-1m.d
new file mode 100644
index 00000000000..8e80cbbb46c
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-1m.d
@@ -0,0 +1,23 @@
+#source: pr19609-1.s
+#as: --64 -mrelax-relocations=no
+#ld: -pie -melf_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 3b 0d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 3b 1d ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 3b 25 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 8b 0d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%ecx # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 8b 25 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%r12d # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 48 85 05 ([0-9a-f]{2} ){4} * test %rax,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 85 0d ([0-9a-f]{2} ){4} * test %ecx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 4c 85 1d ([0-9a-f]{2} ){4} * test %r11,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
+[ ]*[a-f0-9]+: 44 85 25 ([0-9a-f]{2} ){4} * test %r12d,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
diff --git a/ld/testsuite/ld-x86-64/pr19609-2.s b/ld/testsuite/ld-x86-64/pr19609-2.s
new file mode 100644
index 00000000000..d52ec9d1038
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-2.s
@@ -0,0 +1,9 @@
+ .data
+foo:
+ .quad 0
+ .text
+ .globl _start
+ .type _start, @function
+_start:
+ cmpq foo@GOTPCREL(%rip), %rax
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-x86-64/pr19609-2a.d b/ld/testsuite/ld-x86-64/pr19609-2a.d
new file mode 100644
index 00000000000..e2c6c893acc
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-2a.d
@@ -0,0 +1,4 @@
+#source: pr19609-2.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
+#error: .*relocation truncated to fit: R_X86_64_32S .*
diff --git a/ld/testsuite/ld-x86-64/pr19609-2b.d b/ld/testsuite/ld-x86-64/pr19609-2b.d
new file mode 100644
index 00000000000..ead498740e0
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-2b.d
@@ -0,0 +1,4 @@
+#source: pr19609-2.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -melf32_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
+#error: .*relocation truncated to fit: R_X86_64_32S .*
diff --git a/ld/testsuite/ld-x86-64/pr19609-2c.d b/ld/testsuite/ld-x86-64/pr19609-2c.d
new file mode 100644
index 00000000000..458b08a7891
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-2c.d
@@ -0,0 +1,13 @@
+#source: pr19609-2.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000 --no-relax
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+70000000 <_start>:
+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} cmp -?0x[a-f0-9]+\(%rip\),%rax # .*
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr19609-2d.d b/ld/testsuite/ld-x86-64/pr19609-2d.d
new file mode 100644
index 00000000000..32c4c8f9b18
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-2d.d
@@ -0,0 +1,13 @@
+#source: pr19609-2.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -melf32_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000 --no-relax
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+70000000 <_start>:
+#pass
+[ ]*[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4} cmp -?0x[a-f0-9]+\(%rip\),%rax # .*
diff --git a/ld/testsuite/ld-x86-64/pr19609-3.s b/ld/testsuite/ld-x86-64/pr19609-3.s
new file mode 100644
index 00000000000..b15294648e1
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-3.s
@@ -0,0 +1,10 @@
+ .data
+foo:
+ .quad 0
+ .text
+ .globl _start
+ .type _start, @function
+_start:
+ cmpl foo@GOTPCREL(%rip), %eax
+ cmpl foo@GOTPCREL(%rip), %r11d
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-x86-64/pr19609-3a.d b/ld/testsuite/ld-x86-64/pr19609-3a.d
new file mode 100644
index 00000000000..3248bb2a03e
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-3a.d
@@ -0,0 +1,14 @@
+#source: pr19609-3.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+70000000 <_start>:
+[ ]*[a-f0-9]+: 81 f8 00 00 00 a0 cmp \$0xa0000000,%eax
+[ ]*[a-f0-9]+: 41 81 fb 00 00 00 a0 cmp \$0xa0000000,%r11d
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr19609-3b.d b/ld/testsuite/ld-x86-64/pr19609-3b.d
new file mode 100644
index 00000000000..52ca5b72e35
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-3b.d
@@ -0,0 +1,14 @@
+#source: pr19609-3.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -melf32_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+70000000 <_start>:
+[ ]*[a-f0-9]+: 81 f8 00 00 00 a0 cmp \$0xa0000000,%eax
+[ ]*[a-f0-9]+: 41 81 fb 00 00 00 a0 cmp \$0xa0000000,%r11d
+#pass
diff --git a/ld/testsuite/ld-x86-64/pr19609-4.s b/ld/testsuite/ld-x86-64/pr19609-4.s
new file mode 100644
index 00000000000..3db3ebb52d0
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-4.s
@@ -0,0 +1,10 @@
+ .data
+foo:
+ .quad 0
+ .text
+ .globl _start
+ .type _start, @function
+_start:
+ movq foo@GOTPCREL(%rip), %rax
+ movq foo@GOTPCREL(%rip), %r11
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-x86-64/pr19609-4a.d b/ld/testsuite/ld-x86-64/pr19609-4a.d
new file mode 100644
index 00000000000..ce952ed4f64
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-4a.d
@@ -0,0 +1,5 @@
+#source: pr19609-4.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
+#error: .*relocation truncated to fit: R_X86_64_32S .*
+#error: .*relocation truncated to fit: R_X86_64_32S .*
diff --git a/ld/testsuite/ld-x86-64/pr19609-4b.d b/ld/testsuite/ld-x86-64/pr19609-4b.d
new file mode 100644
index 00000000000..cb92aa6cc02
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-4b.d
@@ -0,0 +1,13 @@
+#source: pr19609-4.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -melf32_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+70000000 <_start>:
+[ ]*[a-f0-9]+: 40 c7 c0 00 00 00 a0 rex mov \$0xa0000000,%eax
+[ ]*[a-f0-9]+: 41 c7 c3 00 00 00 a0 mov \$0xa0000000,%r11d
diff --git a/ld/testsuite/ld-x86-64/pr19609-4c.d b/ld/testsuite/ld-x86-64/pr19609-4c.d
new file mode 100644
index 00000000000..ce952ed4f64
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-4c.d
@@ -0,0 +1,5 @@
+#source: pr19609-4.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
+#error: .*relocation truncated to fit: R_X86_64_32S .*
+#error: .*relocation truncated to fit: R_X86_64_32S .*
diff --git a/ld/testsuite/ld-x86-64/pr19609-4d.d b/ld/testsuite/ld-x86-64/pr19609-4d.d
new file mode 100644
index 00000000000..cb92aa6cc02
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-4d.d
@@ -0,0 +1,13 @@
+#source: pr19609-4.s
+#as: --x32 -mrelax-relocations=yes
+#ld: -melf32_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+70000000 <_start>:
+[ ]*[a-f0-9]+: 40 c7 c0 00 00 00 a0 rex mov \$0xa0000000,%eax
+[ ]*[a-f0-9]+: 41 c7 c3 00 00 00 a0 mov \$0xa0000000,%r11d
diff --git a/ld/testsuite/ld-x86-64/pr19609-4e.d b/ld/testsuite/ld-x86-64/pr19609-4e.d
new file mode 100644
index 00000000000..527fe5d9f4e
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-4e.d
@@ -0,0 +1,13 @@
+#source: pr19609-4.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000 --no-relax
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+70000000 <_start>:
+[ ]*[a-f0-9]+: 48 8d 05 f9 ff ff 2f lea 0x2ffffff9\(%rip\),%rax # a0000000 <foo>
+[ ]*[a-f0-9]+: 4c 8d 1d f2 ff ff 2f lea 0x2ffffff2\(%rip\),%r11 # a0000000 <foo>
diff --git a/ld/testsuite/ld-x86-64/pr19609-5.s b/ld/testsuite/ld-x86-64/pr19609-5.s
new file mode 100644
index 00000000000..85106bb7f20
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-5.s
@@ -0,0 +1,6 @@
+ .text
+ .weak bar
+ .globl _start
+ .type _start, @function
+_start:
+ call *bar@GOTPCREL(%rip)
diff --git a/ld/testsuite/ld-x86-64/pr19609-5a.d b/ld/testsuite/ld-x86-64/pr19609-5a.d
new file mode 100644
index 00000000000..39948e0818c
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-5a.d
@@ -0,0 +1,12 @@
+#source: pr19609-5.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 callq 0 <_start-0x[0-9a-f]+>
diff --git a/ld/testsuite/ld-x86-64/pr19609-5b.d b/ld/testsuite/ld-x86-64/pr19609-5b.d
new file mode 100644
index 00000000000..4183d56f599
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-5b.d
@@ -0,0 +1,12 @@
+#source: pr19609-5.s
+#as: --64 -mrelax-relocations=yes
+#ld: -pie -melf_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
diff --git a/ld/testsuite/ld-x86-64/pr19609-5c.d b/ld/testsuite/ld-x86-64/pr19609-5c.d
new file mode 100644
index 00000000000..4eaeb2bce58
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-5c.d
@@ -0,0 +1,12 @@
+#source: pr19609-5.s
+#as: --64 -mrelax-relocations=yes
+#ld: -shared -melf_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+>
diff --git a/ld/testsuite/ld-x86-64/pr19609-5d.d b/ld/testsuite/ld-x86-64/pr19609-5d.d
new file mode 100644
index 00000000000..959c63e3d0d
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-5d.d
@@ -0,0 +1,4 @@
+#source: pr19609-5.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64 -Ttext=0x80000000
+#error: .*relocation truncated to fit: R_X86_64_PC32 .*
diff --git a/ld/testsuite/ld-x86-64/pr19609-5e.d b/ld/testsuite/ld-x86-64/pr19609-5e.d
new file mode 100644
index 00000000000..b6b6c6521fa
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr19609-5e.d
@@ -0,0 +1,12 @@
+#source: pr19609-5.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64 -Ttext=0x80000000 --no-relax
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * callq \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <[0-9a-zA-Z_]+[\+\-]+0x[a-f0-9]+>
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 214b08b05fd..8ec10715779 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -299,6 +299,8 @@ run_dump_test "pr13082-2a"
run_dump_test "pr13082-2b"
run_dump_test "pr13082-3a"
run_dump_test "pr13082-3b"
+run_dump_test "pr13082-3c"
+run_dump_test "pr13082-3d"
run_dump_test "pr13082-4a"
run_dump_test "pr13082-4b"
run_dump_test "pr13082-5a"
@@ -375,6 +377,35 @@ run_dump_test "pr19636-2i"
run_dump_test "pr19636-3a"
run_dump_test "pr19636-3b"
run_dump_test "pr19636-3c"
+run_dump_test "pr19609-1a"
+run_dump_test "pr19609-1b"
+run_dump_test "pr19609-1c"
+run_dump_test "pr19609-1d"
+run_dump_test "pr19609-1e"
+run_dump_test "pr19609-1f"
+run_dump_test "pr19609-1g"
+run_dump_test "pr19609-1h"
+run_dump_test "pr19609-1i"
+run_dump_test "pr19609-1j"
+run_dump_test "pr19609-1k"
+run_dump_test "pr19609-1l"
+run_dump_test "pr19609-1m"
+run_dump_test "pr19609-2a"
+run_dump_test "pr19609-2b"
+run_dump_test "pr19609-2c"
+run_dump_test "pr19609-2d"
+run_dump_test "pr19609-3a"
+run_dump_test "pr19609-3b"
+run_dump_test "pr19609-4a"
+run_dump_test "pr19609-4b"
+run_dump_test "pr19609-4c"
+run_dump_test "pr19609-4d"
+run_dump_test "pr19609-4e"
+run_dump_test "pr19609-5a"
+run_dump_test "pr19609-5b"
+run_dump_test "pr19609-5c"
+run_dump_test "pr19609-5d"
+run_dump_test "pr19609-5e"
proc undefined_weak {cflags ldflags} {
set testname "Undefined weak symbol"