diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2011-03-03 22:11:33 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2011-03-03 22:11:33 +0000 |
commit | 4a4c5f250b2251c4f6a11b748061d044a6919b9b (patch) | |
tree | cb051b2d2a71ebfed2896442b9ef706a81f75fd5 /ld | |
parent | 2e3fd7679d44288bc1f0e9cf28fe3a04c854e08d (diff) | |
download | gdb-4a4c5f250b2251c4f6a11b748061d044a6919b9b.zip gdb-4a4c5f250b2251c4f6a11b748061d044a6919b9b.tar.gz 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/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/tlsie4.dd | 18 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/tlsie4.s | 16 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/x86-64.exp | 3 |
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 |