URL
https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk
Subversion Repositories open8_urisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/open8_urisc
- from Rev 65 to Rev 66
- ↔ Reverse comparison
Rev 65 → Rev 66
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsgd2.d
0,0 → 1,4
#name: TLS GD->LE transition check |
#as: --32 |
#ld: -melf_i386 |
#error: .*TLS transition from R_386_TLS_GD to R_386_TLS_LE_32 against `foo'.*failed.* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsnopic.dd
0,0 → 1,161
#source: tlsnopic1.s |
#source: tlsnopic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -drj.text |
#target: i?86-*-* |
|
.*: +file format elf32-i386 |
|
Disassembly of section .text: |
|
0+1000 <fn3>: |
1000: 55[ ]+push %ebp |
1001: 89 e5[ ]+mov %esp,%ebp |
# @indntpoff IE against global var |
1003: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
1009: 90[ ]+nop * |
100a: 90[ ]+nop * |
100b: 03 05 7c 21 00 00[ ]+add 0x217c,%eax |
# ->R_386_TLS_TPOFF sg1 |
1011: 90[ ]+nop * |
1012: 90[ ]+nop * |
1013: 90[ ]+nop * |
1014: 90[ ]+nop * |
# @indntpoff direct %gs access IE against global var |
1015: 8b 15 80 21 00 00[ ]+mov 0x2180,%edx |
# ->R_386_TLS_TPOFF sg2 |
101b: 90[ ]+nop * |
101c: 90[ ]+nop * |
101d: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
1020: 90[ ]+nop * |
1021: 90[ ]+nop * |
1022: 90[ ]+nop * |
1023: 90[ ]+nop * |
# @indntpoff IE against hidden var |
1024: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
102a: 90[ ]+nop * |
102b: 90[ ]+nop * |
102c: 03 05 84 21 00 00[ ]+add 0x2184,%eax |
# ->R_386_TLS_TPOFF [0x14000000] |
1032: 90[ ]+nop * |
1033: 90[ ]+nop * |
1034: 90[ ]+nop * |
1035: 90[ ]+nop * |
# @indntpoff direct %gs access IE against hidden var |
1036: 8b 15 88 21 00 00[ ]+mov 0x2188,%edx |
# ->R_386_TLS_TPOFF [0x18000000] |
103c: 90[ ]+nop * |
103d: 90[ ]+nop * |
103e: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
1041: 90[ ]+nop * |
1042: 90[ ]+nop * |
1043: 90[ ]+nop * |
1044: 90[ ]+nop * |
# @indntpoff IE against local var |
1045: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
104b: 90[ ]+nop * |
104c: 90[ ]+nop * |
104d: 03 05 74 21 00 00[ ]+add 0x2174,%eax |
# ->R_386_TLS_TPOFF [0x00000000] |
1053: 90[ ]+nop * |
1054: 90[ ]+nop * |
1055: 90[ ]+nop * |
1056: 90[ ]+nop * |
# @indntpoff direct %gs access IE against local var |
1057: 8b 15 78 21 00 00[ ]+mov 0x2178,%edx |
# ->R_386_TLS_TPOFF [0x04000000] |
105d: 90[ ]+nop * |
105e: 90[ ]+nop * |
105f: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
1062: 90[ ]+nop * |
1063: 90[ ]+nop * |
1064: 90[ ]+nop * |
1065: 90[ ]+nop * |
# LE @tpoff, global var |
1066: ba fd ff ff ff[ ]+mov \$0xfffffffd,%edx |
# R_386_TLS_TPOFF32 sg3 |
106b: 90[ ]+nop * |
106c: 90[ ]+nop * |
106d: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
1073: 90[ ]+nop * |
1074: 90[ ]+nop * |
1075: 29 d0[ ]+sub %edx,%eax |
1077: 90[ ]+nop * |
1078: 90[ ]+nop * |
1079: 90[ ]+nop * |
107a: 90[ ]+nop * |
# LE @tpoff, local var |
107b: b8 f7 ff ff ff[ ]+mov \$0xfffffff7,%eax |
# R_386_TLS_TPOFF32 |
1080: 90[ ]+nop * |
1081: 90[ ]+nop * |
1082: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx |
1089: 90[ ]+nop * |
108a: 90[ ]+nop * |
108b: 29 c2[ ]+sub %eax,%edx |
108d: 90[ ]+nop * |
108e: 90[ ]+nop * |
108f: 90[ ]+nop * |
1090: 90[ ]+nop * |
# LE @ntpoff, global var |
1091: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
1097: 90[ ]+nop * |
1098: 90[ ]+nop * |
1099: 8d 90 02 00 00 00[ ]+lea 0x2\(%eax\),%edx |
# R_386_TLS_TPOFF sg4 |
109f: 90[ ]+nop * |
10a0: 90[ ]+nop * |
10a1: 90[ ]+nop * |
10a2: 90[ ]+nop * |
# LE @ntpoff, hidden var, non-canonical sequence |
10a3: b8 1c 00 00 00[ ]+mov \$0x1c,%eax |
# R_386_TLS_TPOFF |
10a8: 90[ ]+nop * |
10a9: 90[ ]+nop * |
10aa: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx |
10b1: 90[ ]+nop * |
10b2: 90[ ]+nop * |
10b3: 01 c2[ ]+add %eax,%edx |
10b5: 90[ ]+nop * |
10b6: 90[ ]+nop * |
10b7: 90[ ]+nop * |
10b8: 90[ ]+nop * |
# LE @ntpoff, local var, non-canonical sequence |
10b9: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx |
10c0: 90[ ]+nop * |
10c1: 90[ ]+nop * |
10c2: 81 c2 0d 00 00 00[ ]+add \$0xd,%edx |
# R_386_TLS_TPOFF |
10c8: 90[ ]+nop * |
10c9: 90[ ]+nop * |
10ca: 90[ ]+nop * |
10cb: 90[ ]+nop * |
# Direct %gs access |
# LE @ntpoff, global var |
10cc: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
# R_386_TLS_TPOFF sg5 |
10d2: 90[ ]+nop * |
10d3: 90[ ]+nop * |
10d4: 90[ ]+nop * |
10d5: 90[ ]+nop * |
# LE @ntpoff, local var |
10d6: 65 8b 15 13 00 00 00 mov %gs:0x13,%edx |
# R_386_TLS_TPOFF |
10dd: 90[ ]+nop * |
10de: 90[ ]+nop * |
10df: 90[ ]+nop * |
10e0: 90[ ]+nop * |
# LE @ntpoff, hidden var |
10e1: 65 8b 15 21 00 00 00 mov %gs:0x21,%edx |
# R_386_TLS_TPOFF |
10e8: 90[ ]+nop * |
10e9: 90[ ]+nop * |
10ea: 90[ ]+nop * |
10eb: 90[ ]+nop * |
10ec: 8b 5d fc[ ]+mov -0x4\(%ebp\),%ebx |
10ef: c9[ ]+leave * |
10f0: c3[ ]+ret * |
10f1: 90[ ]+nop * |
10f2: 90[ ]+nop * |
10f3: 90[ ]+nop * |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlspic2.s
0,0 → 1,11
.section ".tbss", "awT", @nobits |
.globl sH1, sH2, sH3, sH4, sH5, sH6, sH7, sH8 |
.hidden sH1, sH2, sH3, sH4, sH5, sH6, sH7, sH8 |
sH1: .space 4 |
sH2: .space 4 |
sH3: .space 4 |
sH4: .space 4 |
sH5: .space 4 |
sH6: .space 4 |
sH7: .space 4 |
sH8: .space 4 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlspie1.s
0,0 → 1,64
.text |
.globl ___tls_get_addr |
.type ___tls_get_addr, @function |
___tls_get_addr: |
ret |
.size ___tls_get_addr, .-___tls_get_addr |
.globl _start |
.type _start, @function |
_start: |
pushl %ebp |
movl %esp, %ebp |
pushl %esi |
pushl %ebx |
call .L3 |
.L3: |
popl %ebx |
addl $_GLOBAL_OFFSET_TABLE_+[.-.L3], %ebx |
movl %gs:foo2@NTPOFF, %esi |
addl %gs:foo1@NTPOFF, %esi |
movl foo3@GOTNTPOFF(%ebx), %eax |
addl %gs:(%eax), %esi |
leal foo4@TLSGD(,%ebx,1), %eax |
call ___tls_get_addr@PLT |
addl (%eax), %esi |
leal foo5@TLSGD(,%ebx,1), %eax |
call ___tls_get_addr@PLT |
addl (%eax), %esi |
movl %esi, %eax |
popl %ebx |
popl %esi |
leave |
ret |
.size _start, .-_start |
.globl foo1 |
.section .tbss,"awT",@nobits |
.align 4 |
.type foo1, @object |
.size foo1, 4 |
foo1: |
.zero 4 |
.globl foo2 |
.align 4 |
.type foo2, @object |
.size foo2, 4 |
foo2: |
.zero 4 |
.globl foo3 |
.align 4 |
.type foo3, @object |
.size foo3, 4 |
foo3: |
.zero 4 |
.globl foo4 |
.align 4 |
.type foo4, @object |
.size foo4, 4 |
foo4: |
.zero 4 |
.globl foo5 |
.align 4 |
.type foo5, @object |
.size foo5, 4 |
foo5: |
.zero 4 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pr12627.s
0,0 → 1,11
.section ".text16","ax" |
.globl _start |
_start: |
movl $__bss16_start, %edi |
movl $__bss16_dwords, %ecx |
xorl %eax, %eax |
rep movsl |
ret |
|
.section ".bss16","ax" |
.space 1024 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pcrel16abs.d
0,0 → 1,12
#name: PCREL16 absolute reloc |
#as: --32 |
#ld: -melf_i386 -Ttext 0xfffffff0 |
#objdump: -drj.text -m i8086 |
|
.*: +file format elf32-i386 |
|
Disassembly of section .text: |
|
f+0 <_start>: |
f+0: e9 0d e0[ ]+jmp[ ]+ffffe000 <SEGMENT_SIZE\+0xfffee000> |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pr12627.t
0,0 → 1,27
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") |
OUTPUT_ARCH(i386) |
EXTERN(_start) |
ENTRY(_start) |
|
SECTIONS |
{ |
. = 0x1000; |
|
.bss16 (NOLOAD) : { |
__bss16_start = .; |
*(.bss16) |
__bss16_end = .; |
} |
__bss16_len = __bss16_end - __bss16_start; |
__bss16_dwords = (__bss16_len + 3) >> 2; |
|
. = 0x8000; |
|
.text16 : { |
FILL(0x90909090) |
__text16_start = .; |
*(.text16) |
*(.text16.*) |
__text16_end = .; |
} |
} |
/trunk/gnu/binutils/ld/testsuite/ld-i386/abs.d
0,0 → 1,11
#name: Absolute non-overflowing relocs |
#as: --32 |
#source: abs.s |
#source: zero.s |
#ld: -melf_i386 |
#objdump: -rs |
|
.*: file format .* |
|
Contents of section \.text: |
[ ][0-9a-f]+ c800fff0 c8000110 c9c3.* |
/trunk/gnu/binutils/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 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbinpic.s
0,0 → 1,172
/* Force .got aligned to 4K, so it very likely gets at 0x804a100 |
(0x60 bytes .tdata and 0xa0 bytes .dynamic) */ |
.section ".tdata", "awT", @progbits |
.balign 4096 |
.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 |
.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 |
.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 |
sg1: .long 17 |
sg2: .long 18 |
sg3: .long 19 |
sg4: .long 20 |
sg5: .long 21 |
sg6: .long 22 |
sg7: .long 23 |
sg8: .long 24 |
sl1: .long 65 |
sl2: .long 66 |
sl3: .long 67 |
sl4: .long 68 |
sl5: .long 69 |
sl6: .long 70 |
sl7: .long 71 |
sl8: .long 72 |
sh1: .long 257 |
sh2: .long 258 |
sh3: .long 259 |
sh4: .long 260 |
sh5: .long 261 |
sh6: .long 262 |
sh7: .long 263 |
sh8: .long 264 |
/* Force .text aligned to 4K, so it very likely gets at 0x8049000. */ |
.text |
.balign 4096 |
.globl fn2 |
.type fn2,@function |
fn2: |
pushl %ebp |
movl %esp, %ebp |
pushl %ebx |
pushl %eax |
call 1f |
1: popl %ebx |
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx |
nop;nop;nop;nop |
|
/* GD -> IE because variable is not defined in executable */ |
leal sG1@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE because variable is not defined in executable where |
the variable is referenced through @gottpoff too */ |
leal sG2@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE because variable is not defined in executable where |
the variable is referenced through @gotntpoff too */ |
leal sG3@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE because variable is not defined in executable where |
the variable is referenced through @gottpoff and @gotntpoff too */ |
leal sG4@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> LE with global variable defined in executable */ |
leal sg1@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> LE with local variable defined in executable */ |
leal sl1@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> LE with hidden variable defined in executable */ |
leal sh1@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* LD -> LE */ |
leal sl1@tlsldm(%ebx), %eax |
call ___tls_get_addr@PLT |
nop;nop |
leal sl1@dtpoff(%eax), %edx |
nop;nop |
leal sl2@dtpoff(%eax), %ecx |
nop;nop;nop;nop |
|
/* LD -> LE against hidden variables */ |
leal sh1@tlsldm(%ebx), %eax |
call ___tls_get_addr@PLT |
nop;nop |
leal sh1@dtpoff(%eax), %edx |
nop;nop |
leal sh2@dtpoff(%eax), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
subl sG2@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %eax |
nop;nop |
subl sG4@gottpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gotntpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
addl sG3@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against global var */ |
movl %gs:0, %eax |
nop;nop |
addl sG4@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE -> LE against global var defined in exec */ |
movl %gs:0, %ecx |
nop;nop |
subl sg1@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE -> LE against local var */ |
movl %gs:0, %ecx |
nop;nop |
addl sl1@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE -> LE against hidden var */ |
movl %gs:0, %ecx |
nop;nop |
subl sh1@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* Direct access through %gs */ |
|
/* @gotntpoff IE against global var */ |
movl sG5@gotntpoff(%ebx), %ecx |
nop;nop |
movl %gs:(%ecx), %edx |
nop;nop;nop;nop |
|
/* @gotntpoff IE->LE against local var */ |
movl sl5@gotntpoff(%ebx), %eax |
nop;nop |
movl %gs:(%eax), %edx |
nop;nop;nop;nop |
|
/* @gotntpoff IE->LE against hidden var */ |
movl sh5@gotntpoff(%ebx), %edx |
nop;nop |
movl %gs:(%edx), %edx |
nop;nop;nop;nop |
|
/* GD -> IE because variable is not defined in executable */ |
leal sG1@tlsgd(%ebx), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop;nop |
|
movl -4(%ebp), %ebx |
leave |
ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/nogot2.d
0,0 → 1,7
#ld: -pie -melf_i386 |
#readelf: -S --wide |
#as: --32 |
|
#... |
[ ]*\[.*\][ ]+.*\.got\.plt.* |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/alloc.s
0,0 → 1,6
.section .bar,"ax","progbits" |
.byte 0 |
.section .foo,"aw","progbits" |
.byte 0 |
.bss |
.long 0 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/protected1.d
0,0 → 1,3
#as: --32 |
#ld: -shared -melf_i386 |
#error: .*relocation R_386_GOTOFF against protected function `foo' can not be used when making a shared object |
/trunk/gnu/binutils/ld/testsuite/ld-i386/alloc.t
0,0 → 1,13
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") |
OUTPUT_ARCH(i386) |
PHDRS { |
text PT_LOAD FLAGS(5); /* R_E */ |
} |
SECTIONS |
{ |
. = 0xC0000000 + ((0x100000 + (0x100000 - 1)) & ~(0x100000 - 1)); |
.bar : AT(ADDR(.bar) - 0xC0000000) { *(.bar) } :text |
.bss : AT(ADDR(.bss) - 0xC0000000) { *(.bss) } |
.foo 0 : AT(ADDR(.bss) + SIZEOF(.bss) - 0xC0000000) { *(.foo) } :text |
/DISCARD/ : { *(.*) } |
} |
/trunk/gnu/binutils/ld/testsuite/ld-i386/protected3.d
0,0 → 1,13
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -drw |
|
.*: +file format .* |
|
|
Disassembly of section .text: |
|
0+[a-f0-9]+ <bar>: |
[ ]*[a-f0-9]+: 8b 81 [a-f0-9][a-f0-9] [a-f0-9][a-f0-9] 00 00 mov 0x[a-f0-9]+\(%ecx\),%eax |
[ ]*[a-f0-9]+: c3 ret |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks1-lib.dd
0,0 → 1,41
|
.*: file format .* |
|
Disassembly of section \.plt: |
|
00080800 <_PROCEDURE_LINKAGE_TABLE_>: |
80800: ff b3 04 00 00 00 pushl 0x4\(%ebx\) |
80806: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) |
8080c: 90 nop |
8080d: 90 nop |
8080e: 90 nop |
8080f: 90 nop |
|
00080810 <sexternal@plt>: |
80810: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) |
80816: 68 00 00 00 00 push \$0x0 |
8081b: e9 e0 ff ff ff jmp 80800 <_PROCEDURE_LINKAGE_TABLE_> |
|
00080820 <sglobal@plt>: |
80820: ff a3 10 00 00 00 jmp \*0x10\(%ebx\) |
80826: 68 08 00 00 00 push \$0x8 |
8082b: e9 d0 ff ff ff jmp 80800 <_PROCEDURE_LINKAGE_TABLE_> |
Disassembly of section \.text: |
|
00080c00 <foo>: |
80c00: 53 push %ebx |
80c01: 8b 1d 00 00 00 00 mov 0x0,%ebx |
80c07: 8b 99 00 00 00 00 mov 0x0\(%ecx\),%ebx |
80c0d: 8b 83 14 00 00 00 mov 0x14\(%ebx\),%eax |
80c13: ff 00 incl \(%eax\) |
80c15: e8 0c 00 00 00 call 80c26 <slocal> |
80c1a: e8 01 fc ff ff call 80820 <sglobal@plt> |
80c1f: e8 ec fb ff ff call 80810 <sexternal@plt> |
80c24: 5b pop %ebx |
80c25: c3 ret |
|
00080c26 <slocal>: |
80c26: c3 ret |
|
00080c27 <sglobal>: |
80c27: c3 ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbindesc.sd
0,0 → 1,13
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#objdump: -sj.got |
#target: i?86-*-* |
|
.*: file format elf32-i386 |
|
Contents of section \.got: |
804a0e0 [0-9a-f]+ 00000000 00000000 [0-9a-f]+ .* |
804a0f0 00000000 00000000 00000000 00000000 .* |
804a100 00000000 +.* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbin.rd
0,0 → 1,160
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#readelf: -Ssrl |
#target: i?86-*-* |
|
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: |
|
Section Headers: |
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al |
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0 |
+\[[ 0-9]+\] \.interp +.* |
+\[[ 0-9]+\] \.hash +.* |
+\[[ 0-9]+\] \.dynsym +.* |
+\[[ 0-9]+\] \.dynstr +.* |
+\[[ 0-9]+\] \.rel.dyn +.* |
+\[[ 0-9]+\] \.rel.plt +.* |
+\[[ 0-9]+\] \.plt +.* |
+\[[ 0-9]+\] \.text +PROGBITS +0+8049000 .* |
+\[[ 0-9]+\] \.tdata +PROGBITS +0+804a000 [0-9a-f]+ 000060 00 WAT +0 +0 4096 |
+\[[ 0-9]+\] \.tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000040 00 WAT +0 +0 +1 |
+\[[ 0-9]+\] \.dynamic +DYNAMIC +0+804a060 .* |
+\[[ 0-9]+\] \.got +PROGBITS +0+804a100 .* |
+\[[ 0-9]+\] \.got\.plt +PROGBITS +0+804a124 .* |
+\[[ 0-9]+\] \.shstrtab +.* |
+\[[ 0-9]+\] \.symtab +.* |
+\[[ 0-9]+\] \.strtab +.* |
Key to Flags: |
.* |
.* |
.* |
|
Elf file type is EXEC \(Executable file\) |
Entry point 0x8049188 |
There are [0-9]+ program headers, starting at offset [0-9]+ |
|
Program Headers: |
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align |
+PHDR.* |
+INTERP.* |
.*Requesting program interpreter.* |
+LOAD.* |
+LOAD.* |
+DYNAMIC.* |
+TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000 |
|
Section to Segment mapping: |
+Segment Sections... |
+00 + |
+01 +.interp * |
+02 +.interp .hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text * |
+03 +.tdata .dynamic .got .got.plt * |
+04 +.dynamic * |
+05 +.tdata .tbss * |
|
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries: |
Offset +Info +Type +Sym.Value +Sym. Name |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sG3 |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sG5 |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sG7 |
[0-9a-f ]+R_386_TLS_TPOFF32 0+ +sG2 |
[0-9a-f ]+R_386_TLS_TPOFF32 0+ +sG4 |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sG4 |
[0-9a-f ]+R_386_TLS_TPOFF32 0+ +sG6 |
[0-9a-f ]+R_386_TLS_TPOFF32 0+ +sG1 |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sG8 |
|
Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset +Info +Type +Sym.Value +Sym. Name |
[0-9a-f ]+R_386_JUMP_SLOT +[0-9a-f]+ +___tls_get_addr |
|
Symbol table '\.dynsym' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG5 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG7 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG2 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG4 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG6 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG1 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG8 |
+[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +UND ___tls_get_addr |
|
Symbol table '\.symtab' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +12 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +13 * |
+[0-9]+: 00000020 +0 +TLS +LOCAL +DEFAULT +9 sl1 |
+[0-9]+: 00000024 +0 +TLS +LOCAL +DEFAULT +9 sl2 |
+[0-9]+: 00000028 +0 +TLS +LOCAL +DEFAULT +9 sl3 |
+[0-9]+: 0000002c +0 +TLS +LOCAL +DEFAULT +9 sl4 |
+[0-9]+: 00000030 +0 +TLS +LOCAL +DEFAULT +9 sl5 |
+[0-9]+: 00000034 +0 +TLS +LOCAL +DEFAULT +9 sl6 |
+[0-9]+: 00000038 +0 +TLS +LOCAL +DEFAULT +9 sl7 |
+[0-9]+: 0000003c +0 +TLS +LOCAL +DEFAULT +9 sl8 |
+[0-9]+: 00000080 +0 +TLS +LOCAL +DEFAULT +10 bl1 |
+[0-9]+: 00000084 +0 +TLS +LOCAL +DEFAULT +10 bl2 |
+[0-9]+: 00000088 +0 +TLS +LOCAL +DEFAULT +10 bl3 |
+[0-9]+: 0000008c +0 +TLS +LOCAL +DEFAULT +10 bl4 |
+[0-9]+: 00000090 +0 +TLS +LOCAL +DEFAULT +10 bl5 |
+[0-9]+: 00000094 +0 +TLS +LOCAL +DEFAULT +10 bl6 |
+[0-9]+: 00000098 +0 +TLS +LOCAL +DEFAULT +10 bl7 |
+[0-9]+: 0000009c +0 +TLS +LOCAL +DEFAULT +10 bl8 |
+[0-9]+: 0+804a060 +0 +OBJECT +LOCAL +DEFAULT +11 _DYNAMIC |
+[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +13 _GLOBAL_OFFSET_TABLE_ |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG3 |
+[0-9]+: 0000001c +0 +TLS +GLOBAL +DEFAULT +9 sg8 |
+[0-9]+: 0000007c +0 +TLS +GLOBAL +DEFAULT +10 bg8 |
+[0-9]+: 00000074 +0 +TLS +GLOBAL +DEFAULT +10 bg6 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG5 |
+[0-9]+: 00000068 +0 +TLS +GLOBAL +DEFAULT +10 bg3 |
+[0-9]+: 00000008 +0 +TLS +GLOBAL +DEFAULT +9 sg3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG7 |
+[0-9]+: 00000048 +0 +TLS +GLOBAL +HIDDEN +9 sh3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG2 |
+[0-9]+: 0000000c +0 +TLS +GLOBAL +DEFAULT +9 sg4 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG4 |
+[0-9]+: 00000010 +0 +TLS +GLOBAL +DEFAULT +9 sg5 |
+[0-9]+: 00000070 +0 +TLS +GLOBAL +DEFAULT +10 bg5 |
+[0-9]+: 00000058 +0 +TLS +GLOBAL +HIDDEN +9 sh7 |
+[0-9]+: 0000005c +0 +TLS +GLOBAL +HIDDEN +9 sh8 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +9 sg1 |
+[0-9]+: 0+8049188 +0 +FUNC +GLOBAL +DEFAULT +8 _start |
+[0-9]+: 0000004c +0 +TLS +GLOBAL +HIDDEN +9 sh4 |
+[0-9]+: 00000078 +0 +TLS +GLOBAL +DEFAULT +10 bg7 |
+[0-9]+: 00000050 +0 +TLS +GLOBAL +HIDDEN +9 sh5 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG6 |
+[0-9]+: 0+8049000 +0 +FUNC +GLOBAL +DEFAULT +8 fn2 |
+[0-9]+: 00000004 +0 +TLS +GLOBAL +DEFAULT +9 sg2 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG1 |
+[0-9]+: 00000040 +0 +TLS +GLOBAL +HIDDEN +9 sh1 |
+[0-9]+: 00000014 +0 +TLS +GLOBAL +DEFAULT +9 sg6 |
+[0-9]+: 00000018 +0 +TLS +GLOBAL +DEFAULT +9 sg7 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
+[0-9]+: 00000044 +0 +TLS +GLOBAL +HIDDEN +9 sh2 |
+[0-9]+: 00000054 +0 +TLS +GLOBAL +HIDDEN +9 sh6 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG8 |
+[0-9]+: 00000064 +0 +TLS +GLOBAL +DEFAULT +10 bg2 |
+[0-9]+: 00000060 +0 +TLS +GLOBAL +DEFAULT +10 bg1 |
+[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +UND ___tls_get_addr |
+[0-9]+: 0000006c +0 +TLS +GLOBAL +DEFAULT +10 bg4 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/hidden2.d
0,0 → 1,13
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -drw |
|
.*: +file format .* |
|
|
Disassembly of section .text: |
|
[a-f0-9]+ <bar>: |
[ ]*[a-f0-9]+: e8 cf fe ff ff call 0 .* |
[ ]*[a-f0-9]+: c3 ret |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsgd2.s
0,0 → 1,11
.text |
.globl _start |
_start: |
leal foo@TLSGD(%ebx), %eax |
call ___tls_get_addr |
.section .tdata,"awT",@progbits |
.align 4 |
.type foo, @object |
.size foo, 4 |
foo: |
.long 100 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsindntpoff.dd
0,0 → 1,16
#source: tlsindntpoff.s |
#as: --32 |
#ld: -melf_i386 |
#objdump: -drj.text |
#target: i?86-*-* |
|
.*: +file format elf32-i386 |
|
Disassembly of section .text: |
|
[0-9a-f]+000 <_start>: |
[0-9a-f]+000: 39 d8[ ]+cmp %ebx,%eax |
[0-9a-f]+002: 73 08[ ]+jae [0-9a-f]+00c <_start\+0xc> |
[0-9a-f]+004: b8 fc ff ff ff[ ]+mov \$0xfffffffc,%eax |
[0-9a-f]+009: 65 8b 00[ ]+mov %gs:\(%eax\),%eax |
[0-9a-f]+00c: c3[ ]+ret * |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pcrel16abs.s
0,0 → 1,6
SEGMENT_SIZE = 0x10000 |
RVECTOR = 0x00010 |
.code16 |
.globl _start |
_start: |
jmp SEGMENT_SIZE-(0x1f00 +0xf0 +RVECTOR) |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsdesc.rd
0,0 → 1,149
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#readelf: -Ssrl |
#target: i?86-*-* |
|
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: |
|
Section Headers: |
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al |
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0 |
+\[[ 0-9]+\] \.hash +.* |
+\[[ 0-9]+\] \.dynsym +.* |
+\[[ 0-9]+\] \.dynstr +.* |
+\[[ 0-9]+\] \.rel.dyn +.* |
+\[[ 0-9]+\] \.rel.plt +.* |
+\[[ 0-9]+\] \.text +.* |
+\[[ 0-9]+\] \.tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000060 00 WAT +0 +0 +1 |
+\[[ 0-9]+\] \.tbss +NOBITS +[0-9aa-f]+ [0-9a-f]+ 000020 00 WAT +0 +0 +1 |
+\[[ 0-9]+\] \.dynamic +.* |
+\[[ 0-9]+\] \.got +.* |
+\[[ 0-9]+\] \.got.plt +.* |
+\[[ 0-9]+\] \.shstrtab +.* |
+\[[ 0-9]+\] \.symtab +.* |
+\[[ 0-9]+\] \.strtab +.* |
Key to Flags: |
.* |
.* |
.* |
|
Elf file type is DYN \(Shared object file\) |
Entry point 0x[0-9a-f]+ |
There are [0-9]+ program headers, starting at offset [0-9]+ |
|
Program Headers: |
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align |
+LOAD.* |
+LOAD.* |
+DYNAMIC.* |
+TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1 |
|
Section to Segment mapping: |
+Segment Sections... |
+00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .text * |
+01 +.tdata .dynamic .got .got.plt * |
+02 +.dynamic * |
+03 +.tdata .tbss * |
|
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries: |
Offset +Info +Type +Sym.Value +Sym. Name |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF +0+8 +sg3 |
[0-9a-f ]+R_386_TLS_TPOFF32 0+c +sg4 |
[0-9a-f ]+R_386_TLS_TPOFF +0+c +sg4 |
[0-9a-f ]+R_386_TLS_TPOFF +0+10 +sg5 |
[0-9a-f ]+R_386_TLS_TPOFF32 0+4 +sg2 |
|
Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 5 entries: |
Offset +Info +Type +Sym.Value +Sym. Name |
[0-9a-f ]+R_386_TLS_DESC * 0+ +sg1 |
[0-9a-f ]+R_386_TLS_DESC * |
[0-9a-f ]+R_386_TLS_DESC * |
[0-9a-f ]+R_386_TLS_DESC * |
[0-9a-f ]+R_386_TLS_DESC * |
|
Symbol table '\.dynsym' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8 |
+[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +7 sg3 |
+[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +7 sg4 |
+[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +7 sg5 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +7 sg1 |
+[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +6 fn1 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +7 sg2 |
+[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +7 sg6 |
+[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +7 sg7 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
|
Symbol table '\.symtab' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * |
+[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +7 sl1 |
+[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +7 sl2 |
+[0-9]+: 0+28 +0 +TLS +LOCAL +DEFAULT +7 sl3 |
+[0-9]+: 0+2c +0 +TLS +LOCAL +DEFAULT +7 sl4 |
+[0-9]+: 0+30 +0 +TLS +LOCAL +DEFAULT +7 sl5 |
+[0-9]+: 0+34 +0 +TLS +LOCAL +DEFAULT +7 sl6 |
+[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +7 sl7 |
+[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +7 sl8 |
+[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +8 sH1 |
+[0-9]+: 0+ +0 +TLS +LOCAL +DEFAULT +7 _TLS_MODULE_BASE_ |
+[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC |
+[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +7 sh3 |
+[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +8 sH2 |
+[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +8 sH7 |
+[0-9]+: 0+58 +0 +TLS +LOCAL +DEFAULT +7 sh7 |
+[0-9]+: 0+5c +0 +TLS +LOCAL +DEFAULT +7 sh8 |
+[0-9]+: 0+6c +0 +TLS +LOCAL +DEFAULT +8 sH4 |
+[0-9]+: 0+4c +0 +TLS +LOCAL +DEFAULT +7 sh4 |
+[0-9]+: 0+68 +0 +TLS +LOCAL +DEFAULT +8 sH3 |
+[0-9]+: 0+50 +0 +TLS +LOCAL +DEFAULT +7 sh5 |
+[0-9]+: 0+70 +0 +TLS +LOCAL +DEFAULT +8 sH5 |
+[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +8 sH6 |
+[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +8 sH8 |
+[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +7 sh1 |
+[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_ |
+[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +7 sh2 |
+[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +7 sh6 |
+[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8 |
+[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +7 sg3 |
+[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +7 sg4 |
+[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +7 sg5 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +7 sg1 |
+[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +6 fn1 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +7 sg2 |
+[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +7 sg6 |
+[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +7 sg7 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
/trunk/gnu/binutils/ld/testsuite/ld-i386/abs.s
0,0 → 1,8
.text |
.global _start |
_start: |
enter $zero + 0xff00, $zero + 0xf0 |
enter $zero - 0xff00, $zero - 0xf0 |
leave |
ret |
.p2align 4,0x90 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/nogot2.s
0,0 → 1,4
.text |
.globl _start |
_start: |
movl _GLOBAL_OFFSET_TABLE_, %ecx |
/trunk/gnu/binutils/ld/testsuite/ld-i386/warn1.d
0,0 → 1,4
#name: --warn-shared-textrel --fatal-warnings |
#as: --32 |
#ld: -shared -melf_i386 --warn-shared-textrel --fatal-warnings |
#error: .*warning: creating a DT_TEXTREL in a shared object. |
/trunk/gnu/binutils/ld/testsuite/ld-i386/protected1.s
0,0 → 1,13
.text |
.globl foo |
.protected foo |
.type foo, @function |
foo: |
ret |
.size foo, .-foo |
.globl bar |
.type bar, @function |
bar: |
leal foo@GOTOFF(%ecx), %eax |
ret |
.size bar, .-bar |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsindntpoff.s
0,0 → 1,19
/* Force .got aligned to 4K, so it very likely gets at 0x804a100 |
(0x60 bytes .tdata and 0xa0 bytes .dynamic) */ |
.data |
.balign 4096 |
.section ".tdata", "awT", @progbits |
.globl foo |
foo: .long 27 |
|
/* Force .text aligned to 4K, so it very likely gets at 0x8049000. */ |
.text |
.balign 4096 |
.globl _start |
.type _start,@function |
_start: |
cmp %ebx, %eax |
jae 1f |
movl foo@indntpoff, %eax |
movl %gs:(%eax), %eax |
1: ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/protected3.s
0,0 → 1,15
.protected foo |
.globl foo |
.data |
.align 4 |
.type foo, @object |
.size foo, 4 |
foo: |
.long 1 |
.text |
.globl bar |
.type bar, @function |
bar: |
movl foo@GOTOFF(%ecx), %eax |
ret |
.size bar, .-bar |
/trunk/gnu/binutils/ld/testsuite/ld-i386/hidden2.s
0,0 → 1,9
.text |
.globl bar |
.type bar, @function |
bar: |
call foo |
ret |
.size bar, .-bar |
.weak foo |
.hidden foo |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsnopic2.s
0,0 → 1,7
.section ".tbss", "awT", @nobits |
.globl sh1, sh2, sh3, sh4 |
.hidden sh1, sh2, sh3, sh4 |
sh1: .space 4 |
sh2: .space 4 |
sh3: .space 4 |
sh4: .space 4 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks1-lib.td
0,0 → 1,3
#... |
0x0+16 \(TEXTREL\) +0x0 |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pcrel8.d
0,0 → 1,4
#name: PCREL8 overflow |
#as: --32 |
#ld: -melf_i386 |
#error: .*relocation truncated to fit: R_386_PC8 .* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbindesc.dd
0,0 → 1,456
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#objdump: -drj.text |
#target: i?86-*-* |
|
# PT_TLS layout is: |
# Offset from Offset from Name |
# TCB base TCB end |
# 0x00 -0xa0 sg1..sg8 |
# 0x20 -0x80 sl1..sl8 |
# 0x40 -0x60 sh1..sh8 |
# 0x60 -0x40 bg1..bg8 |
# 0x80 -0x20 bl1..bl8 |
|
.*: +file format elf32-i386 |
|
Disassembly of section .text: |
|
[0-9a-f]+ <fn2>: |
[0-9a-f]+: 55[ ]+push %ebp |
[0-9a-f]+: 89 e5[ ]+mov %esp,%ebp |
[0-9a-f]+: 53[ ]+push %ebx |
[0-9a-f]+: 50[ ]+push %eax |
[0-9a-f]+: e8 00 00 00 00[ ]+call [0-9a-f]+ <fn2\+0xa> |
[0-9a-f]+: 5b[ ]+pop %ebx |
[0-9a-f]+: 81 c3 fa 10 00 00[ ]+add \$0x10fa,%ebx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is not defined in executable |
[0-9a-f]+: 8b 83 f8 ff ff ff[ ]+mov -0x8\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG1 |
[0-9a-f]+: f7 d8[ ]+neg %eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is not defined in executable where |
# the variable is referenced through @gottpoff too |
[0-9a-f]+: 8b 83 e8 ff ff ff[ ]+mov -0x18\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG2 |
[0-9a-f]+: f7 d8[ ]+neg %eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is not defined in executable where |
# the variable is referenced through @gotntpoff too |
[0-9a-f]+: 8b 83 dc ff ff ff[ ]+mov -0x24\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sG3 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is not defined in executable where |
# the variable is referenced through @gottpoff and @gotntpoff too |
[0-9a-f]+: 8b 83 f0 ff ff ff[ ]+mov -0x10\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG4 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> LE with global variable defined in executable |
[0-9a-f]+: 8d 05 00 f0 ff ff[ ]+lea 0xfffff000,%eax |
# sg1 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> LE with local variable defined in executable |
[0-9a-f]+: 8d 05 20 f0 ff ff[ ]+lea 0xfffff020,%eax |
# sl1 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> LE with hidden variable defined in executable |
[0-9a-f]+: 8d 05 40 f0 ff ff[ ]+lea 0xfffff040,%eax |
# sh1 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LD -> LE |
[0-9a-f]+: 8d 05 00 00 00 00[ ]+lea 0x0,%eax |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 90 20 f0 ff ff[ ]+lea -0xfe0\(%eax\),%edx |
# sl1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 88 24 f0 ff ff[ ]+lea -0xfdc\(%eax\),%ecx |
# sl2 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LD -> LE against hidden variables |
[0-9a-f]+: 8d 05 00 00 00 00[ ]+lea 0x0,%eax |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 90 40 f0 ff ff[ ]+lea -0xfc0\(%eax\),%edx |
# sh1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 88 44 f0 ff ff[ ]+lea -0xfbc\(%eax\),%ecx |
# sh2 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against global var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b e8 ff ff ff[ ]+sub -0x18\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 sG2 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against global var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 83 ec ff ff ff[ ]+sub -0x14\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG4 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against global var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b dc ff ff ff[ ]+add -0x24\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF sG3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against global var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 83 f0 ff ff ff[ ]+add -0x10\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sG4 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE -> LE against global var defined in exec |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 81 e9 00 10 00 00[ ]+sub \$0x1000,%ecx |
# sg1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE -> LE against local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 81 c0 20 f0 ff ff[ ]+add \$0xfffff020,%eax |
# sl1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE -> LE against hidden var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 81 e9 c0 0f 00 00[ ]+sub \$0xfc0,%ecx |
# sh1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# Direct access through %gs |
# @gotntpoff IE against global var |
[0-9a-f]+: 8b 8b e0 ff ff ff[ ]+mov -0x20\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF sG5 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 11[ ]+mov %gs:\(%ecx\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE->LE against local var |
[0-9a-f]+: c7 c0 30 f0 ff ff[ ]+mov \$0xfffff030,%eax |
# sl5 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 10[ ]+mov %gs:\(%eax\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE->LE against hidden var |
[0-9a-f]+: c7 c2 50 f0 ff ff[ ]+mov \$0xfffff050,%edx |
# sh5 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 12[ ]+mov %gs:\(%edx\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8b 5d fc[ ]+mov -0x4\(%ebp\),%ebx |
[0-9a-f]+: c9[ ]+leave * |
[0-9a-f]+: c3[ ]+ret * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
|
[0-9a-f]+ <_start>: |
[0-9a-f]+: 55[ ]+push %ebp |
[0-9a-f]+: 89 e5[ ]+mov %esp,%ebp |
[0-9a-f]+: e8 00 00 00 00[ ]+call [0-9a-f]+ <_start\+0x8> |
[0-9a-f]+: 59[ ]+pop %ecx |
[0-9a-f]+: 81 c1 a4 0f 00 00[ ]+add \$0xfa4,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against global var |
[0-9a-f]+: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 91 f4 ff ff ff[ ]+sub -0xc\(%ecx\),%edx |
# ->R_386_TLS_TPOFF32 sG6 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @indntpoff IE against global var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 05 e8 a0 04 08[ ]+add 0x804a0e8,%eax |
# ->R_386_TLS_TPOFF sG7 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @indntpoff direct %gs access IE against global var |
[0-9a-f]+: 8b 15 00 a1 04 08[ ]+mov 0x804a100,%edx |
# ->R_386_TLS_TPOFF sG8 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE -> LE against global var defined in exec |
[0-9a-f]+: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 81 ea 8c 0f 00 00[ ]+sub \$0xf8c,%edx |
# bg6 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @indntpoff IE -> LE against global var defined in exec |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 81 c0 78 f0 ff ff[ ]+add \$0xfffff078,%eax |
# bg7 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @indntpoff direct %gs access IE -> LE against global var defined |
# in exec |
[0-9a-f]+: c7 c2 7c f0 ff ff[ ]+mov \$0xfffff07c,%edx |
# bg8 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE -> LE against local var |
[0-9a-f]+: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 81 ea 6c 0f 00 00[ ]+sub \$0xf6c,%edx |
# bl6 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @indntpoff IE -> LE against local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 81 c0 98 f0 ff ff[ ]+add \$0xfffff098,%eax |
# bl7 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @indntpoff direct %gs access IE -> LE against local var |
[0-9a-f]+: c7 c2 9c f0 ff ff[ ]+mov \$0xfffff09c,%edx |
# bl8 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE -> LE against hidden but not local var |
[0-9a-f]+: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 81 ea ac 0f 00 00[ ]+sub \$0xfac,%edx |
# sh6 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @indntpoff IE -> LE against hidden but not local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 81 c0 58 f0 ff ff[ ]+add \$0xfffff058,%eax |
# sh7 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @indntpoff direct %gs access IE -> LE against hidden but not |
# local var |
[0-9a-f]+: c7 c2 5c f0 ff ff[ ]+mov \$0xfffff05c,%edx |
# sh8 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LE @tpoff, global var defined in exec |
[0-9a-f]+: ba 00 10 00 00[ ]+mov \$0x1000,%edx |
# sg1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 29 d0[ ]+sub %edx,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LE @tpoff, local var |
[0-9a-f]+: b8 7f 0f 00 00[ ]+mov \$0xf7f,%eax |
# bl1+1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 29 c2[ ]+sub %eax,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LE @tpoff, hidden var defined in exec |
[0-9a-f]+: b8 bd 0f 00 00[ ]+mov \$0xfbd,%eax |
# sh1+3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 29 c2[ ]+sub %eax,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LE @ntpoff, global var defined in exec |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 90 04 f0 ff ff[ ]+lea -0xffc\(%eax\),%edx |
# sg2 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LE @ntpoff, local var, non-canonical sequence |
[0-9a-f]+: b8 86 f0 ff ff[ ]+mov \$0xfffff086,%eax |
# bl2+2 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 01 c2[ ]+add %eax,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LE @ntpoff, hidden var defined in exec, non-canonical sequence |
[0-9a-f]+: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 81 c2 45 f0 ff ff[ ]+add \$0xfffff045,%edx |
# sh2+1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LE @ntpoff, global var defined in exec |
[0-9a-f]+: 65 a1 08 f0 ff ff[ ]+mov %gs:0xfffff008,%eax |
# sg3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LE @ntpoff, local var |
[0-9a-f]+: 65 8b 15 8b f0 ff ff[ ]+mov %gs:0xfffff08b,%edx |
# bl3+3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LE @ntpoff, hidden var defined in exec |
[0-9a-f]+: 65 8b 15 49 f0 ff ff[ ]+mov %gs:0xfffff049,%edx |
# sh3+1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8b 5d fc[ ]+mov -0x4\(%ebp\),%ebx |
[0-9a-f]+: c9[ ]+leave * |
[0-9a-f]+: c3[ ]+ret * |
/trunk/gnu/binutils/ld/testsuite/ld-i386/i386.exp
0,0 → 1,206
# Expect script for ld-i386 tests |
# Copyright (C) 2002, 2005, 2006, 2007, 2008, 2009, 2010 |
# Free Software Foundation |
# |
# This file is part of the GNU Binutils. |
# |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3 of the License, or |
# (at your option) any later version. |
# |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, |
# MA 02110-1301, USA. |
# |
|
# Test i386 linking; all types of relocs. This tests the assembler and |
# tools like objdump as well as the linker. |
|
if {[istarget "i?86-*-vxworks"]} { |
set i386tests { |
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld" |
"" {vxworks1-lib.s} |
{{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd} |
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}} |
"libvxworks1.so"} |
{"VxWorks executable test 1 (dynamic)" \ |
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" |
"" {vxworks1.s} |
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}} |
"vxworks1"} |
{"VxWorks executable test 2 (dynamic)" \ |
"-Tvxworks1.ld -q --force-dynamic" |
"" {vxworks2.s} |
{{readelf --segments vxworks2.sd}} |
"vxworks2"} |
{"VxWorks executable test 2 (static)" |
"-Tvxworks1.ld" |
"" {vxworks2.s} |
{{readelf --segments vxworks2-static.sd}} |
"vxworks2"} |
} |
run_ld_link_tests $i386tests |
run_dump_test "vxworks1-static" |
} |
|
if [istarget "*-*-go32*"] { |
run_ld_link_tests {{"go32 stub" "" "" {zero.s} {} "go32stub"}} |
|
set src "tmpdir/go32stub" |
set dest "tmpdir/go32stub-copy" |
|
set test "go32 stub patch the source" |
set fi [open $src r+] |
fconfigure $fi -translation binary |
if {[read $fi 2] != "MZ"} { |
fail $test |
} else { |
pass $test |
seek $fi 0x40 |
puts -nonewline $fi "objcopy-test-go32stub" |
} |
close $fi |
|
set test "go32 stub objcopy" |
set status [remote_exec build $OBJCOPY "$OBJCOPYFLAGS $src $dest"] |
set exec_output [lindex $status 1] |
set exec_output [prune_warnings $exec_output] |
if [string match "" $exec_output] then { |
pass $test |
} else { |
send_log "$exec_output\n" |
verbose "$exec_output" 1 |
fail $test |
} |
|
# cmp would compare the whole files and some data after the initial exe |
# stub could differ. |
set test "go32 stub comparison after objcopy" |
set fi [open $src] |
fconfigure $fi -translation binary |
set src_stub [read $fi 2048] |
close $fi |
set fi [open $dest] |
fconfigure $fi -translation binary |
set dest_stub [read $fi 2048] |
close $fi |
if {$src_stub == $dest_stub} { |
pass $test |
} else { |
fail $test |
} |
} |
|
if { !([istarget "i?86-*-elf*"] |
|| (([istarget "i?86-*-linux*"] |
|| [istarget "i?86-*-gnu*"]) |
&& ![istarget "*-*-*aout*"] |
&& ![istarget "*-*-*oldld*"]) |
|| [istarget "x86_64-*-linux*"] |
|| [istarget "amd64-*-linux*"]) } { |
return |
} |
|
# List contains test-items with 3 items followed by 2 lists: |
# 0:name 1:ld options 2:assembler options |
# 3:filenames of assembler files 4: action and options. 5: name of output file |
|
# Actions: |
# objdump: Apply objdump options on result. Compare with regex (last arg). |
# nm: Apply nm options on result. Compare with regex (last arg). |
# readelf: Apply readelf options on result. Compare with regex (last arg). |
|
set i386tests { |
{"TLS -fpic -shared transitions" "-shared -melf_i386" |
"--32" {tlspic1.s tlspic2.s} |
{{readelf -Ssrl tlspic.rd} {objdump -drj.text tlspic.dd} |
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} |
"libtlspic.so"} |
{"TLS descriptor -fpic -shared transitions" "-shared -melf_i386" |
"--32" {tlsdesc.s tlspic2.s} |
{{readelf -Ssrl tlsdesc.rd} {objdump -drj.text tlsdesc.dd} |
{objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}} |
"libtlsdesc.so"} |
{"Helper shared library" "-shared -melf_i386" |
"--32" {tlslib.s} {} "libtlslib.so"} |
{"TLS -fpic and -fno-pic exec transitions" |
"-melf_i386 tmpdir/libtlslib.so" "--32" {tlsbinpic.s tlsbin.s} |
{{readelf -Ssrl tlsbin.rd} {objdump -drj.text tlsbin.dd} |
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} |
"tlsbin"} |
{"TLS descriptor -fpic and -fno-pic exec transitions" |
"-melf_i386 tmpdir/libtlslib.so" "--32" {tlsbindesc.s tlsbin.s} |
{{readelf -Ssrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd} |
{objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}} |
"tlsbindesc"} |
{"TLS -fno-pic -shared" "-shared -melf_i386" |
"--32" {tlsnopic1.s tlsnopic2.s} |
{{readelf -Ssrl tlsnopic.rd} {objdump -drj.text tlsnopic.dd} |
{objdump -sj.got tlsnopic.sd}} "libtlsnopic.so"} |
{"TLS with global dynamic and descriptors" |
"-shared -melf_i386" "--32" {tlsgdesc.s} |
{{readelf -Ssrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}} |
"libtlsgdesc.so"} |
{"TLS in debug sections" "-melf_i386" |
"--32" {tlsg.s} |
{{objdump -sj.debug_foobar tlsg.sd}} "tlsg"} |
{"TLS @indntpoff with %eax" "-melf_i386" "--32" {tlsindntpoff.s} |
{{objdump -drj.text tlsindntpoff.dd}} "tlsindntpoff"} |
{"Reloc section order" "-shared -melf_i386 -z nocombreloc" "--32" |
{reloc.s} {{objdump -hw reloc.d}} "reloc.so"} |
{"Basic --emit-relocs support" "-shared -melf_i386 --emit-relocs" "--32" |
{emit-relocs.s} {{readelf --relocs emit-relocs.d}} "emit-relocs.so"} |
{"-z combreloc relocation sections" "-shared -melf_i386 -z combreloc" |
"--32" {combreloc.s} {{readelf -r combreloc.d}} "combreloc.so"} |
{"TLS GD->LE transition" "-melf_i386" |
"--32" {tlsgd1.s} |
{{objdump -dwr tlsgd1.dd}} "tlsgd1"} |
{"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 |
|
run_dump_test "abs" |
run_dump_test "pcrel8" |
run_dump_test "pcrel16" |
run_dump_test "pcrel16abs" |
run_dump_test "alloc" |
run_dump_test "warn1" |
run_dump_test "tlsgd2" |
run_dump_test "tlsie2" |
run_dump_test "tlsie3" |
run_dump_test "tlsie4" |
run_dump_test "tlsie5" |
run_dump_test "hidden1" |
run_dump_test "hidden2" |
run_dump_test "hidden3" |
run_dump_test "protected1" |
run_dump_test "protected2" |
run_dump_test "protected3" |
run_dump_test "tlspie1" |
run_dump_test "tlspie2" |
run_dump_test "nogot1" |
run_dump_test "nogot2" |
run_dump_test "discarded1" |
run_dump_test "pr12718" |
|
if { !([istarget "i?86-*-linux*"] |
|| [istarget "i?86-*-gnu*"] |
|| [istarget "x86_64-*-linux*"]) } { |
return |
} |
|
run_dump_test "compressed1" |
run_dump_test "pr12627" |
/trunk/gnu/binutils/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.* |
/trunk/gnu/binutils/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.* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/warn1.s
0,0 → 1,5
.text |
.globl foo |
.type foo, @function |
foo: |
movl bar, %eax |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlslib.s
0,0 → 1,17
.section ".tdata", "awT", @progbits |
.globl sG1, sG2, sG3, sG4, sG5, sG6, sG7, sG8 |
sG1: .long 513 |
sG2: .long 514 |
sG3: .long 515 |
sG4: .long 516 |
sG5: .long 517 |
sG6: .long 518 |
sG7: .long 519 |
sG8: .long 520 |
|
.text |
/* Dummy. */ |
.globl ___tls_get_addr |
.type ___tls_get_addr,@function |
___tls_get_addr: |
ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks1.dd
0,0 → 1,38
|
.*: file format .* |
|
Disassembly of section \.plt: |
|
00080800 <_PROCEDURE_LINKAGE_TABLE_>: |
80800: ff 35 04 14 08 00 pushl 0x81404 |
80802: R_386_32 _GLOBAL_OFFSET_TABLE_ |
80806: ff 25 08 14 08 00 jmp \*0x81408 |
80808: R_386_32 _GLOBAL_OFFSET_TABLE_ |
8080c: 90 nop |
8080d: 90 nop |
8080e: 90 nop |
8080f: 90 nop |
|
00080810 <sglobal@plt>: |
80810: ff 25 0c 14 08 00 jmp \*0x8140c |
80812: R_386_32 _GLOBAL_OFFSET_TABLE_ |
80816: 68 00 00 00 00 push \$0x0 |
8081b: e9 e0 ff ff ff jmp 80800 <_PROCEDURE_LINKAGE_TABLE_> |
|
00080820 <foo@plt>: |
80820: ff 25 10 14 08 00 jmp \*0x81410 |
80822: R_386_32 _GLOBAL_OFFSET_TABLE_ |
80826: 68 08 00 00 00 push \$0x8 |
8082b: e9 d0 ff ff ff jmp 80800 <_PROCEDURE_LINKAGE_TABLE_> |
Disassembly of section \.text: |
|
00080c00 <_start>: |
80c00: e8 1b fc ff ff call 80820 <foo@plt> |
80c01: R_386_PLT32 \.plt |
80c05: e8 05 00 00 00 call 80c0f <sexternal> |
80c06: R_386_PLT32 sexternal |
80c0a: e9 01 fc ff ff jmp 80810 <sglobal@plt> |
80c0b: R_386_PLT32 \.plt |
|
00080c0f <sexternal>: |
80c0f: c3 ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbindesc.s
0,0 → 1,167
/* Force .got aligned to 4K, so it very likely gets at 0x804a100 |
(0x60 bytes .tdata and 0xa0 bytes .dynamic) */ |
.section ".tdata", "awT", @progbits |
.balign 4096 |
.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 |
.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 |
.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 |
sg1: .long 17 |
sg2: .long 18 |
sg3: .long 19 |
sg4: .long 20 |
sg5: .long 21 |
sg6: .long 22 |
sg7: .long 23 |
sg8: .long 24 |
sl1: .long 65 |
sl2: .long 66 |
sl3: .long 67 |
sl4: .long 68 |
sl5: .long 69 |
sl6: .long 70 |
sl7: .long 71 |
sl8: .long 72 |
sh1: .long 257 |
sh2: .long 258 |
sh3: .long 259 |
sh4: .long 260 |
sh5: .long 261 |
sh6: .long 262 |
sh7: .long 263 |
sh8: .long 264 |
/* Force .text aligned to 4K, so it very likely gets at 0x8049000. */ |
.text |
.balign 4096 |
.globl fn2 |
.type fn2,@function |
fn2: |
pushl %ebp |
movl %esp, %ebp |
pushl %ebx |
pushl %eax |
call 1f |
1: popl %ebx |
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx |
nop;nop;nop;nop |
|
/* GD -> IE because variable is not defined in executable */ |
leal sG1@tlsdesc(%ebx), %eax |
call *sG1@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE because variable is not defined in executable where |
the variable is referenced through @gottpoff too */ |
leal sG2@tlsdesc(%ebx), %eax |
call *sG2@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE because variable is not defined in executable where |
the variable is referenced through @gotntpoff too */ |
leal sG3@tlsdesc(%ebx), %eax |
call *sG3@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE because variable is not defined in executable where |
the variable is referenced through @gottpoff and @gotntpoff too */ |
leal sG4@tlsdesc(%ebx), %eax |
call *sG4@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> LE with global variable defined in executable */ |
leal sg1@tlsdesc(%ebx), %eax |
call *sg1@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> LE with local variable defined in executable */ |
leal sl1@tlsdesc(%ebx), %eax |
call *sl1@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> LE with hidden variable defined in executable */ |
leal sh1@tlsdesc(%ebx), %eax |
call *sh1@tlscall(%eax) |
nop;nop;nop;nop |
|
/* LD -> LE */ |
leal _TLS_MODULE_BASE_@tlsdesc(%ebx), %eax |
call *_TLS_MODULE_BASE_@tlscall(%eax) |
nop;nop |
leal sl1@dtpoff(%eax), %edx |
nop;nop |
leal sl2@dtpoff(%eax), %ecx |
nop;nop;nop;nop |
|
/* LD -> LE against hidden variables */ |
leal _TLS_MODULE_BASE_@tlsdesc(%ebx), %eax |
call *_TLS_MODULE_BASE_@tlscall(%eax) |
nop;nop |
leal sh1@dtpoff(%eax), %edx |
nop;nop |
leal sh2@dtpoff(%eax), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
subl sG2@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %eax |
nop;nop |
subl sG4@gottpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gotntpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
addl sG3@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against global var */ |
movl %gs:0, %eax |
nop;nop |
addl sG4@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE -> LE against global var defined in exec */ |
movl %gs:0, %ecx |
nop;nop |
subl sg1@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE -> LE against local var */ |
movl %gs:0, %ecx |
nop;nop |
addl sl1@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE -> LE against hidden var */ |
movl %gs:0, %ecx |
nop;nop |
subl sh1@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* Direct access through %gs */ |
|
/* @gotntpoff IE against global var */ |
movl sG5@gotntpoff(%ebx), %ecx |
nop;nop |
movl %gs:(%ecx), %edx |
nop;nop;nop;nop |
|
/* @gotntpoff IE->LE against local var */ |
movl sl5@gotntpoff(%ebx), %eax |
nop;nop |
movl %gs:(%eax), %edx |
nop;nop;nop;nop |
|
/* @gotntpoff IE->LE against hidden var */ |
movl sh5@gotntpoff(%ebx), %edx |
nop;nop |
movl %gs:(%edx), %edx |
nop;nop;nop;nop |
|
movl -4(%ebp), %ebx |
leave |
ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbin.s
0,0 → 1,165
.section ".tbss", "awT", @nobits |
.globl bg1, bg2, bg3, bg4, bg5, bg6, bg7, bg8 |
bg1: .space 4 |
bg2: .space 4 |
bg3: .space 4 |
bg4: .space 4 |
bg5: .space 4 |
bg6: .space 4 |
bg7: .space 4 |
bg8: .space 4 |
bl1: .space 4 |
bl2: .space 4 |
bl3: .space 4 |
bl4: .space 4 |
bl5: .space 4 |
bl6: .space 4 |
bl7: .space 4 |
bl8: .space 4 |
.text |
.globl _start |
.type _start,@function |
_start: |
pushl %ebp |
movl %esp, %ebp |
/* Set up .GOT pointer for non-pic @gottpoff sequences */ |
call 1f |
1: popl %ecx |
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %edx |
nop;nop |
subl sG6@gottpoff(%ecx), %edx |
nop;nop;nop;nop |
|
/* @indntpoff IE against global var */ |
movl %gs:0, %eax |
nop;nop |
addl sG7@indntpoff, %eax |
nop;nop;nop;nop |
|
/* @indntpoff direct %gs access IE against global var */ |
movl sG8@indntpoff, %edx |
nop;nop |
movl %gs:(%edx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE -> LE against global var defined in exec */ |
movl %gs:0, %edx |
nop;nop |
subl bg6@gottpoff(%ecx), %edx |
nop;nop;nop;nop |
|
/* @indntpoff IE -> LE against global var defined in exec */ |
movl %gs:0, %eax |
nop;nop |
addl bg7@indntpoff, %eax |
nop;nop;nop;nop |
|
/* @indntpoff direct %gs access IE -> LE against global var defined |
in exec */ |
movl bg8@indntpoff, %edx |
nop;nop |
movl %gs:(%edx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE -> LE against local var */ |
movl %gs:0, %edx |
nop;nop |
subl bl6@gottpoff(%ecx), %edx |
nop;nop;nop;nop |
|
/* @indntpoff IE -> LE against local var */ |
movl %gs:0, %eax |
nop;nop |
addl bl7@indntpoff, %eax |
nop;nop;nop;nop |
|
/* @indntpoff direct %gs access IE -> LE against local var */ |
movl bl8@indntpoff, %edx |
nop;nop |
movl %gs:(%edx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE -> LE against hidden but not local var */ |
movl %gs:0, %edx |
nop;nop |
subl sh6@gottpoff(%ecx), %edx |
nop;nop;nop;nop |
|
/* @indntpoff IE -> LE against hidden but not local var */ |
movl %gs:0, %eax |
nop;nop |
addl sh7@indntpoff, %eax |
nop;nop;nop;nop |
|
/* @indntpoff direct %gs access IE -> LE against hidden but not |
local var */ |
movl sh8@indntpoff, %edx |
nop;nop |
movl %gs:(%edx), %eax |
nop;nop;nop;nop |
|
/* LE @tpoff, global var defined in exec */ |
movl $sg1@tpoff, %edx |
nop;nop |
movl %gs:0, %eax |
nop;nop |
subl %edx, %eax |
nop;nop;nop;nop |
|
/* LE @tpoff, local var */ |
movl $-1+bl1@tpoff, %eax |
nop;nop |
movl %gs:0, %edx |
nop;nop |
subl %eax, %edx |
nop;nop;nop;nop |
|
/* LE @tpoff, hidden var defined in exec */ |
movl $sh1@tpoff-3, %eax |
nop;nop |
movl %gs:0, %edx |
nop;nop |
subl %eax, %edx |
nop;nop;nop;nop |
|
/* LE @ntpoff, global var defined in exec */ |
movl %gs:0, %eax |
nop;nop |
leal sg2@ntpoff(%eax), %edx |
nop;nop;nop;nop |
|
/* LE @ntpoff, local var, non-canonical sequence */ |
movl $2+bl2@ntpoff, %eax |
nop;nop |
movl %gs:0, %edx |
nop;nop |
addl %eax, %edx |
nop;nop;nop;nop |
|
/* LE @ntpoff, hidden var defined in exec, non-canonical sequence */ |
movl %gs:0, %edx |
nop;nop |
addl $sh2@ntpoff+1, %edx |
nop;nop;nop;nop |
|
/* Direct %gs access */ |
|
/* LE @ntpoff, global var defined in exec */ |
movl %gs:sg3@ntpoff, %eax |
nop;nop;nop;nop |
|
/* LE @ntpoff, local var */ |
movl %gs:bl3@ntpoff+3, %edx |
nop;nop;nop;nop |
|
/* LE @ntpoff, hidden var defined in exec */ |
movl %gs:1+sh3@ntpoff, %edx |
nop;nop;nop;nop |
|
movl -4(%ebp), %ebx |
leave |
ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pcrel8.s
0,0 → 1,11
.text |
.code16 |
.global _start, fwd |
_start: |
jcxz fwd |
.rept 10 |
testl $0x12345678, %ss:0x76543210(,%eax,4) |
.endr |
fwd: |
leave |
ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsgdesc.dd
0,0 → 1,156
#source: tlsgdesc.s |
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -drj.text |
#target: i?86-*-* |
|
.*: +file format elf32-i386 |
|
Disassembly of section .text: |
|
[0-9a-f]+ <fc1>: |
[0-9a-f]+: 55[ ]+push %ebp |
[0-9a-f]+: 89 e5[ ]+mov %esp,%ebp |
[0-9a-f]+: 53[ ]+push %ebx |
[0-9a-f]+: 50[ ]+push %eax |
[0-9a-f]+: e8 00 00 00 00[ ]+call [0-9a-f]+ <.*> |
[0-9a-f]+: 5b[ ]+pop %ebx |
[0-9a-f]+: 81 c3 be 11 00 00[ ]+add \$0x[0-9a-f]+,%ebx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against global var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b e0 ff ff ff[ ]+sub -0x20\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 sG3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against global var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b f0 ff ff ff[ ]+add -0x10\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF sG4 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD |
[0-9a-f]+: 8d 04 1d f8 ff ff ff[ ]+lea -0x8\(,%ebx,1\),%eax |
# ->R_386_TLS_DTPMOD32 sG1 |
[0-9a-f]+: e8 a9 ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> |
# ->R_386_JUMP_SLOT ___tls_get_addr |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 83 18 00 00 00[ ]+lea 0x18\(%ebx\),%eax |
# ->R_386_TLS_DESC sG1 |
[0-9a-f]+: ff 10[ ]+call \*\(%eax\) |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 83 10 00 00 00[ ]+lea 0x10\(%ebx\),%eax |
# ->R_386_TLS_DESC sG2 |
[0-9a-f]+: ff 10[ ]+call \*\(%eax\) |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 04 1d e8 ff ff ff[ ]+lea -0x18\(,%ebx,1\),%eax |
# ->R_386_TLS_DTPMOD32 sG2 |
[0-9a-f]+: e8 81 ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> |
# ->R_386_JUMP_SLOT ___tls_get_addr |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is referenced through @gottpoff too |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 2b 83 e0 ff ff ff[ ]+sub -0x20\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8b 83 e0 ff ff ff[ ]+mov -0x20\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG3 |
[0-9a-f]+: f7 d8[ ]+neg %eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is referenced through @gotntpoff too |
[0-9a-f]+: 8b 83 f0 ff ff ff[ ]+mov -0x10\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sG4 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 03 83 f0 ff ff ff[ ]+add -0x10\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sG4 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is referenced through @gotntpoff too |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 03 83 e4 ff ff ff[ ]+add -0x1c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sG5 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8b 83 e4 ff ff ff[ ]+mov -0x1c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sG5 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is referenced through @gottpoff too |
[0-9a-f]+: 8b 83 f4 ff ff ff[ ]+mov -0xc\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG6 |
[0-9a-f]+: f7 d8[ ]+neg %eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 2b 83 f4 ff ff ff[ ]+sub -0xc\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG6 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against global var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b e4 ff ff ff[ ]+add -0x1c\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF sG5 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against global var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b f4 ff ff ff[ ]+sub -0xc\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 sG6 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8b 5d fc[ ]+mov -0x4\(%ebp\),%ebx |
[0-9a-f]+: c9[ ]+leave * |
[0-9a-f]+: c3[ ]+ret * |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbindesc.td
0,0 → 1,16
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#objdump: -sj.tdata |
#target: i?86-*-* |
|
.*: file format elf32-i386 |
|
Contents of section \.tdata: |
804a000 11000000 12000000 13000000 14000000 .* |
804a010 15000000 16000000 17000000 18000000 .* |
804a020 41000000 42000000 43000000 44000000 .* |
804a030 45000000 46000000 47000000 48000000 .* |
804a040 01010000 02010000 03010000 04010000 .* |
804a050 05010000 06010000 07010000 08010000 .* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbin.sd
0,0 → 1,13
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#objdump: -sj.got |
#target: i?86-*-* |
|
.*: file format elf32-i386 |
|
Contents of section \.got: |
804a100 [0-9a-f]+ 00000000 00000000 [0-9a-f]+ .* |
804a110 00000000 00000000 00000000 00000000 .* |
804a120 00000000 +.* |
/trunk/gnu/binutils/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 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlspic.rd
0,0 → 1,154
#source: tlspic1.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#readelf: -Ssrl |
#target: i?86-*-* |
|
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: |
|
Section Headers: |
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al |
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0 |
+\[[ 0-9]+\] \.hash +.* |
+\[[ 0-9]+\] \.dynsym +.* |
+\[[ 0-9]+\] \.dynstr +.* |
+\[[ 0-9]+\] \.rel.dyn +.* |
+\[[ 0-9]+\] \.rel.plt +.* |
+\[[ 0-9]+\] \.plt +.* |
+\[[ 0-9]+\] \.text +.* |
+\[[ 0-9]+\] \.tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000060 00 WAT +0 +0 +1 |
+\[[ 0-9]+\] \.tbss +NOBITS +[0-9aa-f]+ [0-9a-f]+ 000020 00 WAT +0 +0 +1 |
+\[[ 0-9]+\] \.dynamic +.* |
+\[[ 0-9]+\] \.got +.* |
+\[[ 0-9]+\] \.got.plt +.* |
+\[[ 0-9]+\] \.shstrtab +.* |
+\[[ 0-9]+\] \.symtab +.* |
+\[[ 0-9]+\] \.strtab +.* |
Key to Flags: |
.* |
.* |
.* |
|
Elf file type is DYN \(Shared object file\) |
Entry point 0x[0-9a-f]+ |
There are [0-9]+ program headers, starting at offset [0-9]+ |
|
Program Headers: |
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align |
+LOAD.* |
+LOAD.* |
+DYNAMIC.* |
+TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1 |
|
Section to Segment mapping: |
+Segment Sections... |
+00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text * |
+01 +.tdata .dynamic .got .got.plt * |
+02 +.dynamic * |
+03 +.tdata .tbss * |
|
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 26 entries: |
Offset +Info +Type +Sym.Value +Sym. Name |
[0-9a-f ]+R_386_TLS_DTPMOD3 |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_DTPMOD3 |
[0-9a-f ]+R_386_TLS_DTPMOD3 |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_TPOFF * |
[0-9a-f ]+R_386_TLS_DTPMOD3 |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF +0+8 +sg3 |
[0-9a-f ]+R_386_TLS_TPOFF32 0+c +sg4 |
[0-9a-f ]+R_386_TLS_TPOFF +0+c +sg4 |
[0-9a-f ]+R_386_TLS_TPOFF +0+10 +sg5 |
[0-9a-f ]+R_386_TLS_DTPMOD3 0+ +sg1 |
[0-9a-f ]+R_386_TLS_DTPOFF3 0+ +sg1 |
[0-9a-f ]+R_386_TLS_TPOFF32 0+4 +sg2 |
|
Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset +Info +Type +Sym.Value +Sym. Name |
[0-9a-f ]+R_386_JUMP_SLOT +0+ +___tls_get_addr |
|
Symbol table '\.dynsym' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +8 sg8 |
+[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +8 sg3 |
+[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +8 sg4 |
+[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +8 sg5 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +8 sg1 |
+[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +7 fn1 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +8 sg2 |
+[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +8 sg6 |
+[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +8 sg7 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
+[0-9]+: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +UND ___tls_get_addr |
|
Symbol table '\.symtab' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +12 * |
+[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +8 sl1 |
+[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +8 sl2 |
+[0-9]+: 0+28 +0 +TLS +LOCAL +DEFAULT +8 sl3 |
+[0-9]+: 0+2c +0 +TLS +LOCAL +DEFAULT +8 sl4 |
+[0-9]+: 0+30 +0 +TLS +LOCAL +DEFAULT +8 sl5 |
+[0-9]+: 0+34 +0 +TLS +LOCAL +DEFAULT +8 sl6 |
+[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +8 sl7 |
+[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +8 sl8 |
+[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +9 sH1 |
+[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC |
+[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +8 sh3 |
+[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +9 sH2 |
+[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +9 sH7 |
+[0-9]+: 0+58 +0 +TLS +LOCAL +DEFAULT +8 sh7 |
+[0-9]+: 0+5c +0 +TLS +LOCAL +DEFAULT +8 sh8 |
+[0-9]+: 0+6c +0 +TLS +LOCAL +DEFAULT +9 sH4 |
+[0-9]+: 0+4c +0 +TLS +LOCAL +DEFAULT +8 sh4 |
+[0-9]+: 0+68 +0 +TLS +LOCAL +DEFAULT +9 sH3 |
+[0-9]+: 0+50 +0 +TLS +LOCAL +DEFAULT +8 sh5 |
+[0-9]+: 0+70 +0 +TLS +LOCAL +DEFAULT +9 sH5 |
+[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +9 sH6 |
+[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +9 sH8 |
+[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +8 sh1 |
+[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_ |
+[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +8 sh2 |
+[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +8 sh6 |
+[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +8 sg8 |
+[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +8 sg3 |
+[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +8 sg4 |
+[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +8 sg5 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +8 sg1 |
+[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +7 fn1 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +8 sg2 |
+[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +8 sg6 |
+[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +8 sg7 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
+[0-9]+: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +UND ___tls_get_addr |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks1.ld
0,0 → 1,30
SECTIONS |
{ |
. = 0x80000; |
.interp : { *(.interp) } |
.hash : { *(.hash) } |
.dynsym : { *(.dynsym) } |
.dynstr : { *(.dynstr) } |
|
. = ALIGN (0x400); |
.rel.dyn : { *(.rel.dyn) } |
.rel.plt : { *(.rel.plt) } |
|
. = ALIGN (0x400); |
.plt : { *(.plt) } |
|
. = ALIGN (0x400); |
.text : { *(.text) } |
|
. = ALIGN (0x1000); |
.dynamic : { *(.dynamic) } |
|
. = ALIGN (0x400); |
.got : { *(.got.plt) *(.got) } |
|
. = ALIGN (0x400); |
.data : { *(.data) } |
|
. = ALIGN (0x400); |
.bss : { *(.bss) *(.dynbss) } |
} |
/trunk/gnu/binutils/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 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlspie2.d
0,0 → 1,13
#name: TLS with PIE |
#as: --32 |
#ld: -melf_i386 -pie |
#objdump: -dw |
|
.*: +file format .* |
|
|
Disassembly of section .text: |
|
0+188 <_start>: |
[ ]*[a-f0-9]+: 8d 05 fc ff ff ff lea 0xfffffffc,%eax |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/emit-relocs.d
0,0 → 1,8
|
Relocation section '\.rel\.plt' at offset .* contains 1 entries: |
Offset Info Type Sym\.Value Sym\. Name |
.* .*07 R_386_JUMP_SLOT 00000000 foo |
|
Relocation section '\.rel\.text' at offset .* contains 1 entries: |
Offset Info Type Sym\.Value Sym\. Name |
.* .*04 R_386_PLT32 00000000 foo |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsdesc.sd
0,0 → 1,20
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -s -j.got -j.got.plt |
#target: i?86-*-* |
|
.*: file format elf32-i386 |
|
Contents of section \.got: |
[0-9a-f]+ dcffffff 28000000 d4ffffff 2c000000 .* |
[0-9a-f]+ 30000000 00000000 48000000 9cffffff .* |
[0-9a-f]+ 00000000 00000000 00000000 94ffffff .* |
[0-9a-f]+ 6c000000 b4ffffff 4c000000 68000000 .* |
[0-9a-f]+ 50000000 70000000 00000000 bcffffff .* |
Contents of section \.got\.plt: |
[0-9a-f]+ b0150000 00000000 00000000 00000000 .* |
[0-9a-f]+ 20000000 00000000 60000000 00000000 .* |
[0-9a-f]+ 00000000 00000000 00000000 00000000 .* |
[0-9a-f]+ 40000000 +.* |
/trunk/gnu/binutils/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 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks2.s
0,0 → 1,5
.globl _start |
.type _start,@function |
_start: |
ret |
.end _start |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsg.sd
0,0 → 1,10
#source: tlsg.s |
#as: --32 |
#ld: -melf_i386 |
#objdump: -sj.debug_foobar |
#target: i?86-*-* |
|
.*: +file format elf32-i386 |
|
Contents of section .debug_foobar: |
0+ 18000000 +.* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlspic1.s
0,0 → 1,282
.section ".tdata", "awT", @progbits |
.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 |
.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 |
.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 |
sg1: .long 17 |
sg2: .long 18 |
sg3: .long 19 |
sg4: .long 20 |
sg5: .long 21 |
sg6: .long 22 |
sg7: .long 23 |
sg8: .long 24 |
sl1: .long 65 |
sl2: .long 66 |
sl3: .long 67 |
sl4: .long 68 |
sl5: .long 69 |
sl6: .long 70 |
sl7: .long 71 |
sl8: .long 72 |
sh1: .long 257 |
sh2: .long 258 |
sh3: .long 259 |
sh4: .long 260 |
sh5: .long 261 |
sh6: .long 262 |
sh7: .long 263 |
sh8: .long 264 |
.text |
.globl fn1 |
.type fn1,@function |
fn1: |
pushl %ebp |
movl %esp, %ebp |
pushl %ebx |
pushl %eax |
call 1f |
1: popl %ebx |
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx |
nop;nop;nop;nop |
|
/* GD */ |
leal sg1@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE because variable is referenced through @gottpoff too */ |
leal sg2@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE because variable is referenced through @gotntpoff too */ |
leal sg3@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE because variable is referenced through @gottpoff and |
@gotntpoff too */ |
leal sg4@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD against local variable */ |
leal sl1@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE against local variable referenced through @gottpoff too */ |
leal sl2@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE against local variable referenced through @gotntpoff |
too */ |
leal sl3@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE against local variable referenced through @gottpoff and |
@gotntpoff too */ |
leal sl4@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD against hidden and local variable */ |
leal sh1@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE against hidden and local variable referenced through |
@gottpoff too */ |
leal sh2@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE against hidden and local variable referenced through |
@gotntpoff too */ |
leal sh3@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE against hidden and local variable referenced through |
@gottpoff and @gotntpoff too */ |
leal sh4@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD against hidden but not local variable */ |
leal sH1@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE against hidden but not local variable referenced through |
@gottpoff too */ |
leal sH2@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE against hidden but not local variable referenced through |
@gotntpoff too */ |
leal sH3@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE against hidden but not local variable referenced through |
@gottpoff and @gotntpoff too */ |
leal sH4@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* LD */ |
leal sl1@tlsldm(%ebx), %eax |
call ___tls_get_addr@PLT |
nop;nop |
leal sl1@dtpoff(%eax), %edx |
nop;nop |
leal 2+sl2@dtpoff(%eax), %ecx |
nop;nop;nop;nop |
|
/* LD against hidden and local variables */ |
leal sh1@tlsldm(%ebx), %eax |
call ___tls_get_addr@PLT |
nop;nop |
leal sh1@dtpoff(%eax), %edx |
nop;nop |
leal sh2@dtpoff+3(%eax), %ecx |
nop;nop;nop;nop |
|
/* LD against hidden but not local variables */ |
leal sH1@tlsldm(%ebx), %eax |
call ___tls_get_addr@PLT |
nop;nop |
leal sH1@dtpoff(%eax), %edx |
nop;nop |
leal sH2@dtpoff+1(%eax), %ecx |
nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
subl sg2@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %eax |
nop;nop |
subl sg4@gottpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gotntpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
addl sg3@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against global var */ |
movl %gs:0, %eax |
nop;nop |
addl sg4@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE against local var */ |
movl %gs:0, %ecx |
nop;nop |
subl sl2@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against local var */ |
movl %gs:0, %eax |
nop;nop |
subl sl4@gottpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gotntpoff IE against local var */ |
movl %gs:0, %ecx |
nop;nop |
addl sl3@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against local var */ |
movl %gs:0, %eax |
nop;nop |
addl sl4@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE against hidden and local var */ |
movl %gs:0, %ecx |
nop;nop |
subl sh2@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against hidden and local var */ |
movl %gs:0, %eax |
nop;nop |
subl sh4@gottpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden and local var */ |
movl %gs:0, %ecx |
nop;nop |
addl sh3@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden and local var */ |
movl %gs:0, %eax |
nop;nop |
addl sh4@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE against hidden but not local var */ |
movl %gs:0, %ecx |
nop;nop |
subl sH2@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against hidden but not local var */ |
movl %gs:0, %eax |
nop;nop |
subl sH4@gottpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden but not local var */ |
movl %gs:0, %ecx |
nop;nop |
addl sH3@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden but not local var */ |
movl %gs:0, %eax |
nop;nop |
addl sH4@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* Direct access through %gs */ |
|
/* @gotntpoff IE against global var */ |
movl sg5@gotntpoff(%ebx), %ecx |
nop;nop |
movl %gs:(%ecx), %edx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against local var */ |
movl sl5@gotntpoff(%ebx), %eax |
nop;nop |
movl %gs:(%eax), %edx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden and local var */ |
movl sh5@gotntpoff(%ebx), %edx |
nop;nop |
movl %gs:(%edx), %edx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden but not local var */ |
movl sH5@gotntpoff(%ebx), %ecx |
nop;nop |
movl %gs:(%ecx), %edx |
nop;nop;nop;nop |
|
movl -4(%ebp), %ebx |
leave |
ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbin.dd
0,0 → 1,464
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#objdump: -drj.text |
#target: i?86-*-* |
|
# PT_TLS layout is: |
# Offset from Offset from Name |
# TCB base TCB end |
# 0x00 -0xa0 sg1..sg8 |
# 0x20 -0x80 sl1..sl8 |
# 0x40 -0x60 sh1..sh8 |
# 0x60 -0x40 bg1..bg8 |
# 0x80 -0x20 bl1..bl8 |
|
.*: +file format elf32-i386 |
|
Disassembly of section .text: |
|
0+8049000 <fn2>: |
8049000: 55[ ]+push %ebp |
8049001: 89 e5[ ]+mov %esp,%ebp |
8049003: 53[ ]+push %ebx |
8049004: 50[ ]+push %eax |
8049005: e8 00 00 00 00[ ]+call 804900a <fn2\+0xa> |
804900a: 5b[ ]+pop %ebx |
804900b: 81 c3 1a 11 00 00[ ]+add \$0x111a,%ebx |
8049011: 90[ ]+nop * |
8049012: 90[ ]+nop * |
8049013: 90[ ]+nop * |
8049014: 90[ ]+nop * |
# GD -> IE because variable is not defined in executable |
8049015: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
804901b: 2b 83 f8 ff ff ff[ ]+sub -0x8\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG1 |
8049021: 90[ ]+nop * |
8049022: 90[ ]+nop * |
8049023: 90[ ]+nop * |
8049024: 90[ ]+nop * |
# GD -> IE because variable is not defined in executable where |
# the variable is referenced through @gottpoff too |
8049025: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
804902b: 2b 83 e8 ff ff ff[ ]+sub -0x18\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG2 |
8049031: 90[ ]+nop * |
8049032: 90[ ]+nop * |
8049033: 90[ ]+nop * |
8049034: 90[ ]+nop * |
# GD -> IE because variable is not defined in executable where |
# the variable is referenced through @gotntpoff too |
8049035: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
804903b: 03 83 dc ff ff ff[ ]+add -0x24\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sG3 |
8049041: 90[ ]+nop * |
8049042: 90[ ]+nop * |
8049043: 90[ ]+nop * |
8049044: 90[ ]+nop * |
# GD -> IE because variable is not defined in executable where |
# the variable is referenced through @gottpoff and @gotntpoff too |
8049045: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
804904b: 2b 83 ec ff ff ff[ ]+sub -0x14\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG4 |
8049051: 90[ ]+nop * |
8049052: 90[ ]+nop * |
8049053: 90[ ]+nop * |
8049054: 90[ ]+nop * |
# GD -> LE with global variable defined in executable |
8049055: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
804905b: 81 e8 00 10 00 00[ ]+sub \$0x1000,%eax |
# sg1 |
8049061: 90[ ]+nop * |
8049062: 90[ ]+nop * |
8049063: 90[ ]+nop * |
8049064: 90[ ]+nop * |
# GD -> LE with local variable defined in executable |
8049065: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
804906b: 81 e8 e0 0f 00 00[ ]+sub \$0xfe0,%eax |
# sl1 |
8049071: 90[ ]+nop * |
8049072: 90[ ]+nop * |
8049073: 90[ ]+nop * |
8049074: 90[ ]+nop * |
# GD -> LE with hidden variable defined in executable |
8049075: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
804907b: 81 e8 c0 0f 00 00[ ]+sub \$0xfc0,%eax |
# sh1 |
8049081: 90[ ]+nop * |
8049082: 90[ ]+nop * |
8049083: 90[ ]+nop * |
8049084: 90[ ]+nop * |
# LD -> LE |
8049085: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
804908b: 90[ ]+nop * |
804908c: 8d 74 26 00[ ]+lea 0x0\(%esi,%eiz,1\),%esi |
8049090: 90[ ]+nop * |
8049091: 90[ ]+nop * |
8049092: 8d 90 20 f0 ff ff[ ]+lea -0xfe0\(%eax\),%edx |
# sl1 |
8049098: 90[ ]+nop * |
8049099: 90[ ]+nop * |
804909a: 8d 88 24 f0 ff ff[ ]+lea -0xfdc\(%eax\),%ecx |
# sl2 |
80490a0: 90[ ]+nop * |
80490a1: 90[ ]+nop * |
80490a2: 90[ ]+nop * |
80490a3: 90[ ]+nop * |
# LD -> LE against hidden variables |
80490a4: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
80490aa: 90[ ]+nop * |
80490ab: 8d 74 26 00[ ]+lea 0x0\(%esi,%eiz,1\),%esi |
80490af: 90[ ]+nop * |
80490b0: 90[ ]+nop * |
80490b1: 8d 90 40 f0 ff ff[ ]+lea -0xfc0\(%eax\),%edx |
# sh1 |
80490b7: 90[ ]+nop * |
80490b8: 90[ ]+nop * |
80490b9: 8d 88 44 f0 ff ff[ ]+lea -0xfbc\(%eax\),%ecx |
# sh2 |
80490bf: 90[ ]+nop * |
80490c0: 90[ ]+nop * |
80490c1: 90[ ]+nop * |
80490c2: 90[ ]+nop * |
# @gottpoff IE against global var |
80490c3: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
80490ca: 90[ ]+nop * |
80490cb: 90[ ]+nop * |
80490cc: 2b 8b e8 ff ff ff[ ]+sub -0x18\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 sG2 |
80490d2: 90[ ]+nop * |
80490d3: 90[ ]+nop * |
80490d4: 90[ ]+nop * |
80490d5: 90[ ]+nop * |
# @gottpoff IE against global var |
80490d6: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
80490dc: 90[ ]+nop * |
80490dd: 90[ ]+nop * |
80490de: 2b 83 ec ff ff ff[ ]+sub -0x14\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG4 |
80490e4: 90[ ]+nop * |
80490e5: 90[ ]+nop * |
80490e6: 90[ ]+nop * |
80490e7: 90[ ]+nop * |
# @gotntpoff IE against global var |
80490e8: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
80490ef: 90[ ]+nop * |
80490f0: 90[ ]+nop * |
80490f1: 03 8b dc ff ff ff[ ]+add -0x24\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF sG3 |
80490f7: 90[ ]+nop * |
80490f8: 90[ ]+nop * |
80490f9: 90[ ]+nop * |
80490fa: 90[ ]+nop * |
# @gotntpoff IE against global var |
80490fb: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
8049101: 90[ ]+nop * |
8049102: 90[ ]+nop * |
8049103: 03 83 f0 ff ff ff[ ]+add -0x10\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sG4 |
8049109: 90[ ]+nop * |
804910a: 90[ ]+nop * |
804910b: 90[ ]+nop * |
804910c: 90[ ]+nop * |
# @gottpoff IE -> LE against global var defined in exec |
804910d: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
8049114: 90[ ]+nop * |
8049115: 90[ ]+nop * |
8049116: 81 e9 00 10 00 00[ ]+sub \$0x1000,%ecx |
# sg1 |
804911c: 90[ ]+nop * |
804911d: 90[ ]+nop * |
804911e: 90[ ]+nop * |
804911f: 90[ ]+nop * |
# @gotntpoff IE -> LE against local var |
8049120: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
8049127: 90[ ]+nop * |
8049128: 90[ ]+nop * |
8049129: 81 c0 20 f0 ff ff[ ]+add \$0xfffff020,%eax |
# sl1 |
804912f: 90[ ]+nop * |
8049130: 90[ ]+nop * |
8049131: 90[ ]+nop * |
8049132: 90[ ]+nop * |
# @gottpoff IE -> LE against hidden var |
8049133: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
804913a: 90[ ]+nop * |
804913b: 90[ ]+nop * |
804913c: 81 e9 c0 0f 00 00[ ]+sub \$0xfc0,%ecx |
# sh1 |
8049142: 90[ ]+nop * |
8049143: 90[ ]+nop * |
8049144: 90[ ]+nop * |
8049145: 90[ ]+nop * |
# Direct access through %gs |
# @gotntpoff IE against global var |
8049146: 8b 8b e0 ff ff ff[ ]+mov -0x20\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF sG5 |
804914c: 90[ ]+nop * |
804914d: 90[ ]+nop * |
804914e: 65 8b 11[ ]+mov %gs:\(%ecx\),%edx |
8049151: 90[ ]+nop * |
8049152: 90[ ]+nop * |
8049153: 90[ ]+nop * |
8049154: 90[ ]+nop * |
# @gotntpoff IE->LE against local var |
8049155: c7 c0 30 f0 ff ff[ ]+mov \$0xfffff030,%eax |
# sl5 |
804915b: 90[ ]+nop * |
804915c: 90[ ]+nop * |
804915d: 65 8b 10[ ]+mov %gs:\(%eax\),%edx |
8049160: 90[ ]+nop * |
8049161: 90[ ]+nop * |
8049162: 90[ ]+nop * |
8049163: 90[ ]+nop * |
# @gotntpoff IE->LE against hidden var |
8049164: c7 c2 50 f0 ff ff[ ]+mov \$0xfffff050,%edx |
# sh5 |
804916a: 90[ ]+nop * |
804916b: 90[ ]+nop * |
804916c: 65 8b 12[ ]+mov %gs:\(%edx\),%edx |
804916f: 90[ ]+nop * |
8049170: 90[ ]+nop * |
8049171: 90[ ]+nop * |
8049172: 90[ ]+nop * |
# GD -> IE because variable is not defined in executable |
8049173: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
8049179: 2b 83 f8 ff ff ff[ ]+sub -0x8\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sG1 |
804917f: 90[ ]+nop * |
8049180: 90[ ]+nop * |
8049181: 90[ ]+nop * |
8049182: 90[ ]+nop * |
8049183: 8b 5d fc[ ]+mov -0x4\(%ebp\),%ebx |
8049186: c9[ ]+leave * |
8049187: c3[ ]+ret * |
|
0+8049188 <_start>: |
8049188: 55[ ]+push %ebp |
8049189: 89 e5[ ]+mov %esp,%ebp |
804918b: e8 00 00 00 00[ ]+call 8049190 <_start\+0x8> |
8049190: 59[ ]+pop %ecx |
8049191: 81 c1 94 0f 00 00[ ]+add \$0xf94,%ecx |
8049197: 90[ ]+nop * |
8049198: 90[ ]+nop * |
8049199: 90[ ]+nop * |
804919a: 90[ ]+nop * |
# @gottpoff IE against global var |
804919b: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
80491a2: 90[ ]+nop * |
80491a3: 90[ ]+nop * |
80491a4: 2b 91 f4 ff ff ff[ ]+sub -0xc\(%ecx\),%edx |
# ->R_386_TLS_TPOFF32 sG6 |
80491aa: 90[ ]+nop * |
80491ab: 90[ ]+nop * |
80491ac: 90[ ]+nop * |
80491ad: 90[ ]+nop * |
# @indntpoff IE against global var |
80491ae: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
80491b4: 90[ ]+nop * |
80491b5: 90[ ]+nop * |
80491b6: 03 05 08 a1 04 08[ ]+add 0x804a108,%eax |
# ->R_386_TLS_TPOFF sG7 |
80491bc: 90[ ]+nop * |
80491bd: 90[ ]+nop * |
80491be: 90[ ]+nop * |
80491bf: 90[ ]+nop * |
# @indntpoff direct %gs access IE against global var |
80491c0: 8b 15 20 a1 04 08[ ]+mov 0x804a120,%edx |
# ->R_386_TLS_TPOFF sG8 |
80491c6: 90[ ]+nop * |
80491c7: 90[ ]+nop * |
80491c8: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
80491cb: 90[ ]+nop * |
80491cc: 90[ ]+nop * |
80491cd: 90[ ]+nop * |
80491ce: 90[ ]+nop * |
# @gottpoff IE -> LE against global var defined in exec |
80491cf: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
80491d6: 90[ ]+nop * |
80491d7: 90[ ]+nop * |
80491d8: 81 ea 8c 0f 00 00[ ]+sub \$0xf8c,%edx |
# bg6 |
80491de: 90[ ]+nop * |
80491df: 90[ ]+nop * |
80491e0: 90[ ]+nop * |
80491e1: 90[ ]+nop * |
# @indntpoff IE -> LE against global var defined in exec |
80491e2: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
80491e8: 90[ ]+nop * |
80491e9: 90[ ]+nop * |
80491ea: 81 c0 78 f0 ff ff[ ]+add \$0xfffff078,%eax |
# bg7 |
80491f0: 90[ ]+nop * |
80491f1: 90[ ]+nop * |
80491f2: 90[ ]+nop * |
80491f3: 90[ ]+nop * |
# @indntpoff direct %gs access IE -> LE against global var defined |
# in exec |
80491f4: c7 c2 7c f0 ff ff[ ]+mov \$0xfffff07c,%edx |
# bg8 |
80491fa: 90[ ]+nop * |
80491fb: 90[ ]+nop * |
80491fc: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
80491ff: 90[ ]+nop * |
8049200: 90[ ]+nop * |
8049201: 90[ ]+nop * |
8049202: 90[ ]+nop * |
# @gottpoff IE -> LE against local var |
8049203: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
804920a: 90[ ]+nop * |
804920b: 90[ ]+nop * |
804920c: 81 ea 6c 0f 00 00[ ]+sub \$0xf6c,%edx |
# bl6 |
8049212: 90[ ]+nop * |
8049213: 90[ ]+nop * |
8049214: 90[ ]+nop * |
8049215: 90[ ]+nop * |
# @indntpoff IE -> LE against local var |
8049216: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
804921c: 90[ ]+nop * |
804921d: 90[ ]+nop * |
804921e: 81 c0 98 f0 ff ff[ ]+add \$0xfffff098,%eax |
# bl7 |
8049224: 90[ ]+nop * |
8049225: 90[ ]+nop * |
8049226: 90[ ]+nop * |
8049227: 90[ ]+nop * |
# @indntpoff direct %gs access IE -> LE against local var |
8049228: c7 c2 9c f0 ff ff[ ]+mov \$0xfffff09c,%edx |
# bl8 |
804922e: 90[ ]+nop * |
804922f: 90[ ]+nop * |
8049230: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
8049233: 90[ ]+nop * |
8049234: 90[ ]+nop * |
8049235: 90[ ]+nop * |
8049236: 90[ ]+nop * |
# @gottpoff IE -> LE against hidden but not local var |
8049237: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
804923e: 90[ ]+nop * |
804923f: 90[ ]+nop * |
8049240: 81 ea ac 0f 00 00[ ]+sub \$0xfac,%edx |
# sh6 |
8049246: 90[ ]+nop * |
8049247: 90[ ]+nop * |
8049248: 90[ ]+nop * |
8049249: 90[ ]+nop * |
# @indntpoff IE -> LE against hidden but not local var |
804924a: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
8049250: 90[ ]+nop * |
8049251: 90[ ]+nop * |
8049252: 81 c0 58 f0 ff ff[ ]+add \$0xfffff058,%eax |
# sh7 |
8049258: 90[ ]+nop * |
8049259: 90[ ]+nop * |
804925a: 90[ ]+nop * |
804925b: 90[ ]+nop * |
# @indntpoff direct %gs access IE -> LE against hidden but not |
# local var |
804925c: c7 c2 5c f0 ff ff[ ]+mov \$0xfffff05c,%edx |
# sh8 |
8049262: 90[ ]+nop * |
8049263: 90[ ]+nop * |
8049264: 65 8b 02[ ]+mov %gs:\(%edx\),%eax |
8049267: 90[ ]+nop * |
8049268: 90[ ]+nop * |
8049269: 90[ ]+nop * |
804926a: 90[ ]+nop * |
# LE @tpoff, global var defined in exec |
804926b: ba 00 10 00 00[ ]+mov \$0x1000,%edx |
# sg1 |
8049270: 90[ ]+nop * |
8049271: 90[ ]+nop * |
8049272: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
8049278: 90[ ]+nop * |
8049279: 90[ ]+nop * |
804927a: 29 d0[ ]+sub %edx,%eax |
804927c: 90[ ]+nop * |
804927d: 90[ ]+nop * |
804927e: 90[ ]+nop * |
804927f: 90[ ]+nop * |
# LE @tpoff, local var |
8049280: b8 7f 0f 00 00[ ]+mov \$0xf7f,%eax |
# bl1+1 |
8049285: 90[ ]+nop * |
8049286: 90[ ]+nop * |
8049287: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
804928e: 90[ ]+nop * |
804928f: 90[ ]+nop * |
8049290: 29 c2[ ]+sub %eax,%edx |
8049292: 90[ ]+nop * |
8049293: 90[ ]+nop * |
8049294: 90[ ]+nop * |
8049295: 90[ ]+nop * |
# LE @tpoff, hidden var defined in exec |
8049296: b8 bd 0f 00 00[ ]+mov \$0xfbd,%eax |
# sh1+3 |
804929b: 90[ ]+nop * |
804929c: 90[ ]+nop * |
804929d: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
80492a4: 90[ ]+nop * |
80492a5: 90[ ]+nop * |
80492a6: 29 c2[ ]+sub %eax,%edx |
80492a8: 90[ ]+nop * |
80492a9: 90[ ]+nop * |
80492aa: 90[ ]+nop * |
80492ab: 90[ ]+nop * |
# LE @ntpoff, global var defined in exec |
80492ac: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
80492b2: 90[ ]+nop * |
80492b3: 90[ ]+nop * |
80492b4: 8d 90 04 f0 ff ff[ ]+lea -0xffc\(%eax\),%edx |
# sg2 |
80492ba: 90[ ]+nop * |
80492bb: 90[ ]+nop * |
80492bc: 90[ ]+nop * |
80492bd: 90[ ]+nop * |
# LE @ntpoff, local var, non-canonical sequence |
80492be: b8 86 f0 ff ff[ ]+mov \$0xfffff086,%eax |
# bl2+2 |
80492c3: 90[ ]+nop * |
80492c4: 90[ ]+nop * |
80492c5: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
80492cc: 90[ ]+nop * |
80492cd: 90[ ]+nop * |
80492ce: 01 c2[ ]+add %eax,%edx |
80492d0: 90[ ]+nop * |
80492d1: 90[ ]+nop * |
80492d2: 90[ ]+nop * |
80492d3: 90[ ]+nop * |
# LE @ntpoff, hidden var defined in exec, non-canonical sequence |
80492d4: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx |
80492db: 90[ ]+nop * |
80492dc: 90[ ]+nop * |
80492dd: 81 c2 45 f0 ff ff[ ]+add \$0xfffff045,%edx |
# sh2+1 |
80492e3: 90[ ]+nop * |
80492e4: 90[ ]+nop * |
80492e5: 90[ ]+nop * |
80492e6: 90[ ]+nop * |
# LE @ntpoff, global var defined in exec |
80492e7: 65 a1 08 f0 ff ff[ ]+mov %gs:0xfffff008,%eax |
# sg3 |
80492ed: 90[ ]+nop * |
80492ee: 90[ ]+nop * |
80492ef: 90[ ]+nop * |
80492f0: 90[ ]+nop * |
# LE @ntpoff, local var |
80492f1: 65 8b 15 8b f0 ff ff[ ]+mov %gs:0xfffff08b,%edx |
# bl3+3 |
80492f8: 90[ ]+nop * |
80492f9: 90[ ]+nop * |
80492fa: 90[ ]+nop * |
80492fb: 90[ ]+nop * |
# LE @ntpoff, hidden var defined in exec |
80492fc: 65 8b 15 49 f0 ff ff[ ]+mov %gs:0xfffff049,%edx |
# sh3+1 |
8049303: 90[ ]+nop * |
8049304: 90[ ]+nop * |
8049305: 90[ ]+nop * |
8049306: 90[ ]+nop * |
8049307: 8b 5d fc[ ]+mov -0x4\(%ebp\),%ebx |
804930a: c9[ ]+leave * |
804930b: c3[ ]+ret * |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlspie2.s
0,0 → 1,12
.section .tbss,"awT",@nobits |
.align 4 |
.type a, @object |
.size a, 4 |
a: |
.zero 4 |
.text |
.globl _start |
.type _start, @function |
_start: |
leal a@dtpoff, %eax |
.size _start, .-_start |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsgd1.dd
0,0 → 1,16
#source: tlsgd1.s |
#as: --32 |
#ld: -melf_i386 tmpdir/tlsgd1 |
#objdump: -drw |
#target: i?86-*-linux* |
|
.*: +file format .* |
|
Disassembly of section .text: |
|
[a-f0-9]+ <_start>: |
[ ]*[a-f0-9]+: 65 a1 00 00 00 00 mov %gs:0x0,%eax |
[ ]*[a-f0-9]+: 81 e8 04 00 00 00 sub \$0x4,%eax |
[ ]*[a-f0-9]+: 65 a1 00 00 00 00 mov %gs:0x0,%eax |
[ ]*[a-f0-9]+: 81 e8 04 00 00 00 sub \$0x4,%eax |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/emit-relocs.s
0,0 → 1,16
call foo@plt |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsdesc.dd
0,0 → 1,391
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -drj.text |
#target: i?86-*-* |
|
.*: +file format elf32-i386 |
|
Disassembly of section .text: |
|
[0-9a-f]+ <fn1>: |
[0-9a-f]+: 55[ ]+push %ebp |
[0-9a-f]+: 89 e5[ ]+mov %esp,%ebp |
[0-9a-f]+: 53[ ]+push %ebx |
[0-9a-f]+: 50[ ]+push %eax |
[0-9a-f]+: e8 00 00 00 00[ ]+call [0-9a-f]+ <fn1\+0xa> |
[0-9a-f]+: 5b[ ]+pop %ebx |
[0-9a-f]+: 81 c3 9a 13 00 00[ ]+add \$0x[0-9a-f]+,%ebx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GDesc |
[0-9a-f]+: 8d 83 24 00 00 00[ ]+lea 0x24\(%ebx\),%eax |
# ->R_386_TLS_DESC sg1 |
[0-9a-f]+: ff 10[ ]+call \*\(%eax\) |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is referenced through @gottpoff too |
[0-9a-f]+: 8b 83 f8 ff ff ff[ ]+mov -0x8\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sg2 |
[0-9a-f]+: f7 d8[ ]+neg %eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is referenced through @gotntpoff too |
[0-9a-f]+: 8b 83 c4 ff ff ff[ ]+mov -0x3c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sg3 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is referenced through @gottpoff and |
[0-9a-f]+: 8b 83 d4 ff ff ff[ ]+mov -0x2c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sg4 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD against local variable |
[0-9a-f]+: 8d 83 0c 00 00 00[ ]+lea 0xc\(%ebx\),%eax |
# ->R_386_TLS_DESC sl1 |
[0-9a-f]+: ff 10[ ]+call \*\(%eax\) |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against local variable referenced through @gottpoff too |
[0-9a-f]+: 8b 83 b0 ff ff ff[ ]+mov -0x50\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sl2 |
[0-9a-f]+: f7 d8[ ]+neg %eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against local variable referenced through @gotntpoff |
[0-9a-f]+: 8b 83 b4 ff ff ff[ ]+mov -0x4c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sl3 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against local variable referenced through @gottpoff and |
[0-9a-f]+: 8b 83 bc ff ff ff[ ]+mov -0x44\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sl4 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD against hidden and local variable |
[0-9a-f]+: 8d 83 2c 00 00 00[ ]+lea 0x2c\(%ebx\),%eax |
# ->R_386_TLS_DESC sh1 |
[0-9a-f]+: ff 10[ ]+call \*\(%eax\) |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden and local variable referenced through @gottpoff too |
[0-9a-f]+: 8b 83 fc ff ff ff[ ]+mov -0x4\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sh2 |
[0-9a-f]+: f7 d8[ ]+neg %eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden and local variable referenced through @gotntpoff too |
[0-9a-f]+: 8b 83 c8 ff ff ff[ ]+mov -0x38\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sh3 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden and local variable referenced through @gottpoff and @gotntpoff too |
[0-9a-f]+: 8b 83 e8 ff ff ff[ ]+mov -0x18\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sh4 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD against hidden but not local variable |
[0-9a-f]+: 8d 83 14 00 00 00[ ]+lea 0x14\(%ebx\),%eax |
# ->R_386_TLS_DESC sH1 |
[0-9a-f]+: ff 10[ ]+call \*\(%eax\) |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden but not local variable referenced through |
[0-9a-f]+: 8b 83 cc ff ff ff[ ]+mov -0x34\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sH2 |
[0-9a-f]+: f7 d8[ ]+neg %eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden but not local variable referenced through |
[0-9a-f]+: 8b 83 ec ff ff ff[ ]+mov -0x14\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sH3 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden but not local variable referenced through |
[0-9a-f]+: 8b 83 e0 ff ff ff[ ]+mov -0x20\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sH4 |
[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LD |
[0-9a-f]+: 8d 83 1c 00 00 00[ ]+lea 0x1c\(%ebx\),%eax |
# ->R_386_TLS_DESC _TLS_MODULE_BASE_ |
[0-9a-f]+: ff 10[ ]+call \*\(%eax\) |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 90 20 00 00 00[ ]+lea 0x20\(%eax\),%edx |
# sl1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 88 26 00 00 00[ ]+lea 0x26\(%eax\),%ecx |
# sl2+2 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LD against hidden and local variables |
[0-9a-f]+: 8d 90 40 00 00 00[ ]+lea 0x40\(%eax\),%edx |
# sh1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 88 47 00 00 00[ ]+lea 0x47\(%eax\),%ecx |
# sh2+3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LD against hidden but not local variables |
[0-9a-f]+: 8d 90 60 00 00 00[ ]+lea 0x60\(%eax\),%edx |
# sH1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 88 65 00 00 00[ ]+lea 0x65\(%eax\),%ecx |
# sH2+1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against global var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b f8 ff ff ff[ ]+sub -0x8\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 sg2 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against global var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 83 d0 ff ff ff[ ]+sub -0x30\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sg4 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against global var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b c4 ff ff ff[ ]+add -0x3c\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF sg3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against global var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 83 d4 ff ff ff[ ]+add -0x2c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sg4 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b b0 ff ff ff[ ]+sub -0x50\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 [0xdcffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 83 b8 ff ff ff[ ]+sub -0x48\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0xd4ffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b b4 ff ff ff[ ]+add -0x4c\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF [0x28000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 83 bc ff ff ff[ ]+add -0x44\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x2c000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against hidden and local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b fc ff ff ff[ ]+sub -0x4\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 [0xbcffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against hidden and local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 83 e4 ff ff ff[ ]+sub -0x1c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0xb4ffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden and local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b c8 ff ff ff[ ]+add -0x38\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF [0x48000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden and local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 83 e8 ff ff ff[ ]+add -0x18\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x4c000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against hidden but not local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b cc ff ff ff[ ]+sub -0x34\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 [0x9cffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against hidden but not local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 83 dc ff ff ff[ ]+sub -0x24\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0x94ffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden but not local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b ec ff ff ff[ ]+add -0x14\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF [0x68000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden but not local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 83 e0 ff ff ff[ ]+add -0x20\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x6c000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# Direct access through %gs |
# @gotntpoff IE against global var |
[0-9a-f]+: 8b 8b d8 ff ff ff[ ]+mov -0x28\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF sg5 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 11[ ]+mov %gs:\(%ecx\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against local var |
[0-9a-f]+: 8b 83 c0 ff ff ff[ ]+mov -0x40\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x30000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 10[ ]+mov %gs:\(%eax\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden and local var |
[0-9a-f]+: 8b 93 f0 ff ff ff[ ]+mov -0x10\(%ebx\),%edx |
# ->R_386_TLS_TPOFF [0x50000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 12[ ]+mov %gs:\(%edx\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden but not local var |
[0-9a-f]+: 8b 8b f4 ff ff ff[ ]+mov -0xc\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF [0x70000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 11[ ]+mov %gs:\(%ecx\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8b 5d fc[ ]+mov -0x4\(%ebp\),%ebx |
[0-9a-f]+: c9[ ]+leave * |
[0-9a-f]+: c3[ ]+ret * |
/trunk/gnu/binutils/ld/testsuite/ld-i386/nogot1.d
0,0 → 1,8
#ld: --shared -melf_i386 |
#readelf: -S --wide |
#as: --32 |
|
#... |
[ ]*\[.*\][ ]+\.dynamic[ ]+DYNAMIC.* |
[ ]*\[.*\][ ]+.*STRTAB.* |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/protected2.d
0,0 → 1,16
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -drw |
|
.*: +file format .* |
|
|
Disassembly of section .text: |
|
0+[a-f0-9]+ <foo>: |
[ ]*[a-f0-9]+: c3 ret |
|
0+[a-f0-9]+ <bar>: |
[ ]*[a-f0-9]+: e8 fa ff ff ff call [a-f0-9]+ <foo> |
[ ]*[a-f0-9]+: c3 ret |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/hidden1.d
0,0 → 1,3
#as: --32 |
#ld: -shared -melf_i386 |
#error: .*relocation R_386_GOTOFF against undefined hidden symbol `foo' can not be used when making a shared object |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsgd1.s
0,0 → 1,15
.text |
.globl _start |
_start: |
leal foo@TLSGD(,%ebx,1), %eax |
call ___tls_get_addr |
leal foo@TLSGD(%ebx), %eax |
call ___tls_get_addr |
nop |
.globl foo |
.section .tdata,"awT",@progbits |
.align 4 |
.type foo, @object |
.size foo, 4 |
foo: |
.long 100 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsnopic.rd
0,0 → 1,116
#source: tlsnopic1.s |
#source: tlsnopic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#readelf: -Ssrl |
#target: i?86-*-* |
|
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: |
|
Section Headers: |
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al |
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0 |
+\[[ 0-9]+\] \.hash +.* |
+\[[ 0-9]+\] \.dynsym +.* |
+\[[ 0-9]+\] \.dynstr +.* |
+\[[ 0-9]+\] \.rel.dyn +.* |
+\[[ 0-9]+\] \.text +PROGBITS +0+1000 .* |
+\[[ 0-9]+\] \.tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000024 00 WAT +0 +0 +1 |
+\[[ 0-9]+\] \.dynamic +DYNAMIC +0+20f4 .* |
+\[[ 0-9]+\] \.got +PROGBITS +0+2174 .* |
+\[[ 0-9]+\] \.got.plt +PROGBITS +0+218c .* |
+\[[ 0-9]+\] \.shstrtab +.* |
+\[[ 0-9]+\] \.symtab +.* |
+\[[ 0-9]+\] \.strtab +.* |
Key to Flags: |
.* |
.* |
.* |
|
Elf file type is DYN \(Shared object file\) |
Entry point 0x1000 |
There are [0-9]+ program headers, starting at offset [0-9]+ |
|
Program Headers: |
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align |
+LOAD.* |
+LOAD.* |
+DYNAMIC.* |
+TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+ 0x0+24 R +0x1 |
|
Section to Segment mapping: |
+Segment Sections... |
+00 +.hash .dynsym .dynstr .rel.dyn .text * |
+01 +.dynamic .got .got.plt * |
+02 +.dynamic * |
+03 +.tbss * |
|
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries: |
Offset +Info +Type +Sym.Value +Sym. Name |
[0-9a-f ]+R_386_RELATIVE + |
[0-9a-f ]+R_386_RELATIVE + |
[0-9a-f ]+R_386_RELATIVE + |
[0-9a-f ]+R_386_RELATIVE + |
[0-9a-f ]+R_386_RELATIVE + |
[0-9a-f ]+R_386_RELATIVE + |
[0-9a-f ]+R_386_TLS_TPOFF32 0+ +sg3 |
[0-9a-f ]+R_386_TLS_TPOFF32 |
[0-9a-f ]+R_386_TLS_TPOFF + |
[0-9a-f ]+R_386_TLS_TPOFF + |
[0-9a-f ]+R_386_TLS_TPOFF + |
[0-9a-f ]+R_386_TLS_TPOFF + |
[0-9a-f ]+R_386_TLS_TPOFF + |
[0-9a-f ]+R_386_TLS_TPOFF + |
[0-9a-f ]+R_386_TLS_TPOFF + |
[0-9a-f ]+R_386_TLS_TPOFF + |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sg4 |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sg5 |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sg1 |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sg2 |
|
|
Symbol table '\.dynsym' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg4 |
+[0-9]+: 0+1000 +0 +FUNC +GLOBAL +DEFAULT +5 fn3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg5 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg1 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg2 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
|
Symbol table '\.symtab' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * |
+[0-9]+: 0+00 +0 +TLS +LOCAL +DEFAULT +6 bl1 |
+[0-9]+: 0+04 +0 +TLS +LOCAL +DEFAULT +6 bl2 |
+[0-9]+: 0+08 +0 +TLS +LOCAL +DEFAULT +6 bl3 |
+[0-9]+: 0+0c +0 +TLS +LOCAL +DEFAULT +6 bl4 |
+[0-9]+: 0+10 +0 +TLS +LOCAL +DEFAULT +6 bl5 |
+[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC |
+[0-9]+: 0+1c +0 +TLS +LOCAL +DEFAULT +6 sh3 |
+[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +6 sh4 |
+[0-9]+: 0+14 +0 +TLS +LOCAL +DEFAULT +6 sh1 |
+[0-9]+: 0+218c +0 +OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_ |
+[0-9]+: 0+18 +0 +TLS +LOCAL +DEFAULT +6 sh2 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg4 |
+[0-9]+: 0+1000 +0 +FUNC +GLOBAL +DEFAULT +5 fn3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg5 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg1 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sg2 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
/trunk/gnu/binutils/ld/testsuite/ld-i386/hidden3.d
0,0 → 1,3
#as: --32 |
#ld: -shared -melf_i386 |
#error: .*relocation R_386_GOTOFF against undefined hidden symbol `foo' can not be used when making a shared object |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbin.td
0,0 → 1,16
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#objdump: -sj.tdata |
#target: i?86-*-* |
|
.*: file format elf32-i386 |
|
Contents of section \.tdata: |
804a000 11000000 12000000 13000000 14000000 .* |
804a010 15000000 16000000 17000000 18000000 .* |
804a020 41000000 42000000 43000000 44000000 .* |
804a030 45000000 46000000 47000000 48000000 .* |
804a040 01010000 02010000 03010000 04010000 .* |
804a050 05010000 06010000 07010000 08010000 .* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlspic.sd
0,0 → 1,18
#source: tlspic1.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -sj.got |
#target: i?86-*-* |
|
.*: file format elf32-i386 |
|
Contents of section \.got: |
[0-9a-f]+ 00000000 20000000 dcffffff 28000000 .* |
[0-9a-f]+ d4ffffff 2c000000 30000000 00000000 .* |
[0-9a-f]+ 00000000 00000000 60000000 00000000 .* |
[0-9a-f]+ 48000000 9cffffff 00000000 00000000 .* |
[0-9a-f]+ 00000000 94ffffff 6c000000 00000000 .* |
[0-9a-f]+ 00000000 b4ffffff 4c000000 68000000 .* |
[0-9a-f]+ 50000000 70000000 00000000 00000000 .* |
[0-9a-f]+ 40000000 bcffffff +.* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsld1.s
0,0 → 1,12
.text |
.globl _start |
_start: |
leal foo@TLSLDM(%ebx), %eax |
call ___tls_get_addr |
.globl foo |
.section .tdata,"awT",@progbits |
.align 4 |
.type foo, @object |
.size foo, 4 |
foo: |
.long 100 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pr12718.d
0,0 → 1,19
#name: PR ld/12718 |
#as: --32 |
#ld: -melf_i386 |
#readelf: -S |
|
There are 5 section headers, starting at offset 0x7c: |
|
Section Headers: |
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al |
\[ 0\] NULL 00000000 000000 000000 00 0 0 0 |
\[ 1\] .text PROGBITS 08048054 000054 000006 00 AX 0 0 4 |
\[ 2\] .shstrtab STRTAB 00000000 00005a 000021 00 0 0 1 |
\[ 3\] .symtab SYMTAB 00000000 000144 000070 10 4 2 4 |
\[ 4\] .strtab STRTAB 00000000 0001b4 000024 00 0 0 1 |
Key to Flags: |
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) |
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) |
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsdesc.td
0,0 → 1,16
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -sj.tdata |
#target: i?86-*-* |
|
.*: file format elf32-i386 |
|
Contents of section \.tdata: |
[0-9a-f]+ 11000000 12000000 13000000 14000000 .* |
[0-9a-f]+ 15000000 16000000 17000000 18000000 .* |
[0-9a-f]+ 41000000 42000000 43000000 44000000 .* |
[0-9a-f]+ 45000000 46000000 47000000 48000000 .* |
[0-9a-f]+ 01010000 02010000 03010000 04010000 .* |
[0-9a-f]+ 05010000 06010000 07010000 08010000 .* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/compressed1.d
0,0 → 1,9
#name: undefined symbol with compressed debug sections |
#as: --32 |
#ld: -e foo -melf_i386 --noinhibit-exec |
#warning: .*/compressed1.c:13: undefined reference to .bar. |
#nm: -n |
|
#... |
[ \t]+U bar |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/nogot1.s
0,0 → 1,10
.type bar, @function |
bar: |
ret |
.size bar, .-bar |
.globl foo |
.type foo, @function |
foo: |
leal bar, %eax |
ret |
.size foo, .-foo |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks1-lib.nd
0,0 → 1,9
#... |
Symbol table '\.dynsym' .*: |
#... |
.*: 00081400 * 0 * OBJECT * GLOBAL * DEFAULT * [0-9]+ _GLOBAL_OFFSET_TABLE_ |
#... |
Symbol table '\.symtab' .*: |
#... |
.*: 00081400 * 0 * OBJECT * GLOBAL * DEFAULT * [0-9]+ _GLOBAL_OFFSET_TABLE_ |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks1-lib.s
0,0 → 1,31
.text |
.globl foo |
.type foo, @function |
foo: |
push %ebx |
movl __GOTT_BASE__, %ebx |
movl __GOTT_INDEX__(%ecx), %ebx |
movl x@GOT(%ebx), %eax |
incl (%eax) |
call slocal@plt |
call sglobal@plt |
call sexternal@plt |
pop %ebx |
ret |
.size foo, .-foo |
|
.type slocal, @function |
slocal: |
ret |
.size slocal, .-slocal |
|
.globl sglobal |
.type sglobal, @function |
sglobal: |
ret |
.size sglobal, .-sglobal |
|
.data |
.4byte slocal |
|
.comm x,4,4 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks1-static.d
0,0 → 1,4
#name: VxWorks executable test 1 (static) |
#source: vxworks1.s |
#ld: tmpdir/libvxworks1.so -Tvxworks1.ld |
#error: Dynamic sections created in non-dynamic link |
/trunk/gnu/binutils/ld/testsuite/ld-i386/protected2.s
0,0 → 1,13
.text |
.globl foo |
.protected foo |
.type foo, @function |
foo: |
ret |
.size foo, .-foo |
.globl bar |
.type bar, @function |
bar: |
call foo |
ret |
.size bar, .-bar |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks1-lib.rd
0,0 → 1,12
|
Relocation section '\.rel\.dyn' at offset .* contains 4 entries: |
Offset Info Type Sym\.Value Sym\. Name |
00081800 00000008 R_386_RELATIVE * |
00080c03 .*01 R_386_32 00000000 __GOTT_BASE__ |
00080c09 .*01 R_386_32 00000000 __GOTT_INDEX__ |
00081414 .*06 R_386_GLOB_DAT 00081c00 x |
|
Relocation section '\.rel\.plt' at offset .* contains 2 entries: |
Offset Info Type Sym\.Value Sym\. Name |
0008140c .*07 R_386_JUMP_SLOT 00000000 sexternal |
00081410 .*07 R_386_JUMP_SLOT 00080c27 sglobal |
/trunk/gnu/binutils/ld/testsuite/ld-i386/hidden1.s
0,0 → 1,9
.text |
.globl bar |
.type bar, @function |
bar: |
leal foo@GOTOFF(%ecx), %eax |
ret |
.size bar, .-bar |
.weak foo |
.hidden foo |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsnopic1.s
0,0 → 1,107
.section ".data.rel.ro", "aw", @progbits |
/* Align, so that .got is likely at address 0x2080. */ |
.balign 4096 |
.section ".tbss", "awT", @nobits |
bl1: .space 4 |
bl2: .space 4 |
bl3: .space 4 |
bl4: .space 4 |
bl5: .space 4 |
.text |
/* Align, so that fn3 is likely at address 0x1000. */ |
.balign 4096 |
.globl fn3 |
.type fn3,@function |
fn3: |
pushl %ebp |
movl %esp, %ebp |
|
/* @indntpoff IE against global var */ |
movl %gs:0, %eax |
nop;nop |
addl sg1@indntpoff, %eax |
nop;nop;nop;nop |
|
/* @indntpoff direct %gs access IE against global var */ |
movl sg2@indntpoff, %edx |
nop;nop |
movl %gs:(%edx), %eax |
nop;nop;nop;nop |
|
/* @indntpoff IE against hidden var */ |
movl %gs:0, %eax |
nop;nop |
addl sh1@indntpoff, %eax |
nop;nop;nop;nop |
|
/* @indntpoff direct %gs access IE against hidden var */ |
movl sh2@indntpoff, %edx |
nop;nop |
movl %gs:(%edx), %eax |
nop;nop;nop;nop |
|
/* @indntpoff IE against local var */ |
movl %gs:0, %eax |
nop;nop |
addl bl1@indntpoff, %eax |
nop;nop;nop;nop |
|
/* @indntpoff direct %gs access IE against local var */ |
movl bl2@indntpoff, %edx |
nop;nop |
movl %gs:(%edx), %eax |
nop;nop;nop;nop |
|
/* LE @tpoff, global var */ |
movl $-3+sg3@tpoff, %edx |
nop;nop |
movl %gs:0, %eax |
nop;nop |
subl %edx, %eax |
nop;nop;nop;nop |
|
/* LE @tpoff, local var */ |
movl $-1+bl3@tpoff, %eax |
nop;nop |
movl %gs:0, %edx |
nop;nop |
subl %eax, %edx |
nop;nop;nop;nop |
|
/* LE @ntpoff, global var */ |
movl %gs:0, %eax |
nop;nop |
leal 2+sg4@ntpoff(%eax), %edx |
nop;nop;nop;nop |
|
/* LE @ntpoff, hidden var, non-canonical sequence */ |
movl $sh3@ntpoff, %eax |
nop;nop |
movl %gs:0, %edx |
nop;nop |
addl %eax, %edx |
nop;nop;nop;nop |
|
/* LE @ntpoff, local var, non-canonical sequence */ |
movl %gs:0, %edx |
nop;nop |
addl $bl4@ntpoff+1, %edx |
nop;nop;nop;nop |
|
/* Direct %gs access */ |
|
/* LE @ntpoff, global var */ |
movl %gs:sg5@ntpoff, %eax |
nop;nop;nop;nop |
|
/* LE @ntpoff, local var */ |
movl %gs:bl5@ntpoff+3, %edx |
nop;nop;nop;nop |
|
/* LE @ntpoff, hidden var */ |
movl %gs:1+sh4@ntpoff, %edx |
nop;nop;nop;nop |
|
movl -4(%ebp), %ebx |
leave |
ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/hidden3.s
0,0 → 1,8
.text |
.globl bar |
.type bar, @function |
bar: |
leal foo@GOTOFF(%ecx), %eax |
ret |
.size bar, .-bar |
.hidden foo |
/trunk/gnu/binutils/ld/testsuite/ld-i386/zero.s
0,0 → 1,2
.global zero |
.equiv zero, 0 |
/trunk/gnu/binutils/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.* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlspic.dd
0,0 → 1,411
#source: tlspic1.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -drj.text |
#target: i?86-*-* |
|
.*: +file format elf32-i386 |
|
Disassembly of section .text: |
|
[0-9a-f]+ <fn1>: |
[0-9a-f]+: 55[ ]+push %ebp |
[0-9a-f]+: 89 e5[ ]+mov %esp,%ebp |
[0-9a-f]+: 53[ ]+push %ebx |
[0-9a-f]+: 50[ ]+push %eax |
[0-9a-f]+: e8 00 00 00 00[ ]+call [0-9a-f]+ <fn1\+0xa> |
[0-9a-f]+: 5b[ ]+pop %ebx |
[0-9a-f]+: 81 c3 42 14 00 00[ ]+add \$0x[0-9a-f]+,%ebx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD |
[0-9a-f]+: 8d 04 1d d4 ff ff ff[ ]+lea -0x2c\(,%ebx,1\),%eax |
# ->R_386_TLS_DTPMOD32 sg1 |
[0-9a-f]+: e8 cf ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> |
# ->R_386_JUMP_SLOT ___tls_get_addr |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is referenced through @gottpoff too |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 2b 83 f0 ff ff ff[ ]+sub -0x10\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sg2 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is referenced through @gotntpoff too |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 03 83 b4 ff ff ff[ ]+add -0x4c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sg3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE because variable is referenced through @gottpoff and |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 2b 83 c0 ff ff ff[ ]+sub -0x40\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sg4 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD against local variable |
[0-9a-f]+: 8d 04 1d 88 ff ff ff[ ]+lea -0x78\(,%ebx,1\),%eax |
# ->R_386_TLS_DTPMOD32 [0x00000000 0x20000000] |
[0-9a-f]+: e8 8f ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> |
# ->R_386_JUMP_SLOT ___tls_get_addr |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against local variable referenced through @gottpoff too |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 2b 83 90 ff ff ff[ ]+sub -0x70\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0xdcffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against local variable referenced through @gotntpoff |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 03 83 94 ff ff ff[ ]+add -0x6c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x28000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against local variable referenced through @gottpoff and |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 2b 83 98 ff ff ff[ ]+sub -0x68\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0xd4ffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD against hidden and local variable |
[0-9a-f]+: 8d 04 1d f4 ff ff ff[ ]+lea -0xc\(,%ebx,1\),%eax |
# ->R_386_TLS_DTPMOD32 [0x00000000 0x40000000] |
[0-9a-f]+: e8 4f ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> |
# ->R_386_JUMP_SLOT ___tls_get_addr |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden and local variable referenced through @gottpoff too |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 2b 83 fc ff ff ff[ ]+sub -0x4\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0xbcffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden and local variable referenced through @gotntpoff too |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 03 83 b8 ff ff ff[ ]+add -0x48\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x48000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden and local variable referenced through @gottpoff and @gotntpoff too |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 2b 83 dc ff ff ff[ ]+sub -0x24\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0xb4ffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD against hidden but not local variable |
[0-9a-f]+: 8d 04 1d ac ff ff ff[ ]+lea -0x54\(,%ebx,1\),%eax |
# ->R_386_TLS_DTPMOD32 [0x00000000 0x60000000] |
[0-9a-f]+: e8 0f ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> |
# ->R_386_JUMP_SLOT ___tls_get_addr |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden but not local variable referenced through |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 2b 83 bc ff ff ff[ ]+sub -0x44\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0x9cffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden but not local variable referenced through |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 03 83 e4 ff ff ff[ ]+add -0x1c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x68000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# GD -> IE against hidden but not local variable referenced through |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 2b 83 cc ff ff ff[ ]+sub -0x34\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0x94ffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LD |
[0-9a-f]+: 8d 83 a4 ff ff ff[ ]+lea -0x5c\(%ebx\),%eax |
# ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000] |
[0-9a-f]+: e8 d0 fe ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> |
# ->R_386_JUMP_SLOT ___tls_get_addr |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 90 20 00 00 00[ ]+lea 0x20\(%eax\),%edx |
# sl1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 88 26 00 00 00[ ]+lea 0x26\(%eax\),%ecx |
# sl2+2 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LD against hidden and local variables |
[0-9a-f]+: 8d 83 a4 ff ff ff[ ]+lea -0x5c\(%ebx\),%eax |
# ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000] |
[0-9a-f]+: e8 b1 fe ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> |
# ->R_386_JUMP_SLOT ___tls_get_addr |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 90 40 00 00 00[ ]+lea 0x40\(%eax\),%edx |
# sh1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 88 47 00 00 00[ ]+lea 0x47\(%eax\),%ecx |
# sh2+3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# LD against hidden but not local variables |
[0-9a-f]+: 8d 83 a4 ff ff ff[ ]+lea -0x5c\(%ebx\),%eax |
# ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000] |
[0-9a-f]+: e8 92 fe ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt> |
# ->R_386_JUMP_SLOT ___tls_get_addr |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 90 60 00 00 00[ ]+lea 0x60\(%eax\),%edx |
# sH1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8d 88 65 00 00 00[ ]+lea 0x65\(%eax\),%ecx |
# sH2+1 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against global var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b f0 ff ff ff[ ]+sub -0x10\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 sg2 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against global var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 83 c0 ff ff ff[ ]+sub -0x40\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 sg4 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against global var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b b4 ff ff ff[ ]+add -0x4c\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF sg3 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against global var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 83 c4 ff ff ff[ ]+add -0x3c\(%ebx\),%eax |
# ->R_386_TLS_TPOFF sg4 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b 90 ff ff ff[ ]+sub -0x70\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 [0xdcffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 83 98 ff ff ff[ ]+sub -0x68\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0xd4ffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b 94 ff ff ff[ ]+add -0x6c\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF [0x28000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 83 9c ff ff ff[ ]+add -0x64\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x2c000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against hidden and local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b fc ff ff ff[ ]+sub -0x4\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 [0xbcffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against hidden and local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 83 dc ff ff ff[ ]+sub -0x24\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0xb4ffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden and local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b b8 ff ff ff[ ]+add -0x48\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF [0x48000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden and local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 83 e0 ff ff ff[ ]+add -0x20\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x4c000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against hidden but not local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 8b bc ff ff ff[ ]+sub -0x44\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF32 [0x9cffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gottpoff IE against hidden but not local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 2b 83 cc ff ff ff[ ]+sub -0x34\(%ebx\),%eax |
# ->R_386_TLS_TPOFF32 [0x94ffffff] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden but not local var |
[0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 8b e4 ff ff ff[ ]+add -0x1c\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF [0x68000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden but not local var |
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 03 83 d0 ff ff ff[ ]+add -0x30\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x6c000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# Direct access through %gs |
# @gotntpoff IE against global var |
[0-9a-f]+: 8b 8b c8 ff ff ff[ ]+mov -0x38\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF sg5 |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 11[ ]+mov %gs:\(%ecx\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against local var |
[0-9a-f]+: 8b 83 a0 ff ff ff[ ]+mov -0x60\(%ebx\),%eax |
# ->R_386_TLS_TPOFF [0x30000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 10[ ]+mov %gs:\(%eax\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden and local var |
[0-9a-f]+: 8b 93 e8 ff ff ff[ ]+mov -0x18\(%ebx\),%edx |
# ->R_386_TLS_TPOFF [0x50000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 12[ ]+mov %gs:\(%edx\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
# @gotntpoff IE against hidden but not local var |
[0-9a-f]+: 8b 8b ec ff ff ff[ ]+mov -0x14\(%ebx\),%ecx |
# ->R_386_TLS_TPOFF [0x70000000] |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 65 8b 11[ ]+mov %gs:\(%ecx\),%edx |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 8b 5d fc[ ]+mov -0x4\(%ebp\),%ebx |
[0-9a-f]+: c9[ ]+leave * |
[0-9a-f]+: c3[ ]+ret * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
[0-9a-f]+: 90[ ]+nop * |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pr12718.s
0,0 → 1,4
.globl foo |
foo: ret |
.globl _start |
_start: call foo |
/trunk/gnu/binutils/ld/testsuite/ld-i386/discarded1.d
0,0 → 1,3
#as: --32 |
#ld: -melf_i386 -T discarded1.t |
#error: .*discarded output section: `.got.plt' |
/trunk/gnu/binutils/ld/testsuite/ld-i386/reloc.d
0,0 → 1,17
# Test that orphan reloc sections are placed before .rel.plt even when |
# .rel.plt is the only reloc section. |
#source: reloc.s |
#as: --32 |
#ld: -shared -melf_i386 -z nocombreloc |
#objdump: -hw |
|
.*: +file format elf32-i386 |
#... |
.*\.relplatypus.* |
#... |
.*\.rel\.plt.* |
# x86 ld doesn't output non-alloc reloc sections to shared libs, so disable |
# the following two lines for the time being. |
# #... |
# .*\.relechidna.* |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/compressed1.s
0,0 → 1,186
.file "compressed1.c" |
.section .debug_abbrev,"",@progbits |
.Ldebug_abbrev0: |
.section .debug_info,"",@progbits |
.Ldebug_info0: |
.section .debug_line,"",@progbits |
.Ldebug_line0: |
.text |
.Ltext0: |
.cfi_sections .debug_frame |
.p2align 4,,15 |
.globl foo |
.type foo, @function |
foo: |
.LFB0: |
.file 1 "compressed1.c" |
.loc 1 12 0 |
.cfi_startproc |
pushl %ebp |
.cfi_def_cfa_offset 8 |
movl %esp, %ebp |
.cfi_offset 5, -8 |
.cfi_def_cfa_register 5 |
subl $8, %esp |
.loc 1 14 0 |
leave |
.cfi_restore 5 |
.cfi_def_cfa 4, 4 |
.loc 1 13 0 |
jmp bar |
.cfi_endproc |
.LFE0: |
.size foo, .-foo |
.Letext0: |
.section .debug_info |
.long 0x5e |
.value 0x3 |
.long .Ldebug_abbrev0 |
.byte 0x4 |
.uleb128 0x1 |
.long .LASF5 |
.byte 0x1 |
.long .LASF6 |
.long .LASF7 |
.long .Ltext0 |
.long .Letext0 |
.long .Ldebug_line0 |
.uleb128 0x2 |
.byte 0x1 |
.byte 0x6 |
.long .LASF0 |
.uleb128 0x2 |
.byte 0x2 |
.byte 0x5 |
.long .LASF1 |
.uleb128 0x3 |
.byte 0x4 |
.byte 0x5 |
.string "int" |
.uleb128 0x2 |
.byte 0x4 |
.byte 0x5 |
.long .LASF2 |
.uleb128 0x2 |
.byte 0x1 |
.byte 0x8 |
.long .LASF3 |
.uleb128 0x2 |
.byte 0x2 |
.byte 0x7 |
.long .LASF4 |
.uleb128 0x4 |
.byte 0x1 |
.string "foo" |
.byte 0x1 |
.byte 0xb |
.long .LFB0 |
.long .LFE0 |
.byte 0x1 |
.byte 0x9c |
.byte 0x0 |
.section .debug_abbrev |
.uleb128 0x1 |
.uleb128 0x11 |
.byte 0x1 |
.uleb128 0x25 |
.uleb128 0xe |
.uleb128 0x13 |
.uleb128 0xb |
.uleb128 0x3 |
.uleb128 0xe |
.uleb128 0x1b |
.uleb128 0xe |
.uleb128 0x11 |
.uleb128 0x1 |
.uleb128 0x12 |
.uleb128 0x1 |
.uleb128 0x10 |
.uleb128 0x6 |
.byte 0x0 |
.byte 0x0 |
.uleb128 0x2 |
.uleb128 0x24 |
.byte 0x0 |
.uleb128 0xb |
.uleb128 0xb |
.uleb128 0x3e |
.uleb128 0xb |
.uleb128 0x3 |
.uleb128 0xe |
.byte 0x0 |
.byte 0x0 |
.uleb128 0x3 |
.uleb128 0x24 |
.byte 0x0 |
.uleb128 0xb |
.uleb128 0xb |
.uleb128 0x3e |
.uleb128 0xb |
.uleb128 0x3 |
.uleb128 0x8 |
.byte 0x0 |
.byte 0x0 |
.uleb128 0x4 |
.uleb128 0x2e |
.byte 0x0 |
.uleb128 0x3f |
.uleb128 0xc |
.uleb128 0x3 |
.uleb128 0x8 |
.uleb128 0x3a |
.uleb128 0xb |
.uleb128 0x3b |
.uleb128 0xb |
.uleb128 0x11 |
.uleb128 0x1 |
.uleb128 0x12 |
.uleb128 0x1 |
.uleb128 0x40 |
.uleb128 0xa |
.byte 0x0 |
.byte 0x0 |
.byte 0x0 |
.section .debug_pubnames,"",@progbits |
.long 0x16 |
.value 0x2 |
.long .Ldebug_info0 |
.long 0x62 |
.long 0x4f |
.string "foo" |
.long 0x0 |
.section .debug_pubtypes,"",@progbits |
.long 0xe |
.value 0x2 |
.long .Ldebug_info0 |
.long 0x62 |
.long 0x0 |
.section .debug_aranges,"",@progbits |
.long 0x1c |
.value 0x2 |
.long .Ldebug_info0 |
.byte 0x4 |
.byte 0x0 |
.value 0x0 |
.value 0x0 |
.long .Ltext0 |
.long .Letext0-.Ltext0 |
.long 0x0 |
.long 0x0 |
.section .debug_str,"MS",@progbits,1 |
.LASF0: |
.string "signed char" |
.LASF1: |
.string "short int" |
.LASF6: |
.string "compressed1.c" |
.LASF5: |
.string "GNU C 4.4.4 20100630 (Red Hat 4.4.4-10)" |
.LASF7: |
.string "." |
.LASF3: |
.string "unsigned char" |
.LASF2: |
.string "long int" |
.LASF4: |
.string "short unsigned int" |
/trunk/gnu/binutils/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.* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/combreloc.d
0,0 → 1,17
# Test that orphan reloc sections are merged into .rel.dyn with |
# -z combreloc. |
#source: combreloc.s |
#as: --32 |
#ld: -shared -melf_i386 -z combreloc |
#readelf: -r |
|
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 4 entries: |
Offset Info Type Sym.Value Sym. Name |
[0-9a-f]+ [0-9a-f]+06 R_386_GLOB_DAT [0-9a-f]+ _start |
[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start |
[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start |
[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start |
|
Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym.Value Sym. Name |
[0-9a-f]+ [0-9a-f]+07 R_386_JUMP_SLOT [0-9a-f]+ foo |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsld1.dd
0,0 → 1,15
#source: tlsld1.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]+: 65 a1 00 00 00 00 mov %gs:0x0,%eax |
[ ]*[a-f0-9]+: 90 nop |
[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi |
#pass |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsbindesc.rd
0,0 → 1,151
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#readelf: -Ssrl |
#target: i?86-*-* |
|
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: |
|
Section Headers: |
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al |
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0 |
+\[[ 0-9]+\] \.interp +.* |
+\[[ 0-9]+\] \.hash +.* |
+\[[ 0-9]+\] \.dynsym +.* |
+\[[ 0-9]+\] \.dynstr +.* |
+\[[ 0-9]+\] \.rel.dyn +.* |
+\[[ 0-9]+\] \.text +PROGBITS +0+8049000 .* |
+\[[ 0-9]+\] \.tdata +PROGBITS +0+804a000 [0-9a-f]+ 000060 00 WAT +0 +0 4096 |
+\[[ 0-9]+\] \.tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000040 00 WAT +0 +0 +1 |
+\[[ 0-9]+\] \.dynamic +DYNAMIC +0+804a060 .* |
+\[[ 0-9]+\] \.got +PROGBITS +0+804a0e0 .* |
+\[[ 0-9]+\] \.got\.plt +PROGBITS +0+804a104 .* |
+\[[ 0-9]+\] \.shstrtab +.* |
+\[[ 0-9]+\] \.symtab +.* |
+\[[ 0-9]+\] \.strtab +.* |
Key to Flags: |
.* |
.* |
.* |
|
Elf file type is EXEC \(Executable file\) |
Entry point 0x8049158 |
There are [0-9]+ program headers, starting at offset [0-9]+ |
|
Program Headers: |
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align |
+PHDR.* |
+INTERP.* |
.*Requesting program interpreter.* |
+LOAD.* |
+LOAD.* |
+DYNAMIC.* |
+TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000 |
|
Section to Segment mapping: |
+Segment Sections... |
+00 + |
+01 +.interp * |
+02 +.interp .hash .dynsym .dynstr .rel.dyn .text * |
+03 +.tdata .dynamic .got .got.plt * |
+04 +.dynamic * |
+05 +.tdata .tbss * |
|
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries: |
Offset +Info +Type +Sym.Value +Sym. Name |
0+804a0e0 +0000010e R_386_TLS_TPOFF +0+ +sG3 |
0+804a0e4 +0000020e R_386_TLS_TPOFF +0+ +sG5 |
0+804a0e8 +0000030e R_386_TLS_TPOFF +0+ +sG7 |
0+804a0ec +00000425 R_386_TLS_TPOFF32 0+ +sG2 |
0+804a0f0 +00000525 R_386_TLS_TPOFF32 0+ +sG4 |
0+804a0f4 +0000050e R_386_TLS_TPOFF +0+ +sG4 |
0+804a0f8 +00000725 R_386_TLS_TPOFF32 0+ +sG6 |
0+804a0fc +00000825 R_386_TLS_TPOFF32 0+ +sG1 |
0+804a100 +00000b0e R_386_TLS_TPOFF +0+ +sG8 |
|
Symbol table '\.dynsym' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG5 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG7 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG2 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG4 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG6 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG1 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG8 |
|
Symbol table '\.symtab' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * |
+[0-9]+: 00000020 +0 +TLS +LOCAL +DEFAULT +7 sl1 |
+[0-9]+: 00000024 +0 +TLS +LOCAL +DEFAULT +7 sl2 |
+[0-9]+: 00000028 +0 +TLS +LOCAL +DEFAULT +7 sl3 |
+[0-9]+: 0000002c +0 +TLS +LOCAL +DEFAULT +7 sl4 |
+[0-9]+: 00000030 +0 +TLS +LOCAL +DEFAULT +7 sl5 |
+[0-9]+: 00000034 +0 +TLS +LOCAL +DEFAULT +7 sl6 |
+[0-9]+: 00000038 +0 +TLS +LOCAL +DEFAULT +7 sl7 |
+[0-9]+: 0000003c +0 +TLS +LOCAL +DEFAULT +7 sl8 |
+[0-9]+: 00000080 +0 +TLS +LOCAL +DEFAULT +8 bl1 |
+[0-9]+: 00000084 +0 +TLS +LOCAL +DEFAULT +8 bl2 |
+[0-9]+: 00000088 +0 +TLS +LOCAL +DEFAULT +8 bl3 |
+[0-9]+: 0000008c +0 +TLS +LOCAL +DEFAULT +8 bl4 |
+[0-9]+: 00000090 +0 +TLS +LOCAL +DEFAULT +8 bl5 |
+[0-9]+: 00000094 +0 +TLS +LOCAL +DEFAULT +8 bl6 |
+[0-9]+: 00000098 +0 +TLS +LOCAL +DEFAULT +8 bl7 |
+[0-9]+: 0000009c +0 +TLS +LOCAL +DEFAULT +8 bl8 |
+[0-9]+: 00001000 +0 +TLS +LOCAL +DEFAULT +7 _TLS_MODULE_BASE_ |
+[0-9]+: 0+804a060 +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC |
+[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_ |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG3 |
+[0-9]+: 0000001c +0 +TLS +GLOBAL +DEFAULT +7 sg8 |
+[0-9]+: 0000007c +0 +TLS +GLOBAL +DEFAULT +8 bg8 |
+[0-9]+: 00000074 +0 +TLS +GLOBAL +DEFAULT +8 bg6 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG5 |
+[0-9]+: 00000068 +0 +TLS +GLOBAL +DEFAULT +8 bg3 |
+[0-9]+: 00000008 +0 +TLS +GLOBAL +DEFAULT +7 sg3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG7 |
+[0-9]+: 00000048 +0 +TLS +GLOBAL +HIDDEN +7 sh3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG2 |
+[0-9]+: 0000000c +0 +TLS +GLOBAL +DEFAULT +7 sg4 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG4 |
+[0-9]+: 00000010 +0 +TLS +GLOBAL +DEFAULT +7 sg5 |
+[0-9]+: 00000070 +0 +TLS +GLOBAL +DEFAULT +8 bg5 |
+[0-9]+: 00000058 +0 +TLS +GLOBAL +HIDDEN +7 sh7 |
+[0-9]+: 0000005c +0 +TLS +GLOBAL +HIDDEN +7 sh8 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +7 sg1 |
+[0-9]+: 0+8049158 +0 +FUNC +GLOBAL +DEFAULT +6 _start |
+[0-9]+: 0000004c +0 +TLS +GLOBAL +HIDDEN +7 sh4 |
+[0-9]+: 00000078 +0 +TLS +GLOBAL +DEFAULT +8 bg7 |
+[0-9]+: 00000050 +0 +TLS +GLOBAL +HIDDEN +7 sh5 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG6 |
+[0-9]+: 0+8049000 +0 +FUNC +GLOBAL +DEFAULT +6 fn2 |
+[0-9]+: 00000004 +0 +TLS +GLOBAL +DEFAULT +7 sg2 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG1 |
+[0-9]+: 00000040 +0 +TLS +GLOBAL +HIDDEN +7 sh1 |
+[0-9]+: 00000014 +0 +TLS +GLOBAL +DEFAULT +7 sg6 |
+[0-9]+: 00000018 +0 +TLS +GLOBAL +DEFAULT +7 sg7 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
+[0-9]+: 00000044 +0 +TLS +GLOBAL +HIDDEN +7 sh2 |
+[0-9]+: 00000054 +0 +TLS +GLOBAL +HIDDEN +7 sh6 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG8 |
+[0-9]+: 00000064 +0 +TLS +GLOBAL +DEFAULT +8 bg2 |
+[0-9]+: 00000060 +0 +TLS +GLOBAL +DEFAULT +8 bg1 |
+[0-9]+: 0000006c +0 +TLS +GLOBAL +DEFAULT +8 bg4 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pcrel16.d
0,0 → 1,15
#name: PCREL16 overflow |
#as: --32 |
#ld: -melf_i386 -Ttext 0x0 |
#objdump: -drj.text -m i8086 |
|
.*: +file format elf32-i386 |
|
Disassembly of section .text: |
|
0+ <_start>: |
... |
420: cd 42[ ]+int \$0x42 |
422: ca 02 00[ ]+lret \$0x2 |
... |
f065: e9 b8 13[ ]+jmp 420 <_start\+0x420> |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks2-static.sd
0,0 → 1,9
#... |
Elf file type is EXEC \(Executable file\) |
Entry point 0x80000 |
#... |
Program Headers: |
Type .* |
LOAD .* 0x00080000 0x00080000 .* R E 0x1000 |
|
#... |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsnopic.sd
0,0 → 1,12
#source: tlsnopic1.s |
#source: tlsnopic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -sj.got |
#target: i?86-*-* |
|
.*: file format elf32-i386 |
|
Contents of section \.got: |
2174 00000000 04000000 00000000 00000000 .* |
2184 14000000 18000000 +.* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsdesc.s
0,0 → 1,276
.section ".tdata", "awT", @progbits |
.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 |
.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 |
.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 |
sg1: .long 17 |
sg2: .long 18 |
sg3: .long 19 |
sg4: .long 20 |
sg5: .long 21 |
sg6: .long 22 |
sg7: .long 23 |
sg8: .long 24 |
sl1: .long 65 |
sl2: .long 66 |
sl3: .long 67 |
sl4: .long 68 |
sl5: .long 69 |
sl6: .long 70 |
sl7: .long 71 |
sl8: .long 72 |
sh1: .long 257 |
sh2: .long 258 |
sh3: .long 259 |
sh4: .long 260 |
sh5: .long 261 |
sh6: .long 262 |
sh7: .long 263 |
sh8: .long 264 |
.text |
.globl fn1 |
.type fn1,@function |
fn1: |
pushl %ebp |
movl %esp, %ebp |
pushl %ebx |
pushl %eax |
call 1f |
1: popl %ebx |
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx |
nop;nop;nop;nop |
|
/* GD */ |
leal sg1@tlsdesc(%ebx), %eax |
call *sg1@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE because variable is referenced through @gottpoff too */ |
leal sg2@tlsdesc(%ebx), %eax |
call *sg2@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE because variable is referenced through @gotntpoff too */ |
leal sg3@tlsdesc(%ebx), %eax |
call *sg3@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE because variable is referenced through @gottpoff and |
@gotntpoff too */ |
leal sg4@tlsdesc(%ebx), %eax |
call *sg4@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD against local variable */ |
leal sl1@tlsdesc(%ebx), %eax |
call *sl1@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE against local variable referenced through @gottpoff too */ |
leal sl2@tlsdesc(%ebx), %eax |
call *sl2@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE against local variable referenced through @gotntpoff |
too */ |
leal sl3@tlsdesc(%ebx), %eax |
call *sl3@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE against local variable referenced through @gottpoff and |
@gotntpoff too */ |
leal sl4@tlsdesc(%ebx), %eax |
call *sl4@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD against hidden and local variable */ |
leal sh1@tlsdesc(%ebx), %eax |
call *sh1@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE against hidden and local variable referenced through |
@gottpoff too */ |
leal sh2@tlsdesc(%ebx), %eax |
call *sh2@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE against hidden and local variable referenced through |
@gotntpoff too */ |
leal sh3@tlsdesc(%ebx), %eax |
call *sh3@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE against hidden and local variable referenced through |
@gottpoff and @gotntpoff too */ |
leal sh4@tlsdesc(%ebx), %eax |
call *sh4@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD against hidden but not local variable */ |
leal sH1@tlsdesc(%ebx), %eax |
call *sH1@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE against hidden but not local variable referenced through |
@gottpoff too */ |
leal sH2@tlsdesc(%ebx), %eax |
call *sH2@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE against hidden but not local variable referenced through |
@gotntpoff too */ |
leal sH3@tlsdesc(%ebx), %eax |
call *sH3@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE against hidden but not local variable referenced through |
@gottpoff and @gotntpoff too */ |
leal sH4@tlsdesc(%ebx), %eax |
call *sH4@tlscall(%eax) |
nop;nop;nop;nop |
|
/* LD */ |
leal _TLS_MODULE_BASE_@tlsdesc(%ebx), %eax |
call *_TLS_MODULE_BASE_@tlscall(%eax) |
nop;nop |
leal sl1@dtpoff(%eax), %edx |
nop;nop |
leal 2+sl2@dtpoff(%eax), %ecx |
nop;nop;nop;nop |
|
/* LD against hidden and local variables */ |
leal sh1@dtpoff(%eax), %edx |
nop;nop |
leal sh2@dtpoff+3(%eax), %ecx |
nop;nop;nop;nop |
|
/* LD against hidden but not local variables */ |
leal sH1@dtpoff(%eax), %edx |
nop;nop |
leal sH2@dtpoff+1(%eax), %ecx |
nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
subl sg2@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %eax |
nop;nop |
subl sg4@gottpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gotntpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
addl sg3@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against global var */ |
movl %gs:0, %eax |
nop;nop |
addl sg4@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE against local var */ |
movl %gs:0, %ecx |
nop;nop |
subl sl2@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against local var */ |
movl %gs:0, %eax |
nop;nop |
subl sl4@gottpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gotntpoff IE against local var */ |
movl %gs:0, %ecx |
nop;nop |
addl sl3@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against local var */ |
movl %gs:0, %eax |
nop;nop |
addl sl4@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE against hidden and local var */ |
movl %gs:0, %ecx |
nop;nop |
subl sh2@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against hidden and local var */ |
movl %gs:0, %eax |
nop;nop |
subl sh4@gottpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden and local var */ |
movl %gs:0, %ecx |
nop;nop |
addl sh3@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden and local var */ |
movl %gs:0, %eax |
nop;nop |
addl sh4@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gottpoff IE against hidden but not local var */ |
movl %gs:0, %ecx |
nop;nop |
subl sH2@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against hidden but not local var */ |
movl %gs:0, %eax |
nop;nop |
subl sH4@gottpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden but not local var */ |
movl %gs:0, %ecx |
nop;nop |
addl sH3@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden but not local var */ |
movl %gs:0, %eax |
nop;nop |
addl sH4@gotntpoff(%ebx), %eax |
nop;nop;nop;nop |
|
/* Direct access through %gs */ |
|
/* @gotntpoff IE against global var */ |
movl sg5@gotntpoff(%ebx), %ecx |
nop;nop |
movl %gs:(%ecx), %edx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against local var */ |
movl sl5@gotntpoff(%ebx), %eax |
nop;nop |
movl %gs:(%eax), %edx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden and local var */ |
movl sh5@gotntpoff(%ebx), %edx |
nop;nop |
movl %gs:(%edx), %edx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against hidden but not local var */ |
movl sH5@gotntpoff(%ebx), %ecx |
nop;nop |
movl %gs:(%ecx), %edx |
nop;nop;nop;nop |
|
movl -4(%ebp), %ebx |
leave |
ret |
/trunk/gnu/binutils/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 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlspie1.d
0,0 → 1,6
#name: TLS with PIE |
#as: --32 |
#ld: -melf_i386 -pie |
#readelf: -r |
|
There are no relocations in this file. |
/trunk/gnu/binutils/ld/testsuite/ld-i386/discarded1.s
0,0 → 1,13
.text |
.globl _start |
.type _start, @function |
_start: |
movl x@GOT(%ecx), %eax |
.size _start, .-_start |
.globl x |
.data |
.align 4 |
.type x, @object |
.size x, 4 |
x: |
.long 2 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlspic.td
0,0 → 1,16
#source: tlspic1.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#objdump: -sj.tdata |
#target: i?86-*-* |
|
.*: file format elf32-i386 |
|
Contents of section \.tdata: |
[0-9a-f]+ 11000000 12000000 13000000 14000000 .* |
[0-9a-f]+ 15000000 16000000 17000000 18000000 .* |
[0-9a-f]+ 41000000 42000000 43000000 44000000 .* |
[0-9a-f]+ 45000000 46000000 47000000 48000000 .* |
[0-9a-f]+ 01010000 02010000 03010000 04010000 .* |
[0-9a-f]+ 05010000 06010000 07010000 08010000 .* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/reloc.s
0,0 → 1,8
.section echidna |
.long .text |
|
.section platypus,"ax" |
.long .text |
|
.text |
jmp _start@plt |
/trunk/gnu/binutils/ld/testsuite/ld-i386/discarded1.t
0,0 → 1,7
ENTRY(_start) |
SECTIONS |
{ |
.text : {*(.text)} |
.data : {*(.data)} |
/DISCARD/ : {*(*)} |
} |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pr12627.d
0,0 → 1,8
#name: PR ld/12627 |
#as: --32 |
#ld: -melf_i386 -T pr12627.t |
#nm: -n |
|
#... |
0+100 A __bss16_dwords |
#pass |
/trunk/gnu/binutils/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 |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks1.s
0,0 → 1,14
.text |
.globl _start |
.type _start,@function |
_start: |
call foo@plt |
call sexternal@plt |
jmp sglobal@plt |
.size _start, .-_start |
|
.globl sexternal |
.type sexternal,@function |
sexternal: |
ret |
.size sexternal, .-sexternal |
/trunk/gnu/binutils/ld/testsuite/ld-i386/combreloc.s
0,0 → 1,22
.text |
.globl _start, foo |
.type _start,@function |
_start: |
pushl %ebp |
movl %esp, %ebp |
pushl %ebx |
call 1f |
1: popl %ebx |
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx |
movl _start@GOT(%ebx), %eax |
movl (%eax), %eax |
call foo@PLT |
movl (%esp), %ebx |
leave |
foo: ret |
.data |
.long _start |
.section "__libc_subfreeres", "aw", @progbits |
.long _start |
.section "__libc_atexit", "aw", @progbits |
.long _start |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks1.rd
0,0 → 1,20
|
Relocation section '\.rel\.plt' at offset .* contains 2 entries: |
Offset Info Type Sym\.Value Sym\. Name |
0008140c .*07 R_386_JUMP_SLOT 00000000 sglobal |
00081410 .*07 R_386_JUMP_SLOT 00000000 foo |
|
Relocation section '\.rel\.text' at offset .* contains 3 entries: |
Offset Info Type Sym.Value Sym. Name |
00080c01 .*04 R_386_PLT32 00080800 .plt |
00080c06 .*04 R_386_PLT32 00080c0f sexternal |
00080c0b .*04 R_386_PLT32 00080800 .plt |
|
Relocation section '\.rel\.plt\.unloaded' at offset .* contains 6 entries: |
Offset Info Type Sym\.Value Sym\. Name |
00080802 .*01 R_386_32 00081400 _GLOBAL_OFFSET_TABLE_ |
00080808 .*01 R_386_32 00081400 _GLOBAL_OFFSET_TABLE_ |
00080812 .*01 R_386_32 00081400 _GLOBAL_OFFSET_TABLE_ |
0008140c .*01 R_386_32 00080800 _PROCEDURE_LINKAGE_TAB.* |
00080822 .*01 R_386_32 00081400 _GLOBAL_OFFSET_TABLE_ |
00081410 .*01 R_386_32 00080800 _PROCEDURE_LINKAGE_TAB.* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsgdesc.s
0,0 → 1,100
.text |
.globl fc1 |
.type fc1,@function |
fc1: |
pushl %ebp |
movl %esp, %ebp |
pushl %ebx |
pushl %eax |
call 1f |
1: popl %ebx |
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx |
nop;nop;nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
subl sG3@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gotntpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
addl sG4@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* GD */ |
leal sG1@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD */ |
leal sG1@tlsdesc(%ebx), %eax |
call *sG1@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD */ |
leal sG2@tlsdesc(%ebx), %eax |
call *sG2@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD */ |
leal sG2@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE tpoff */ |
leal sG3@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE tpoff */ |
leal sG3@tlsdesc(%ebx), %eax |
call *sG3@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE ntpoff */ |
leal sG4@tlsdesc(%ebx), %eax |
call *sG4@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE ntpoff */ |
leal sG4@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE ntpoff */ |
leal sG5@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* GD -> IE ntpoff */ |
leal sG5@tlsdesc(%ebx), %eax |
call *sG5@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE tpoff */ |
leal sG6@tlsdesc(%ebx), %eax |
call *sG6@tlscall(%eax) |
nop;nop;nop;nop |
|
/* GD -> IE tpoff */ |
leal sG6@tlsgd(,%ebx,1), %eax |
call ___tls_get_addr@plt |
nop;nop;nop;nop |
|
/* @gotntpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
addl sG5@gotntpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
/* @gottpoff IE against global var */ |
movl %gs:0, %ecx |
nop;nop |
subl sG6@gottpoff(%ebx), %ecx |
nop;nop;nop;nop |
|
movl -4(%ebp), %ebx |
leave |
ret |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsg.s
0,0 → 1,12
.section .tbss,"awT",@nobits |
.align 4 |
.skip 24 |
.type a,@object |
.size a,4 |
a: |
.zero 4 |
.text |
.globl _start |
_start: |
.section .debug_foobar |
.long a@dtpoff |
/trunk/gnu/binutils/ld/testsuite/ld-i386/vxworks2.sd
0,0 → 1,13
#... |
Elf file type is EXEC \(Executable file\) |
Entry point 0x80400 |
#... |
Program Headers: |
Type .* |
PHDR .* |
#... |
LOAD .* 0x00080000 0x00080000 .* R E 0x1000 |
LOAD .* 0x00081000 0x00081000 .* RW 0x1000 |
DYNAMIC .* |
|
#... |
/trunk/gnu/binutils/ld/testsuite/ld-i386/alloc.d
0,0 → 1,4
#name: Invalid allocated section |
#as: --32 |
#ld: -melf_i386 -T alloc.t |
#warning: .*section `.foo' can't be allocated in segment 0.* |
/trunk/gnu/binutils/ld/testsuite/ld-i386/tlsgdesc.rd
0,0 → 1,103
#source: tlsgdesc.s |
#as: --32 |
#ld: -shared -melf_i386 |
#readelf: -Ssrl |
#target: i?86-*-* |
|
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: |
|
Section Headers: |
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al |
+\[[ 0-9]+\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0 |
+\[[ 0-9]+\] \.hash +.* |
+\[[ 0-9]+\] \.dynsym +.* |
+\[[ 0-9]+\] \.dynstr +.* |
+\[[ 0-9]+\] \.rel.dyn +.* |
+\[[ 0-9]+\] \.rel.plt +.* |
+\[[ 0-9]+\] \.plt +.* |
+\[[ 0-9]+\] \.text +.* |
+\[[ 0-9]+\] \.dynamic +.* |
+\[[ 0-9]+\] \.got +.* |
+\[[ 0-9]+\] \.got.plt +.* |
+\[[ 0-9]+\] \.shstrtab +.* |
+\[[ 0-9]+\] \.symtab +.* |
+\[[ 0-9]+\] \.strtab +.* |
Key to Flags: |
.* |
.* |
.* |
|
Elf file type is DYN \(Shared object file\) |
Entry point 0x[0-9a-f]+ |
There are [0-9]+ program headers, starting at offset [0-9]+ |
|
Program Headers: |
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align |
+LOAD.* |
+LOAD.* |
+DYNAMIC.* |
|
Section to Segment mapping: |
+Segment Sections... |
+00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text * |
+01 +.dynamic .got .got.plt * |
+02 +.dynamic * |
|
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 8 entries: |
Offset +Info +Type +Sym.Value +Sym. Name |
[0-9a-f ]+R_386_TLS_TPOFF32 0+ +sG3 |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sG5 |
[0-9a-f ]+R_386_TLS_DTPMOD3 0+ +sG2 |
[0-9a-f ]+R_386_TLS_DTPOFF3 0+ +sG2 |
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sG4 |
[0-9a-f ]+R_386_TLS_TPOFF32 0+ +sG6 |
[0-9a-f ]+R_386_TLS_DTPMOD3 0+ +sG1 |
[0-9a-f ]+R_386_TLS_DTPOFF3 0+ +sG1 |
|
Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 3 entries: |
Offset +Info +Type +Sym.Value +Sym. Name |
[0-9a-f ]+R_386_JUMP_SLOT +0+ +___tls_get_addr |
[0-9a-f ]+R_386_TLS_DESC +0+ +sG1 |
[0-9a-f ]+R_386_TLS_DESC +0+ +sG2 |
|
Symbol table '\.dynsym' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG5 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG2 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG4 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG6 |
+[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +7 fc1 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG1 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
+[0-9]+: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +UND ___tls_get_addr |
|
Symbol table '\.symtab' contains [0-9]+ entries: |
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name |
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * |
+[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * |
+[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC |
+[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +ABS _GLOBAL_OFFSET_TABLE_ |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG3 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG5 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG2 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG4 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS __bss_start |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG6 |
+[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +7 fc1 |
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG1 |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _edata |
+[0-9]+: [0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +ABS _end |
+[0-9]+: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +UND ___tls_get_addr |
/trunk/gnu/binutils/ld/testsuite/ld-i386/pcrel16.s
0,0 → 1,9
.code16 |
.text |
.globl _start |
_start: |
.org 0x420 |
int $0x42 |
lret $2 |
.org 0xf065 |
jmp _start+((0x42) << 4) |