aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/testsuite/ld-mips-elf/mips-elf.exp12
-rw-r--r--ld/testsuite/ld-mips-elf/tlsbin-pie-o32.d43
-rw-r--r--ld/testsuite/ld-mips-elf/tlsbin-pie-o32.got7
-rw-r--r--ld/testsuite/ld-mips-elf/tlsdyn-pie-o32.d53
-rw-r--r--ld/testsuite/ld-mips-elf/tlsdyn-pie-o32.got13
6 files changed, 137 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index f2c1103..ea5468f 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2018-07-11 Maciej W. Rozycki <macro@mips.com>
+
+ PR ld/22570
+ * testsuite/ld-mips-elf/tlsbin-pie-o32.d: New test.
+ * testsuite/ld-mips-elf/tlsbin-pie-o32.got: New test.
+ * testsuite/ld-mips-elf/tlsdyn-pie-o32.d: New test.
+ * testsuite/ld-mips-elf/tlsdyn-pie-o32.got: New test.
+ * testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
+
2018-07-11 Alan Modra <amodra@gmail.com>
* testsuite/ld-elf/hash.d: Comment on mips xfail.
diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp
index 6aae2f9..ba3f161 100644
--- a/ld/testsuite/ld-mips-elf/mips-elf.exp
+++ b/ld/testsuite/ld-mips-elf/mips-elf.exp
@@ -863,6 +863,12 @@ set mips_tls_tests {
"-EB -march=mips1 -32 -KPIC" {tlsbin-o32.s}
{{objdump {-dr -m mips:isa32r2} tlsbin-o32.d} {objdump -srj.got tlsbin-o32.got}}
"tls-static-o32"}
+ {"Static PIE executable with TLS"
+ "-static -pie -melf32btsmip -T mips-dyn.ld" ""
+ "-EB -march=mips1 -32 -KPIC" {tlsbin-o32.s}
+ {{objdump {-dr -m mips:isa32r2} tlsbin-pie-o32.d}
+ {objdump -Rsj.got tlsbin-pie-o32.got}}
+ "tls-static-pie-o32"}
{"Shared library with TLS" "-shared -melf32btsmip -T mips-lib.ld" ""
"-EB -march=mips1 -32 -KPIC" {tlslib-o32.s}
{{objdump {-dr -m mips:isa32r2} tlslib-o32.d} {objdump -Rsj.got tlslib-o32.got}}
@@ -872,6 +878,12 @@ set mips_tls_tests {
"-EB -march=mips1 -32 -KPIC" {tlsdyn-o32.s}
{{objdump {-dr -m mips:isa32r2} tlsdyn-o32.d} {objdump -Rsj.got tlsdyn-o32.got}}
"tls-dynamic-o32"}
+ {"Dynamic PIE executable with TLS"
+ "-pie -melf32btsmip -T mips-dyn.ld tmpdir/tlslib-o32.so" ""
+ "-EB -march=mips1 -32 -KPIC" {tlsdyn-o32.s}
+ {{objdump {-dr -m mips:isa32r2} tlsdyn-pie-o32.d}
+ {objdump -Rsj.got tlsdyn-pie-o32.got}}
+ "tls-dynamic-pie-o32"}
{"Shared library with multiple GOTs and TLS"
"-shared -melf32btsmip -T mips-lib.ld" ""
"-EB -march=mips1 -32 -KPIC" {tls-multi-got-1-1.s tls-multi-got-1-2.s}
diff --git a/ld/testsuite/ld-mips-elf/tlsbin-pie-o32.d b/ld/testsuite/ld-mips-elf/tlsbin-pie-o32.d
new file mode 100644
index 0000000..1d6536d
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/tlsbin-pie-o32.d
@@ -0,0 +1,43 @@
+.*: file format elf32-tradbigmips
+
+Disassembly of section \.text:
+
+.* <__start>:
+ .*: 3c1c0fc0 lui gp,0xfc0
+ .*: 279c7d20 addiu gp,gp,32032
+ .*: 0399e021 addu gp,gp,t9
+ .*: 27bdfff0 addiu sp,sp,-16
+ .*: afbe0008 sw s8,8\(sp\)
+ .*: 03a0f025 move s8,sp
+ .*: afbc0000 sw gp,0\(sp\)
+ .*: 8f998018 lw t9,-32744\(gp\)
+ .*: 27848020 addiu a0,gp,-32736
+ .*: 0320f809 jalr t9
+ .*: 00000000 nop
+ .*: 8fdc0000 lw gp,0\(s8\)
+ .*: 00000000 nop
+ .*: 8f998018 lw t9,-32744\(gp\)
+ .*: 27848028 addiu a0,gp,-32728
+ .*: 0320f809 jalr t9
+ .*: 00000000 nop
+ .*: 8fdc0000 lw gp,0\(s8\)
+ .*: 00401025 move v0,v0
+ .*: 3c030000 lui v1,0x0
+ .*: 24638000 addiu v1,v1,-32768
+ .*: 00621821 addu v1,v1,v0
+ .*: 7c02283b rdhwr v0,\$5
+ .*: 8f83801c lw v1,-32740\(gp\)
+ .*: 00000000 nop
+ .*: 00621821 addu v1,v1,v0
+ .*: 7c02283b rdhwr v0,\$5
+ .*: 3c030000 lui v1,0x0
+ .*: 24639004 addiu v1,v1,-28668
+ .*: 00621821 addu v1,v1,v0
+ .*: 03c0e825 move sp,s8
+ .*: 8fbe0008 lw s8,8\(sp\)
+ .*: 03e00008 jr ra
+ .*: 27bd0010 addiu sp,sp,16
+
+.* <__tls_get_addr>:
+ .*: 03e00008 jr ra
+ .*: 00000000 nop
diff --git a/ld/testsuite/ld-mips-elf/tlsbin-pie-o32.got b/ld/testsuite/ld-mips-elf/tlsbin-pie-o32.got
new file mode 100644
index 0000000..c5efbb7
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/tlsbin-pie-o32.got
@@ -0,0 +1,7 @@
+.*: file format elf32-tradbigmips
+
+DYNAMIC RELOCATION RECORDS \(none\)
+
+Contents of section \.got:
+ 10000020 00000000 80000000 00400378 ffff900c .*
+ 10000030 00000001 ffff8008 00000001 00000000 .*
diff --git a/ld/testsuite/ld-mips-elf/tlsdyn-pie-o32.d b/ld/testsuite/ld-mips-elf/tlsdyn-pie-o32.d
new file mode 100644
index 0000000..4df024f
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/tlsdyn-pie-o32.d
@@ -0,0 +1,53 @@
+.*: file format elf32-tradbigmips
+
+Disassembly of section \.text:
+
+.* <__start>:
+ .*: 3c1c0fc0 lui gp,0xfc0
+ .*: 279c7bd0 addiu gp,gp,31696
+ .*: 0399e021 addu gp,gp,t9
+ .*: 27bdfff0 addiu sp,sp,-16
+ .*: afbe0008 sw s8,8\(sp\)
+ .*: 03a0f025 move s8,sp
+ .*: afbc0000 sw gp,0\(sp\)
+ .*: 8f998018 lw t9,-32744\(gp\)
+ .*: 27848034 addiu a0,gp,-32716
+ .*: 0320f809 jalr t9
+ .*: 00000000 nop
+ .*: 8fdc0000 lw gp,0\(s8\)
+ .*: 00000000 nop
+ .*: 8f998018 lw t9,-32744\(gp\)
+ .*: 27848020 addiu a0,gp,-32736
+ .*: 0320f809 jalr t9
+ .*: 00000000 nop
+ .*: 8fdc0000 lw gp,0\(s8\)
+ .*: 00000000 nop
+ .*: 8f998018 lw t9,-32744\(gp\)
+ .*: 27848028 addiu a0,gp,-32728
+ .*: 0320f809 jalr t9
+ .*: 00000000 nop
+ .*: 8fdc0000 lw gp,0\(s8\)
+ .*: 00401025 move v0,v0
+ .*: 3c030000 lui v1,0x0
+ .*: 24638000 addiu v1,v1,-32768
+ .*: 00621821 addu v1,v1,v0
+ .*: 7c02283b rdhwr v0,\$5
+ .*: 8f83801c lw v1,-32740\(gp\)
+ .*: 00000000 nop
+ .*: 00621821 addu v1,v1,v0
+ .*: 8f838030 lw v1,-32720\(gp\)
+ .*: 00000000 nop
+ .*: 00621821 addu v1,v1,v0
+ .*: 7c02283b rdhwr v0,\$5
+ .*: 3c030000 lui v1,0x0
+ .*: 24639004 addiu v1,v1,-28668
+ .*: 00621821 addu v1,v1,v0
+ .*: 03c0e825 move sp,s8
+ .*: 8fbe0008 lw s8,8\(sp\)
+ .*: 03e00008 jr ra
+ .*: 27bd0010 addiu sp,sp,16
+
+.* <__tls_get_addr>:
+ .*: 03e00008 jr ra
+ .*: 00000000 nop
+ \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/tlsdyn-pie-o32.got b/ld/testsuite/ld-mips-elf/tlsdyn-pie-o32.got
new file mode 100644
index 0000000..c5dd695
--- /dev/null
+++ b/ld/testsuite/ld-mips-elf/tlsdyn-pie-o32.got
@@ -0,0 +1,13 @@
+.*: file format elf32-tradbigmips
+
+DYNAMIC RELOCATION RECORDS
+OFFSET TYPE VALUE
+00000000 R_MIPS_NONE \*ABS\*
+10000030 R_MIPS_TLS_DTPMOD32 tlsvar_gd
+10000034 R_MIPS_TLS_DTPREL32 tlsvar_gd
+10000040 R_MIPS_TLS_TPREL32 tlsvar_ie
+
+Contents of section .got:
+ 10000020 00000000 80000000 004004ec ffff900c .*
+ 10000030 00000000 00000000 00000001 00000000 .*
+ 10000040 00000000 00000001 ffff8008 .*