2007-08-24 H.J. Lu <hongjiu.lu@intel.com>
* ld-i386/i386.exp (i386tests): Add a test for TLS IE->LE transition. Run tlsie2, tlsie3, tlsie4 and tlsie5. * ld-i386/tlsie1.dd: New file. * ld-i386/tlsie1.s: Likewise. * ld-i386/tlsie2.d: Likewise. * ld-i386/tlsie2.s: Likewise. * ld-i386/tlsie3.d: Likewise. * ld-i386/tlsie3.s: Likewise. * ld-i386/tlsie4.d: Likewise. * ld-i386/tlsie4.s: Likewise. * ld-i386/tlsie5.d: Likewise. * ld-i386/tlsie5.s: Likewise. * ld-x86-64/tlsgd2.d: Likewise. * ld-x86-64/tlsgd2.s: Likewise. * ld-x86-64/tlsgd3.d: Likewise. * ld-x86-64/tlsgd3.s: Likewise. * ld-x86-64/tlsie1.dd: Likewise. * ld-x86-64/tlsie1.s: Likewise. * ld-x86-64/tlsie2.d: Likewise. * ld-x86-64/tlsie2.s: Likewise. * ld-x86-64/tlsie3.d: Likewise. * ld-x86-64/tlsie3.s: Likewise. * ld-x86-64/x86-64.exp (x86_64tests): Add a test for TLS LD->LE transition. Run tlsgd2, tlsgd3, tlsie2 and tlsie3.
This commit is contained in:
parent
495bde8ec4
commit
dd1093aa2c
@ -1,3 +1,34 @@
|
||||
2007-08-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-i386/i386.exp (i386tests): Add a test for TLS IE->LE
|
||||
transition.
|
||||
Run tlsie2, tlsie3, tlsie4 and tlsie5.
|
||||
|
||||
* ld-i386/tlsie1.dd: New file.
|
||||
* ld-i386/tlsie1.s: Likewise.
|
||||
* ld-i386/tlsie2.d: Likewise.
|
||||
* ld-i386/tlsie2.s: Likewise.
|
||||
* ld-i386/tlsie3.d: Likewise.
|
||||
* ld-i386/tlsie3.s: Likewise.
|
||||
* ld-i386/tlsie4.d: Likewise.
|
||||
* ld-i386/tlsie4.s: Likewise.
|
||||
* ld-i386/tlsie5.d: Likewise.
|
||||
* ld-i386/tlsie5.s: Likewise.
|
||||
* ld-x86-64/tlsgd2.d: Likewise.
|
||||
* ld-x86-64/tlsgd2.s: Likewise.
|
||||
* ld-x86-64/tlsgd3.d: Likewise.
|
||||
* ld-x86-64/tlsgd3.s: Likewise.
|
||||
* ld-x86-64/tlsie1.dd: Likewise.
|
||||
* ld-x86-64/tlsie1.s: Likewise.
|
||||
* ld-x86-64/tlsie2.d: Likewise.
|
||||
* ld-x86-64/tlsie2.s: Likewise.
|
||||
* ld-x86-64/tlsie3.d: Likewise.
|
||||
* ld-x86-64/tlsie3.s: Likewise.
|
||||
|
||||
* ld-x86-64/x86-64.exp (x86_64tests): Add a test for TLS LD->LE
|
||||
transition.
|
||||
Run tlsgd2, tlsgd3, tlsie2 and tlsie3.
|
||||
|
||||
2007-08-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-i386/tlsbinpic.s: Add a new GD -> IE test.
|
||||
|
@ -115,6 +115,9 @@ set i386tests {
|
||||
{"TLS LD->LE transition" "-melf_i386"
|
||||
"--32" {tlsld1.s}
|
||||
{{objdump -dwr tlsld1.dd}} "tlsld1"}
|
||||
{"TLS IE->LE transition" "-melf_i386"
|
||||
"--32" {tlsie1.s}
|
||||
{{objdump -dwr tlsie1.dd}} "tlsie1"}
|
||||
}
|
||||
|
||||
run_ld_link_tests $i386tests
|
||||
@ -125,3 +128,7 @@ run_dump_test "pcrel16"
|
||||
run_dump_test "pcrel16abs"
|
||||
run_dump_test "alloc"
|
||||
run_dump_test "warn1"
|
||||
run_dump_test "tlsie2"
|
||||
run_dump_test "tlsie3"
|
||||
run_dump_test "tlsie4"
|
||||
run_dump_test "tlsie5"
|
||||
|
18
ld/testsuite/ld-i386/tlsie1.dd
Normal file
18
ld/testsuite/ld-i386/tlsie1.dd
Normal file
@ -0,0 +1,18 @@
|
||||
#source: tlsie1.s
|
||||
#as: --32
|
||||
#ld: -melf_i386 tmpdir/tlsld1
|
||||
#objdump: -drw
|
||||
#target: i?86-*-linux*
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
[a-f0-9]+ <_start>:
|
||||
[ ]*[a-f0-9]+: 81 c1 fc ff ff ff add \$0xfffffffc,%ecx
|
||||
[ ]*[a-f0-9]+: 81 c1 fc ff ff ff add \$0xfffffffc,%ecx
|
||||
[ ]*[a-f0-9]+: c7 c0 fc ff ff ff mov \$0xfffffffc,%eax
|
||||
[ ]*[a-f0-9]+: c7 c1 fc ff ff ff mov \$0xfffffffc,%ecx
|
||||
[ ]*[a-f0-9]+: b8 fc ff ff ff mov \$0xfffffffc,%eax
|
||||
[ ]*[a-f0-9]+: c7 c1 fc ff ff ff mov \$0xfffffffc,%ecx
|
||||
#pass
|
16
ld/testsuite/ld-i386/tlsie1.s
Normal file
16
ld/testsuite/ld-i386/tlsie1.s
Normal file
@ -0,0 +1,16 @@
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
addl foo@gotntpoff(%ebx), %ecx
|
||||
addl foo@indntpoff, %ecx
|
||||
movl foo@gotntpoff(%ebx), %eax
|
||||
movl foo@gotntpoff(%ebx), %ecx
|
||||
movl foo@indntpoff, %eax
|
||||
movl foo@indntpoff, %ecx
|
||||
.globl foo
|
||||
.section .tdata,"awT",@progbits
|
||||
.align 4
|
||||
.type foo, @object
|
||||
.size foo, 4
|
||||
foo:
|
||||
.long 100
|
4
ld/testsuite/ld-i386/tlsie2.d
Normal file
4
ld/testsuite/ld-i386/tlsie2.d
Normal file
@ -0,0 +1,4 @@
|
||||
#name: TLS IE->LE transition check (R_386_TLS_GOTIE with %eax)
|
||||
#as: --32
|
||||
#ld: -melf_i386
|
||||
#error: .*TLS transition from R_386_TLS_GOTIE to R_386_TLS_LE_32 against `foo'.*failed.*
|
12
ld/testsuite/ld-i386/tlsie2.s
Normal file
12
ld/testsuite/ld-i386/tlsie2.s
Normal file
@ -0,0 +1,12 @@
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
leal foo@gotntpoff(%ebx), %eax
|
||||
movl (%eax), %eax
|
||||
.globl foo
|
||||
.section .tdata,"awT",@progbits
|
||||
.align 4
|
||||
.type foo, @object
|
||||
.size foo, 4
|
||||
foo:
|
||||
.long 100
|
4
ld/testsuite/ld-i386/tlsie3.d
Normal file
4
ld/testsuite/ld-i386/tlsie3.d
Normal file
@ -0,0 +1,4 @@
|
||||
#name: TLS IE->LE transition check (R_386_TLS_GOTIE)
|
||||
#as: --32
|
||||
#ld: -melf_i386
|
||||
#error: .*TLS transition from R_386_TLS_GOTIE to R_386_TLS_LE_32 against `foo'.*failed.*
|
12
ld/testsuite/ld-i386/tlsie3.s
Normal file
12
ld/testsuite/ld-i386/tlsie3.s
Normal file
@ -0,0 +1,12 @@
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
leal foo@gotntpoff(%ebx), %ecx
|
||||
movl (%ecx), %ecx
|
||||
.globl foo
|
||||
.section .tdata,"awT",@progbits
|
||||
.align 4
|
||||
.type foo, @object
|
||||
.size foo, 4
|
||||
foo:
|
||||
.long 100
|
4
ld/testsuite/ld-i386/tlsie4.d
Normal file
4
ld/testsuite/ld-i386/tlsie4.d
Normal file
@ -0,0 +1,4 @@
|
||||
#name: TLS IE->LE transition check (R_386_TLS_IE with %eax)
|
||||
#as: --32
|
||||
#ld: -melf_i386
|
||||
#error: .*TLS transition from R_386_TLS_IE to R_386_TLS_LE_32 against `foo'.*failed.*
|
12
ld/testsuite/ld-i386/tlsie4.s
Normal file
12
ld/testsuite/ld-i386/tlsie4.s
Normal file
@ -0,0 +1,12 @@
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
leal foo@indntpoff(%ebx), %eax
|
||||
movl (%eax), %eax
|
||||
.globl foo
|
||||
.section .tdata,"awT",@progbits
|
||||
.align 4
|
||||
.type foo, @object
|
||||
.size foo, 4
|
||||
foo:
|
||||
.long 100
|
4
ld/testsuite/ld-i386/tlsie5.d
Normal file
4
ld/testsuite/ld-i386/tlsie5.d
Normal file
@ -0,0 +1,4 @@
|
||||
#name: TLS IE->LE transition check (R_386_TLS_IE)
|
||||
#as: --32
|
||||
#ld: -melf_i386
|
||||
#error: .*TLS transition from R_386_TLS_IE to R_386_TLS_LE_32 against `foo'.*failed.*
|
12
ld/testsuite/ld-i386/tlsie5.s
Normal file
12
ld/testsuite/ld-i386/tlsie5.s
Normal file
@ -0,0 +1,12 @@
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
leal foo@indntpoff, %ecx
|
||||
movl (%ecx), %ecx
|
||||
.globl foo
|
||||
.section .tdata,"awT",@progbits
|
||||
.align 4
|
||||
.type foo, @object
|
||||
.size foo, 4
|
||||
foo:
|
||||
.long 100
|
4
ld/testsuite/ld-x86-64/tlsgd2.d
Normal file
4
ld/testsuite/ld-x86-64/tlsgd2.d
Normal file
@ -0,0 +1,4 @@
|
||||
#name: TLS GD->IE transition check
|
||||
#as: --64
|
||||
#ld: -melf_x86_64
|
||||
#error: .*TLS transition from R_X86_64_TLSGD to R_X86_64_GOTTPOFF against `foo'.*failed.*
|
5
ld/testsuite/ld-x86-64/tlsgd2.s
Normal file
5
ld/testsuite/ld-x86-64/tlsgd2.s
Normal file
@ -0,0 +1,5 @@
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
leaq foo@TLSGD(%rip), %rdi
|
||||
call __tls_get_addr
|
4
ld/testsuite/ld-x86-64/tlsgd3.d
Normal file
4
ld/testsuite/ld-x86-64/tlsgd3.d
Normal file
@ -0,0 +1,4 @@
|
||||
#name: TLS GD->LE transition check
|
||||
#as: --64
|
||||
#ld: -melf_x86_64
|
||||
#error: .*TLS transition from R_X86_64_TLSGD to R_X86_64_TPOFF32 against `a local symbol'.*failed.*
|
11
ld/testsuite/ld-x86-64/tlsgd3.s
Normal file
11
ld/testsuite/ld-x86-64/tlsgd3.s
Normal file
@ -0,0 +1,11 @@
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
leaq foo@TLSGD(%rip), %rdi
|
||||
call __tls_get_addr
|
||||
.section .tdata,"awT",@progbits
|
||||
.align 4
|
||||
.type foo, @object
|
||||
.size foo, 4
|
||||
foo:
|
||||
.long 100
|
16
ld/testsuite/ld-x86-64/tlsie1.dd
Normal file
16
ld/testsuite/ld-x86-64/tlsie1.dd
Normal file
@ -0,0 +1,16 @@
|
||||
#source: tlsie1.s
|
||||
#as: --64
|
||||
#ld: -melf_x86_64 tmpdir/tlsie1
|
||||
#objdump: -drw
|
||||
#target: x86_64-*-linux*
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
[a-f0-9]+ <_start>:
|
||||
[ ]*[a-f0-9]+: 48 c7 c0 fc ff ff ff mov \$0xfffffffffffffffc,%rax
|
||||
[ ]*[a-f0-9]+: 48 8d 80 fc ff ff ff lea -0x4\(%rax\),%rax
|
||||
[ ]*[a-f0-9]+: 49 c7 c4 fc ff ff ff mov \$0xfffffffffffffffc,%r12
|
||||
[ ]*[a-f0-9]+: 49 81 c4 fc ff ff ff add \$0xfffffffffffffffc,%r12
|
||||
#pass
|
14
ld/testsuite/ld-x86-64/tlsie1.s
Normal file
14
ld/testsuite/ld-x86-64/tlsie1.s
Normal file
@ -0,0 +1,14 @@
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
movq foo@GOTTPOFF(%rip), %rax
|
||||
addq foo@GOTTPOFF(%rip), %rax
|
||||
movq foo@GOTTPOFF(%rip), %r12
|
||||
addq foo@GOTTPOFF(%rip), %r12
|
||||
.globl foo
|
||||
.section .tdata,"awT",@progbits
|
||||
.align 4
|
||||
.type foo, @object
|
||||
.size foo, 4
|
||||
foo:
|
||||
.long 100
|
4
ld/testsuite/ld-x86-64/tlsie2.d
Normal file
4
ld/testsuite/ld-x86-64/tlsie2.d
Normal file
@ -0,0 +1,4 @@
|
||||
#name: TLS IE->LE transition check
|
||||
#as: --64
|
||||
#ld: -melf_x86_64
|
||||
#error: .*TLS transition from R_X86_64_GOTTPOFF to R_X86_64_TPOFF32 against `foo'.*failed.*
|
12
ld/testsuite/ld-x86-64/tlsie2.s
Normal file
12
ld/testsuite/ld-x86-64/tlsie2.s
Normal file
@ -0,0 +1,12 @@
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
leaq foo@GOTTPOFF(%rip), %rax
|
||||
movq (%rax), %rax
|
||||
.globl foo
|
||||
.section .tdata,"awT",@progbits
|
||||
.align 4
|
||||
.type foo, @object
|
||||
.size foo, 4
|
||||
foo:
|
||||
.long 100
|
4
ld/testsuite/ld-x86-64/tlsie3.d
Normal file
4
ld/testsuite/ld-x86-64/tlsie3.d
Normal file
@ -0,0 +1,4 @@
|
||||
#name: TLS IE->LE transition check (%r12)
|
||||
#as: --64
|
||||
#ld: -melf_x86_64
|
||||
#error: .*TLS transition from R_X86_64_GOTTPOFF to R_X86_64_TPOFF32 against `foo'.*failed.*
|
12
ld/testsuite/ld-x86-64/tlsie3.s
Normal file
12
ld/testsuite/ld-x86-64/tlsie3.s
Normal file
@ -0,0 +1,12 @@
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
leaq foo@GOTTPOFF(%rip), %r12
|
||||
movq (%r12), %r12
|
||||
.globl foo
|
||||
.section .tdata,"awT",@progbits
|
||||
.align 4
|
||||
.type foo, @object
|
||||
.size foo, 4
|
||||
foo:
|
||||
.long 100
|
@ -72,6 +72,9 @@ set x86_64tests {
|
||||
{"TLS LD->LE transition" "-melf_x86_64"
|
||||
"--64" {tlsld1.s}
|
||||
{{objdump -dwr tlsld1.dd}} "tlsld1"}
|
||||
{"TLS IE->LE transition" "-melf_x86_64"
|
||||
"--64" {tlsie1.s}
|
||||
{{objdump -dwr tlsie1.dd}} "tlsie1"}
|
||||
}
|
||||
|
||||
run_ld_link_tests $x86_64tests
|
||||
@ -79,3 +82,7 @@ run_ld_link_tests $x86_64tests
|
||||
run_dump_test "abs"
|
||||
run_dump_test "pcrel8"
|
||||
run_dump_test "pcrel16"
|
||||
run_dump_test "tlsgd2"
|
||||
run_dump_test "tlsgd3"
|
||||
run_dump_test "tlsie2"
|
||||
run_dump_test "tlsie3"
|
||||
|
Loading…
Reference in New Issue
Block a user