diff options
Diffstat (limited to 'ld/testsuite/ld-i386')
-rw-r--r-- | ld/testsuite/ld-i386/i386.exp | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/tlsie1.dd | 18 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/tlsie1.s | 16 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/tlsie2.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/tlsie2.s | 12 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/tlsie3.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/tlsie3.s | 12 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/tlsie4.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/tlsie4.s | 12 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/tlsie5.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/tlsie5.s | 12 |
11 files changed, 105 insertions, 0 deletions
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index 2c7c14b..10f90ce 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -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" diff --git a/ld/testsuite/ld-i386/tlsie1.dd b/ld/testsuite/ld-i386/tlsie1.dd new file mode 100644 index 0000000..2cebc70 --- /dev/null +++ b/ld/testsuite/ld-i386/tlsie1.dd @@ -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 diff --git a/ld/testsuite/ld-i386/tlsie1.s b/ld/testsuite/ld-i386/tlsie1.s new file mode 100644 index 0000000..d4ad569 --- /dev/null +++ b/ld/testsuite/ld-i386/tlsie1.s @@ -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 diff --git a/ld/testsuite/ld-i386/tlsie2.d b/ld/testsuite/ld-i386/tlsie2.d new file mode 100644 index 0000000..ebb85fd --- /dev/null +++ b/ld/testsuite/ld-i386/tlsie2.d @@ -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.* diff --git a/ld/testsuite/ld-i386/tlsie2.s b/ld/testsuite/ld-i386/tlsie2.s new file mode 100644 index 0000000..72df617 --- /dev/null +++ b/ld/testsuite/ld-i386/tlsie2.s @@ -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 diff --git a/ld/testsuite/ld-i386/tlsie3.d b/ld/testsuite/ld-i386/tlsie3.d new file mode 100644 index 0000000..d993f30 --- /dev/null +++ b/ld/testsuite/ld-i386/tlsie3.d @@ -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.* diff --git a/ld/testsuite/ld-i386/tlsie3.s b/ld/testsuite/ld-i386/tlsie3.s new file mode 100644 index 0000000..865156d --- /dev/null +++ b/ld/testsuite/ld-i386/tlsie3.s @@ -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 diff --git a/ld/testsuite/ld-i386/tlsie4.d b/ld/testsuite/ld-i386/tlsie4.d new file mode 100644 index 0000000..3ca8fdd --- /dev/null +++ b/ld/testsuite/ld-i386/tlsie4.d @@ -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.* diff --git a/ld/testsuite/ld-i386/tlsie4.s b/ld/testsuite/ld-i386/tlsie4.s new file mode 100644 index 0000000..3469f29 --- /dev/null +++ b/ld/testsuite/ld-i386/tlsie4.s @@ -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 diff --git a/ld/testsuite/ld-i386/tlsie5.d b/ld/testsuite/ld-i386/tlsie5.d new file mode 100644 index 0000000..3febeb1 --- /dev/null +++ b/ld/testsuite/ld-i386/tlsie5.d @@ -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.* diff --git a/ld/testsuite/ld-i386/tlsie5.s b/ld/testsuite/ld-i386/tlsie5.s new file mode 100644 index 0000000..affee31 --- /dev/null +++ b/ld/testsuite/ld-i386/tlsie5.s @@ -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 |