New tests.

This commit is contained in:
Alan Modra 2003-02-18 06:11:32 +00:00
parent 7619e7c7de
commit 2a050fb5ce
15 changed files with 625 additions and 1 deletions

View file

@ -1,3 +1,20 @@
2003-02-18 Alan Modra <amodra@bigpond.net.au>
* ld-powerpc/tls32.s: New file.
* ld-powerpc/tlslib32.s: New file.
* ld-powerpc/tls32.d: New file.
* ld-powerpc/tls32.g: New file.
* ld-powerpc/tls32.t: New file.
* ld-powerpc/tlsexe32.d: New file.
* ld-powerpc/tlsexe32.g: New file.
* ld-powerpc/tlsexe32.r: New file.
* ld-powerpc/tlsexe32.t: New file.
* ld-powerpc/tlsso32.d: New file.
* ld-powerpc/tlsso32.g: New file.
* ld-powerpc/tlsso32.r: New file.
* ld-powerpc/tlsso32.t: New file.
* ld-powerpc/powerpc.exp: Run new tests.
2003-02-18 Alan Modra <amodra@bigpond.net.au>
* ld-powerpc/tlsexe.g: Update for 2003-02-14 elf64-ppc.c change.

View file

@ -54,7 +54,21 @@ set ppcelftests {
{{objdump -hw reloc.d}} "reloc.so"}
{"APUinfo section processing" "-melf32ppc"
"-a32 -me500" {apuinfo1.s apuinfo2.s}
{{readelf -x5 apuinfo.rd}} "apuinfo"}
{{readelf -x5 apuinfo.rd}} "apuinfo"}
{"TLS32 static exec" "-melf32ppc" "-a32" {tls32.s tlslib32.s}
{{objdump -dr tls32.d} {objdump -sj.got tls32.g}
{objdump -sj.tdata tls32.t}}
"tls32"}
{"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" {}
{} "libtlslib32.so"}
{"TLS32 dynamic exec" "-melf32ppc tmpdir/tls32.o tmpdir/libtlslib32.so" "" {}
{{readelf -WSsrl tlsexe32.r} {objdump -dr tlsexe32.d}
{objdump -sj.got tlsexe32.g} {objdump -sj.tdata tlsexe32.t}}
"tlsexe32"}
{"TLS32 shared" "-shared -melf32ppc tmpdir/tls32.o" "" {}
{{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d}
{objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}}
"tls32.so"}
}
set ppc64elftests {

View file

@ -0,0 +1,50 @@
#source: tls32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -dr
#target: powerpc*-*-*
.*: +file format elf32-powerpc
Disassembly of section \.text:
0+1800094 <_start>:
1800094: 3c 62 00 00 addis r3,r2,0
1800098: 38 63 90 3c addi r3,r3,-28612
180009c: 3c 62 00 00 addis r3,r2,0
18000a0: 38 63 10 00 addi r3,r3,4096
18000a4: 3c 62 00 00 addis r3,r2,0
18000a8: 38 63 90 20 addi r3,r3,-28640
18000ac: 3c 62 00 00 addis r3,r2,0
18000b0: 38 63 10 00 addi r3,r3,4096
18000b4: 39 23 80 24 addi r9,r3,-32732
18000b8: 3d 23 00 00 addis r9,r3,0
18000bc: 81 49 80 28 lwz r10,-32728\(r9\)
18000c0: 3d 22 00 00 addis r9,r2,0
18000c4: a1 49 90 30 lhz r10,-28624\(r9\)
18000c8: 89 42 90 34 lbz r10,-28620\(r2\)
18000cc: 3d 22 00 00 addis r9,r2,0
18000d0: 99 49 90 38 stb r10,-28616\(r9\)
18000d4: 3c 62 00 00 addis r3,r2,0
18000d8: 38 63 90 00 addi r3,r3,-28672
18000dc: 3c 62 00 00 addis r3,r2,0
18000e0: 38 63 10 00 addi r3,r3,4096
18000e4: 91 43 80 04 stw r10,-32764\(r3\)
18000e8: 3d 23 00 00 addis r9,r3,0
18000ec: 91 49 80 08 stw r10,-32760\(r9\)
18000f0: 3d 22 00 00 addis r9,r2,0
18000f4: b1 49 90 30 sth r10,-28624\(r9\)
18000f8: a1 42 90 14 lhz r10,-28652\(r2\)
18000fc: 3d 22 00 00 addis r9,r2,0
1800100: a9 49 90 18 lha r10,-28648\(r9\)
0+1800104 <__tls_get_addr>:
1800104: 4e 80 00 20 blr
Disassembly of section \.got:
0+1810128 <_GLOBAL_OFFSET_TABLE_-0x4>:
1810128: 4e 80 00 21 blrl
0+181012c <_GLOBAL_OFFSET_TABLE_>:
\.\.\.

View file

@ -0,0 +1,11 @@
#source: tls32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -sj.got
#target: powerpc*-*-*
.*: +file format elf32-powerpc
Contents of section \.got:
1810128 4e800021 00000000 00000000 00000000 .*

View file

@ -0,0 +1,80 @@
.section ".tbss","awT",@nobits
.global _start,gd0,ld0,ld1,ld2,ie0,le0,le1
.align 2
gd0: .space 4
ld0: .space 4
ld1: .space 4
ld2: .space 4
ie0: .space 4
le0: .space 4
le1: .space 4
.section ".tdata","awT",@progbits
.align 2
gd4: .long 0x12345678
ld4: .long 0x23456789
ld5: .long 0x3456789a
ld6: .long 0x456789ab
ie4: .long 0x56789abc
le4: .long 0x6789abcd
le5: .long 0x789abcde
.text
_start:
#extern syms
#GD
addi 3,31,gd@got@tlsgd #R_PPC_GOT_TLSGD16 gd
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
#LD
addi 3,31,ld@got@tlsld #R_PPC_GOT_TLSLD16 ld
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
#global syms
#GD
addi 3,31,gd0@got@tlsgd #R_PPC_GOT_TLSGD16 gd0
bl __tls_get_addr@plt #R_PPC_PLTREL24 __tls_get_addr
#LD
addi 3,31,ld0@got@tlsld #R_PPC_GOT_TLSLD16 ld0
bl __tls_get_addr@plt #R_PPC_PLTREL24 __tls_get_addr
addi 9,3,ld0@dtprel #R_PPC_DTPREL16 ld0
addis 9,3,ld1@dtprel@ha #R_PPC_DTPREL16_HA ld1
lwz 10,ld1@dtprel@l(9) #R_PPC_DTPREL16_LO ld1
#IE
lwz 9,ie0@got@tprel(31) #R_PPC_GOT_TPREL16 ie0
lhzx 10,9,ie0@tls #R_PPC_TLS ie0
#LE
lbz 10,le0@tprel(2) #R_PPC_TPREL16 le0
addis 9,2,le1@tprel@ha #R_PPC_TPREL16_HA le1
stb 10,le1@tprel@l(9) #R_PPC_TPREL16_LO le1
#local syms, use a different got reg too.
#GD
addi 3,30,gd4@got@tlsgd #R_PPC_GOT_TLSGD16 gd4
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
#LD
addi 3,30,ld4@got@tlsld #R_PPC_GOT_TLSLD16 ld4
bl __tls_get_addr #R_PPC_REL24 __tls_get_addr
stw 10,ld4@dtprel(3) #R_PPC_DTPREL16 ld4
addis 9,3,ld5@dtprel@ha #R_PPC_DTPREL16_HA ld5
stw 10,ld5@dtprel@l(9) #R_PPC_DTPREL16_LO ld5
#IE
lwz 9,ie0@got@tprel(30) #R_PPC_GOT_TPREL16 ie4
sthx 10,9,ie0@tls #R_PPC_TLS ie4
#LE
lhz 10,le4@tprel(2) #R_PPC_TPREL16 le4
addis 9,2,le5@tprel@ha #R_PPC_TPREL16_HA le5
lha 10,le5@tprel@l(9) #R_PPC_TPREL16_LO le5

View file

@ -0,0 +1,12 @@
#source: tls32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#objdump: -sj.tdata
#target: powerpc*-*-*
.*: +file format elf32-powerpc
Contents of section \.tdata:
1810108 12345678 23456789 3456789a 456789ab .*
1810118 56789abc 6789abcd 789abcde 00c0ffee .*

View file

@ -0,0 +1,45 @@
#source: tls32.s
#as: -a32
#ld: -melf32ppc tmpdir/libtlslib32.so
#objdump: -dr
#target: powerpc*-*-*
.*: +file format elf32-powerpc
Disassembly of section \.text:
0180028c <_start>:
180028c: 80 7f 00 0c lwz r3,12\(r31\)
1800290: 7c 63 12 14 add r3,r3,r2
1800294: 38 7f 00 10 addi r3,r31,16
1800298: 48 01 01 85 bl 181041c <__bss_start\+0x48>
180029c: 3c 62 00 00 addis r3,r2,0
18002a0: 38 63 90 1c addi r3,r3,-28644
18002a4: 3c 62 00 00 addis r3,r2,0
18002a8: 38 63 10 00 addi r3,r3,4096
18002ac: 39 23 80 20 addi r9,r3,-32736
18002b0: 3d 23 00 00 addis r9,r3,0
18002b4: 81 49 80 24 lwz r10,-32732\(r9\)
18002b8: 3d 22 00 00 addis r9,r2,0
18002bc: a1 49 90 2c lhz r10,-28628\(r9\)
18002c0: 89 42 90 30 lbz r10,-28624\(r2\)
18002c4: 3d 22 00 00 addis r9,r2,0
18002c8: 99 49 90 34 stb r10,-28620\(r9\)
18002cc: 3c 62 00 00 addis r3,r2,0
18002d0: 38 63 90 00 addi r3,r3,-28672
18002d4: 3c 62 00 00 addis r3,r2,0
18002d8: 38 63 10 00 addi r3,r3,4096
18002dc: 91 43 80 04 stw r10,-32764\(r3\)
18002e0: 3d 23 00 00 addis r9,r3,0
18002e4: 91 49 80 08 stw r10,-32760\(r9\)
18002e8: 3d 22 00 00 addis r9,r2,0
18002ec: b1 49 90 2c sth r10,-28628\(r9\)
18002f0: a1 42 90 14 lhz r10,-28652\(r2\)
18002f4: 3d 22 00 00 addis r9,r2,0
18002f8: a9 49 90 18 lha r10,-28648\(r9\)
Disassembly of section \.got:
018103b8 <\.got>:
18103b8: 4e 80 00 21 blrl
18103bc: 01 81 03 18 \.long 0x1810318
\.\.\.

View file

@ -0,0 +1,11 @@
#source: tls32.s
#as: -a32
#ld: -melf32ppc tmpdir/libtlslib32.so
#objdump: -sj.got
#target: powerpc*-*-*
.*: +file format elf32-powerpc
Contents of section \.got:
18103b8 4e800021 01810318 00000000 00000000 .*
18103c8 00000000 00000000 00000000 .*

View file

@ -0,0 +1,128 @@
#source: tls32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#readelf: -WSsrl
#target: powerpc*-*-*
There are 21 section headers.*
Section Headers:
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
+\[ 0\] +NULL +00000000 000000 000000 00 +0 +0 +0
+\[ 1\] \.interp +PROGBITS +01800114 000114 000011 00 +A +0 +0 +1
+\[ 2\] \.hash +HASH +01800128 000128 00003c 04 +A +3 +0 +4
+\[ 3\] \.dynsym +DYNSYM +01800164 000164 0000a0 10 +A +4 +1 +4
+\[ 4\] \.dynstr +STRTAB +01800204 000204 000064 00 +A +0 +0 +1
+\[ 5\] \.rela\.dyn +RELA +01800268 000268 000018 0c +A +3 +0 +4
+\[ 6\] \.rela\.plt +RELA +01800280 000280 00000c 0c +A +3 +10 +4
+\[ 7\] \.text +PROGBITS +0180028c 00028c 000070 00 +AX +0 +0 +1
+\[ 8\] \.sdata2 +PROGBITS +018002fc 0002fc 000000 00 +A +0 +0 +4
+\[ 9\] \.data +PROGBITS +018102fc 0002fc 000000 00 +WA +0 +0 +1
+\[10\] \.tdata +PROGBITS +018102fc 0002fc 00001c 00 WAT +0 +0 +4
+\[11\] \.tbss +NOBITS +01810318 000318 00001c 00 WAT +0 +0 +4
+\[12\] \.dynamic +DYNAMIC +01810318 000318 0000a0 08 +WA +4 +0 +4
+\[13\] \.got +PROGBITS +018103b8 0003b8 00001c 04 WAX +0 +0 +4
+\[14\] \.sdata +PROGBITS +018103d4 0003d4 000000 00 +WA +0 +0 +4
+\[15\] \.sbss +NOBITS +018103d4 0003d4 000000 00 +WA +0 +0 +1
+\[16\] \.plt +NOBITS +018103d4 0003d4 000054 00 WAX +0 +0 +4
+\[17\] \.bss +NOBITS +01810428 0003d4 000000 00 +WA +0 +0 +1
+\[18\] \.shstrtab +STRTAB +00000000 0003d4 00008e 00 +0 +0 +1
+\[19\] \.symtab +SYMTAB +00000000 0007ac 0002f0 10 +20 +1c +4
+\[20\] \.strtab +STRTAB +00000000 000a9c 0000a9 00 +0 +0 +1
#...
Elf file type is EXEC \(Executable file\)
Entry point 0x180028c
There are 6 program headers, starting at offset 52
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
+PHDR +0x000034 0x01800034 0x01800034 0x000e0 0x000e0 R E 0x4
+INTERP +0x000114 0x01800114 0x01800114 0x00011 0x00011 R +0x1
+\[Requesting program interpreter: .*\]
+LOAD +0x000000 0x01800000 0x01800000 0x002fc 0x002fc R E 0x10000
+LOAD +0x0002fc 0x018102fc 0x018102fc 0x000d8 0x0012c RWE 0x10000
+DYNAMIC +0x000318 0x01810318 0x01810318 0x000a0 0x000a0 RW +0x4
+TLS +0x0002fc 0x018102fc 0x018102fc 0x0001c 0x00038 R +0x4
Section to Segment mapping:
+Segment Sections\.\.\.
+00 +
+01 +\.interp
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+03 +\.tdata \.tbss \.dynamic \.got \.plt
+04 +\.tbss \.dynamic
+05 +\.tdata \.tbss
Relocation section '\.rela\.dyn' at offset 0x268 contains 2 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
018103c8 +00000249 R_PPC_TPREL32 +00000000 +gd \+ 0
018103cc +00000444 R_PPC_DTPMOD32 +00000000 +ld \+ 0
Relocation section '\.rela\.plt' at offset 0x280 contains 1 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
0181041c +00000315 R_PPC_JMP_SLOT +0181041c +__tls_get_addr \+ 0
Symbol table '\.dynsym' contains 10 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 00000000 +0 NOTYPE +LOCAL +DEFAULT +UND
+1: 01810318 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+2: 00000000 +0 TLS +GLOBAL DEFAULT +UND gd
+3: 0181041c +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+4: 00000000 +0 TLS +GLOBAL DEFAULT +UND ld
+5: 01810428 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+6: 018103d4 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+7: 018103d4 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+8: 018103bc +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+9: 01810428 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
Symbol table '\.symtab' contains 47 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 00000000 +0 NOTYPE +LOCAL +DEFAULT +UND
+1: 01800114 +0 SECTION LOCAL +DEFAULT +1
+2: 01800128 +0 SECTION LOCAL +DEFAULT +2
+3: 01800164 +0 SECTION LOCAL +DEFAULT +3
+4: 01800204 +0 SECTION LOCAL +DEFAULT +4
+5: 01800268 +0 SECTION LOCAL +DEFAULT +5
+6: 01800280 +0 SECTION LOCAL +DEFAULT +6
+7: 0180028c +0 SECTION LOCAL +DEFAULT +7
+8: 018002fc +0 SECTION LOCAL +DEFAULT +8
+9: 018102fc +0 SECTION LOCAL +DEFAULT +9
+10: 018102fc +0 SECTION LOCAL +DEFAULT +10
+11: 01810318 +0 SECTION LOCAL +DEFAULT +11
+12: 01810318 +0 SECTION LOCAL +DEFAULT +12
+13: 018103b8 +0 SECTION LOCAL +DEFAULT +13
+14: 018103d4 +0 SECTION LOCAL +DEFAULT +14
+15: 018103d4 +0 SECTION LOCAL +DEFAULT +15
+16: 018103d4 +0 SECTION LOCAL +DEFAULT +16
+17: 01810428 +0 SECTION LOCAL +DEFAULT +17
+18: 00000000 +0 SECTION LOCAL +DEFAULT +18
+19: 00000000 +0 SECTION LOCAL +DEFAULT +19
+20: 00000000 +0 SECTION LOCAL +DEFAULT +20
+21: 00000000 +0 TLS +LOCAL +DEFAULT +10 gd4
+22: 00000004 +0 TLS +LOCAL +DEFAULT +10 ld4
+23: 00000008 +0 TLS +LOCAL +DEFAULT +10 ld5
+24: 0000000c +0 TLS +LOCAL +DEFAULT +10 ld6
+25: 00000010 +0 TLS +LOCAL +DEFAULT +10 ie4
+26: 00000014 +0 TLS +LOCAL +DEFAULT +10 le4
+27: 00000018 +0 TLS +LOCAL +DEFAULT +10 le5
+28: 01810318 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+29: 00000000 +0 TLS +GLOBAL DEFAULT +UND gd
+30: 00000030 +0 TLS +GLOBAL DEFAULT +11 le0
+31: 0181041c +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+32: 00000020 +0 TLS +GLOBAL DEFAULT +11 ld0
+33: 00000034 +0 TLS +GLOBAL DEFAULT +11 le1
+34: 00000000 +0 TLS +GLOBAL DEFAULT +UND ld
+35: 0180028c +0 NOTYPE +GLOBAL DEFAULT +7 _start
+36: 01810428 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+37: 018183d4 +0 OBJECT +GLOBAL DEFAULT +14 _SDA_BASE_
+38: 00000028 +0 TLS +GLOBAL DEFAULT +11 ld2
+39: 00000024 +0 TLS +GLOBAL DEFAULT +11 ld1
+40: 018103d4 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+41: 018103d4 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+42: 018103bc +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+43: 01810428 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+44: 0000001c +0 TLS +GLOBAL DEFAULT +11 gd0
+45: 0000002c +0 TLS +GLOBAL DEFAULT +11 ie0
+46: 018082fc +0 OBJECT +GLOBAL DEFAULT +8 _SDA2_BASE_

View file

@ -0,0 +1,11 @@
#source: tls32.s
#as: -a32
#ld: -melf32ppc tmpdir/libtlslib32.so
#objdump: -sj.tdata
#target: powerpc*-*-*
.*: +file format elf32-powerpc
Contents of section \.tdata:
18102fc 12345678 23456789 3456789a 456789ab .*
181030c 56789abc 6789abcd 789abcde .*

View file

@ -0,0 +1,14 @@
.global __tls_get_addr,gd,ld
.type __tls_get_addr,@function
.section ".tbss","awT",@nobits
.align 2
gd: .space 4
.section ".tdata","awT",@progbits
.align 2
ld: .long 0xc0ffee
.text
__tls_get_addr:
blr

View file

@ -0,0 +1,45 @@
#source: tls32.s
#as: -a32
#ld: -shared -melf32ppc
#objdump: -dr
#target: powerpc*-*-*
.*: +file format elf32-powerpc
Disassembly of section \.text:
0+538 <_start>:
538: 38 7f 00 1c addi r3,r31,28
53c: 48 00 00 01 bl 53c <_start\+0x4>
540: 38 7f 00 0c addi r3,r31,12
544: 48 00 00 01 bl 544 <_start\+0xc>
548: 38 7f 00 24 addi r3,r31,36
54c: 48 01 01 95 bl 106e0 <__bss_start\+0x48>
550: 38 7f 00 0c addi r3,r31,12
554: 48 01 01 8d bl 106e0 <__bss_start\+0x48>
558: 39 23 80 20 addi r9,r3,-32736
55c: 3d 23 00 00 addis r9,r3,0
560: 81 49 80 24 lwz r10,-32732\(r9\)
564: 81 3f 00 2c lwz r9,44\(r31\)
568: 7d 49 12 2e lhzx r10,r9,r2
56c: 89 42 00 00 lbz r10,0\(r2\)
570: 3d 22 00 00 addis r9,r2,0
574: 99 49 00 00 stb r10,0\(r9\)
578: 38 7e 00 14 addi r3,r30,20
57c: 48 00 00 01 bl 57c <_start\+0x44>
580: 38 7e 00 0c addi r3,r30,12
584: 48 00 00 01 bl 584 <_start\+0x4c>
588: 91 43 80 04 stw r10,-32764\(r3\)
58c: 3d 23 00 00 addis r9,r3,0
590: 91 49 80 08 stw r10,-32760\(r9\)
594: 81 3e 00 2c lwz r9,44\(r30\)
598: 7d 49 13 2e sthx r10,r9,r2
59c: a1 42 00 00 lhz r10,0\(r2\)
5a0: 3d 22 00 00 addis r9,r2,0
5a4: a9 49 00 00 lha r10,0\(r9\)
Disassembly of section \.got:
00010664 <\.got>:
10664: 4e 80 00 21 blrl
10668: 00 01 05 c4 \.long 0x105c4
\.\.\.

View file

@ -0,0 +1,13 @@
#source: tls32.s
#as: -a32
#ld: -shared -melf32ppc
#objdump: -sj.got
#target: powerpc*-*-*
.*: +file format elf32-powerpc
Contents of section \.got:
10664 4e800021 000105c4 00000000 00000000 .*
10674 00000000 00000000 00000000 00000000 .*
10684 00000000 00000000 00000000 00000000 .*
10694 00000000 .*

View file

@ -0,0 +1,162 @@
#source: tls32.s
#as: -a32
#ld: -shared -melf32ppc
#readelf: -WSsrl
#target: powerpc*-*-*
There are 20 section headers.*
Section Headers:
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
+\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
+\[ 1\] \.hash +HASH +0+b4 0+b4 0+dc 04 +A +2 +0 +4
+\[ 2\] \.dynsym +DYNSYM +0+190 0+190 0+240 10 +A +3 +11 +4
+\[ 3\] \.dynstr +STRTAB +0+3d0 0+3d0 0+81 0+ +A +0 +0 +1
+\[ 4\] \.rela\.dyn +RELA +0+454 0+454 0+d8 0c +A +2 +0 +4
+\[ 5\] \.rela\.plt +RELA +0+52c 0+52c 0+c 0c +A +2 +f +4
+\[ 6\] \.text +PROGBITS +0+538 0+538 0+70 0+ +AX +0 +0 +1
+\[ 7\] \.data +PROGBITS +0+105a8 0+5a8 0+ 0+ +WA +0 +0 +1
+\[ 8\] \.tdata +PROGBITS +0+105a8 0+5a8 0+1c 0+ WAT +0 +0 +4
+\[ 9\] \.tbss +NOBITS +0+105c4 0+5c4 0+1c 0+ WAT +0 +0 +4
+\[10\] \.dynamic +DYNAMIC +0+105c4 0+5c4 0+a0 08 +WA +3 +0 +4
+\[11\] \.got +PROGBITS +0+10664 0+664 0+34 04 WAX +0 +0 +4
+\[12\] \.sdata2 +PROGBITS +0+10698 0+698 0+ 0+ +A +0 +0 +4
+\[13\] \.sdata +PROGBITS +0+10698 0+698 0+ 0+ +WA +0 +0 +4
+\[14\] \.sbss +NOBITS +0+10698 0+698 0+ 0+ +WA +0 +0 +1
+\[15\] \.plt +NOBITS +0+10698 0+698 0+54 0+ WAX +0 +0 +4
+\[16\] \.bss +NOBITS +0+106ec 0+698 0+ 0+ +WA +0 +0 +1
+\[17\] \.shstrtab +STRTAB +0+ 0+698 0+86 0+ +0 +0 +1
+\[18\] \.symtab +SYMTAB +0+ 0+a40 0+2e0 10 +19 +1b +4
+\[19\] \.strtab +STRTAB +0+ 0+d20 0+a9 0+ +0 +0 +1
#...
Elf file type is DYN \(Shared object file\)
Entry point 0x538
There are 4 program headers.*
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
+LOAD +0x0+ 0x0+ 0x0+ 0x0+5a8 0x0+5a8 R E 0x10000
+LOAD +0x0+5a8 0x0+105a8 0x0+105a8 0x0+f0 0x0+144 RWE 0x10000
+DYNAMIC +0x0+5c4 0x0+105c4 0x0+105c4 0x0+a0 0x0+a0 RW +0x4
+TLS +0x0+5a8 0x0+105a8 0x0+105a8 0x0+1c 0x0+38 R +0x4
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+01 +\.tdata \.tbss \.dynamic \.got \.plt
+02 +\.tbss \.dynamic
+03 +\.tdata \.tbss
Relocation section '\.rela\.dyn' at offset 0x454 contains 18 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
0+53c +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
0+544 +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
0+57c +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
0+584 +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
0+56e +0+1345 R_PPC_TPREL16 +0+30 +le0 \+ 0
0+572 +0+1648 R_PPC_TPREL16_HA +0+34 +le1 \+ 0
0+576 +0+1646 R_PPC_TPREL16_LO +0+34 +le1 \+ 0
0+59e +0+845 R_PPC_TPREL16 +0+105a8 +\.tdata \+ 105bc
0+5a2 +0+848 R_PPC_TPREL16_HA +0+105a8 +\.tdata \+ 105c0
0+5a6 +0+846 R_PPC_TPREL16_LO +0+105a8 +\.tdata \+ 105c0
0+10674 +0+44 R_PPC_DTPMOD32 +0+
0+1067c +0+44 R_PPC_DTPMOD32 +0+
0+10680 +0+4e R_PPC_DTPREL32 +0+105a8
0+10684 +0+1244 R_PPC_DTPMOD32 +0+ +gd \+ 0
0+10688 +0+124e R_PPC_DTPREL32 +0+ +gd \+ 0
0+1068c +0+2144 R_PPC_DTPMOD32 +0+1c +gd0 \+ 0
0+10690 +0+214e R_PPC_DTPREL32 +0+1c +gd0 \+ 0
0+10694 +0+2249 R_PPC_TPREL32 +0+2c +ie0 \+ 0
Relocation section '\.rela\.plt' at offset 0x52c contains 1 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
0+106e0 +0+1415 R_PPC_JMP_SLOT +0+ +__tls_get_addr \+ 0
Symbol table '\.dynsym' contains 36 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+1: 0+b4 +0 SECTION LOCAL +DEFAULT +1
+2: 0+190 +0 SECTION LOCAL +DEFAULT +2
+3: 0+3d0 +0 SECTION LOCAL +DEFAULT +3
+4: 0+454 +0 SECTION LOCAL +DEFAULT +4
+5: 0+52c +0 SECTION LOCAL +DEFAULT +5
+6: 0+538 +0 SECTION LOCAL +DEFAULT +6
+7: 0+105a8 +0 SECTION LOCAL +DEFAULT +7
+8: 0+105a8 +0 SECTION LOCAL +DEFAULT +8
+9: 0+105c4 +0 SECTION LOCAL +DEFAULT +9
+10: 0+105c4 +0 SECTION LOCAL +DEFAULT +10
+11: 0+10664 +0 SECTION LOCAL +DEFAULT +11
+12: 0+10698 +0 SECTION LOCAL +DEFAULT +12
+13: 0+10698 +0 SECTION LOCAL +DEFAULT +13
+14: 0+10698 +0 SECTION LOCAL +DEFAULT +14
+15: 0+10698 +0 SECTION LOCAL +DEFAULT +15
+16: 0+106ec +0 SECTION LOCAL +DEFAULT +16
+17: 0+105c4 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+18: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+19: 0+30 +0 TLS +GLOBAL DEFAULT +9 le0
+20: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+21: 0+20 +0 TLS +GLOBAL DEFAULT +9 ld0
+22: 0+34 +0 TLS +GLOBAL DEFAULT +9 le1
+23: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+24: 0+538 +0 NOTYPE +GLOBAL DEFAULT +6 _start
+25: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+26: 0+18698 +0 OBJECT +GLOBAL DEFAULT +13 _SDA_BASE_
+27: 0+28 +0 TLS +GLOBAL DEFAULT +9 ld2
+28: 0+24 +0 TLS +GLOBAL DEFAULT +9 ld1
+29: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+30: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+31: 0+10668 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+32: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+33: 0+1c +0 TLS +GLOBAL DEFAULT +9 gd0
+34: 0+2c +0 TLS +GLOBAL DEFAULT +9 ie0
+35: 0+18698 +0 OBJECT +GLOBAL DEFAULT +12 _SDA2_BASE_
Symbol table '\.symtab' contains 46 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+1: 0+b4 +0 SECTION LOCAL +DEFAULT +1
+2: 0+190 +0 SECTION LOCAL +DEFAULT +2
+3: 0+3d0 +0 SECTION LOCAL +DEFAULT +3
+4: 0+454 +0 SECTION LOCAL +DEFAULT +4
+5: 0+52c +0 SECTION LOCAL +DEFAULT +5
+6: 0+538 +0 SECTION LOCAL +DEFAULT +6
+7: 0+105a8 +0 SECTION LOCAL +DEFAULT +7
+8: 0+105a8 +0 SECTION LOCAL +DEFAULT +8
+9: 0+105c4 +0 SECTION LOCAL +DEFAULT +9
+10: 0+105c4 +0 SECTION LOCAL +DEFAULT +10
+11: 0+10664 +0 SECTION LOCAL +DEFAULT +11
+12: 0+10698 +0 SECTION LOCAL +DEFAULT +12
+13: 0+10698 +0 SECTION LOCAL +DEFAULT +13
+14: 0+10698 +0 SECTION LOCAL +DEFAULT +14
+15: 0+10698 +0 SECTION LOCAL +DEFAULT +15
+16: 0+106ec +0 SECTION LOCAL +DEFAULT +16
+17: 0+ +0 SECTION LOCAL +DEFAULT +17
+18: 0+ +0 SECTION LOCAL +DEFAULT +18
+19: 0+ +0 SECTION LOCAL +DEFAULT +19
+20: 0+ +0 TLS +LOCAL +DEFAULT +8 gd4
+21: 0+4 +0 TLS +LOCAL +DEFAULT +8 ld4
+22: 0+8 +0 TLS +LOCAL +DEFAULT +8 ld5
+23: 0+c +0 TLS +LOCAL +DEFAULT +8 ld6
+24: 0+10 +0 TLS +LOCAL +DEFAULT +8 ie4
+25: 0+14 +0 TLS +LOCAL +DEFAULT +8 le4
+26: 0+18 +0 TLS +LOCAL +DEFAULT +8 le5
+27: 0+105c4 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+28: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+29: 0+30 +0 TLS +GLOBAL DEFAULT +9 le0
+30: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+31: 0+20 +0 TLS +GLOBAL DEFAULT +9 ld0
+32: 0+34 +0 TLS +GLOBAL DEFAULT +9 le1
+33: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+34: 0+538 +0 NOTYPE +GLOBAL DEFAULT +6 _start
+35: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+36: 0+18698 +0 OBJECT +GLOBAL DEFAULT +13 _SDA_BASE_
+37: 0+28 +0 TLS +GLOBAL DEFAULT +9 ld2
+38: 0+24 +0 TLS +GLOBAL DEFAULT +9 ld1
+39: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+40: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+41: 0+10668 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+42: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+43: 0+1c +0 TLS +GLOBAL DEFAULT +9 gd0
+44: 0+2c +0 TLS +GLOBAL DEFAULT +9 ie0
+45: 0+18698 +0 OBJECT +GLOBAL DEFAULT +12 _SDA2_BASE_

View file

@ -0,0 +1,11 @@
#source: tls32.s
#as: -a32
#ld: -shared -melf32ppc
#objdump: -sj.tdata
#target: powerpc*-*-*
.*: +file format elf32-powerpc
Contents of section \.tdata:
105a8 12345678 23456789 3456789a 456789ab .*
105b8 56789abc 6789abcd 789abcde .*