aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2011-03-03 22:11:33 +0000
committerH.J. Lu <hjl.tools@gmail.com>2011-03-03 22:11:33 +0000
commit4a4c5f250b2251c4f6a11b748061d044a6919b9b (patch)
treecb051b2d2a71ebfed2896442b9ef706a81f75fd5 /ld
parent2e3fd7679d44288bc1f0e9cf28fe3a04c854e08d (diff)
downloadfsf-binutils-gdb-4a4c5f250b2251c4f6a11b748061d044a6919b9b.zip
fsf-binutils-gdb-4a4c5f250b2251c4f6a11b748061d044a6919b9b.tar.gz
fsf-binutils-gdb-4a4c5f250b2251c4f6a11b748061d044a6919b9b.tar.bz2
Supprt TLS x32 IE->LE transition.
bfd/ 2011-03-03 H.J. Lu <hongjiu.lu@intel.com> * elf64-x86-64.c (elf_x86_64_check_tls_transition): Supprt TLS x32 IE->LE transition. (elf_x86_64_relocate_section): Likewise. ld/testsuite/ 2011-03-03 H.J. Lu <hongjiu.lu@intel.com> * ld-x86-64/tlsie4.dd: New. * ld-x86-64/tlsie4.s: Likewise. * ld-x86-64/x86-64.exp (x86_64tests): Add tlsie4.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog7
-rw-r--r--ld/testsuite/ld-x86-64/tlsie4.dd18
-rw-r--r--ld/testsuite/ld-x86-64/tlsie4.s16
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp3
4 files changed, 44 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 4ff663f..c5bad13 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2011-03-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ld-x86-64/tlsie4.dd: New.
+ * ld-x86-64/tlsie4.s: Likewise.
+
+ * ld-x86-64/x86-64.exp (x86_64tests): Add tlsie4.
+
2011-02-25 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12516
diff --git a/ld/testsuite/ld-x86-64/tlsie4.dd b/ld/testsuite/ld-x86-64/tlsie4.dd
new file mode 100644
index 0000000..d52e337
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tlsie4.dd
@@ -0,0 +1,18 @@
+#source: tlsie4.s
+#as: --x32
+#ld: -melf32_x86_64 tmpdir/tlsie4
+#objdump: -drw
+#target: x86_64-*-linux*
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: c7 c0 fc ff ff ff mov \$0xfffffffc,%eax
+[ ]*[a-f0-9]+: 8d 80 fc ff ff ff lea -0x4\(%rax\),%eax
+[ ]*[a-f0-9]+: 41 c7 c0 fc ff ff ff mov \$0xfffffffc,%r8d
+[ ]*[a-f0-9]+: 45 8d 80 fc ff ff ff lea -0x4\(%r8\),%r8d
+[ ]*[a-f0-9]+: 41 c7 c4 fc ff ff ff mov \$0xfffffffc,%r12d
+[ ]*[a-f0-9]+: 41 81 c4 fc ff ff ff add \$0xfffffffc,%r12d
+#pass
diff --git a/ld/testsuite/ld-x86-64/tlsie4.s b/ld/testsuite/ld-x86-64/tlsie4.s
new file mode 100644
index 0000000..ca63546
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tlsie4.s
@@ -0,0 +1,16 @@
+ .text
+ .globl _start
+_start:
+ mov foo@GOTTPOFF(%rip), %eax
+ add foo@GOTTPOFF(%rip), %eax
+ mov foo@GOTTPOFF(%rip), %r8d
+ add foo@GOTTPOFF(%rip), %r8d
+ mov foo@GOTTPOFF(%rip), %r12d
+ add foo@GOTTPOFF(%rip), %r12d
+ .globl foo
+ .section .tdata,"awT",@progbits
+ .align 4
+ .type foo, @object
+ .size foo, 4
+foo:
+ .long 100
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index a82a56f..43b9c39 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -87,6 +87,9 @@ set x86_64tests {
{"Split by file with 'l' flag on section." "-split-by-file -r"
"--64" {split-by-file1.s split-by-file2.s}
{{readelf -SW split-by-file.rd}} "split-by-file.o"}
+ {"TLS X32 IE->LE transition" "-melf32_x86_64"
+ "--x32" {tlsie4.s}
+ {{objdump -dwr tlsie4.dd}} "tlsie4"}
}
run_ld_link_tests $x86_64tests