* ld-powerpc/tlslib.s: Give .__tls_get_addr function type.

* ld-powerpc/tlsexe.d: Update for changed handling of (invalid) ld var
	in dynamic lib.
	* ld-powerpc/tlsexe.g: Likewise.
	* ld-powerpc/tlsexe.r: Likewise.
	* ld-powerpc/tlsexe.t: Likewise.
	* ld-powerpc/tlsexetoc.d: Likewise.
	* ld-powerpc/tlsexetoc.g: Likewise.
	* ld-powerpc/tlsexetoc.r: Likewise.
	* ld-powerpc/tlsexetoc.t: Likewise.
This commit is contained in:
Alan Modra 2003-02-09 04:37:04 +00:00
parent e5096e3f2d
commit ac8b6cc0b0
10 changed files with 307 additions and 236 deletions

View file

@ -1,3 +1,16 @@
2003-02-09 Alan Modra <amodra@bigpond.net.au>
* ld-powerpc/tlslib.s: Give .__tls_get_addr function type.
* ld-powerpc/tlsexe.d: Update for changed handling of (invalid) ld var
in dynamic lib.
* ld-powerpc/tlsexe.g: Likewise.
* ld-powerpc/tlsexe.r: Likewise.
* ld-powerpc/tlsexe.t: Likewise.
* ld-powerpc/tlsexetoc.d: Likewise.
* ld-powerpc/tlsexetoc.g: Likewise.
* ld-powerpc/tlsexetoc.r: Likewise.
* ld-powerpc/tlsexetoc.t: Likewise.
2003-02-05 Alan Modra <amodra@bigpond.net.au>
* ld-powerpc/powerpc.exp (supports_ppc64): New.

View file

@ -8,42 +8,61 @@
Disassembly of section \.text:
0+10000378 <_start>:
10000378: e8 62 80 10 ld r3,-32752\(r2\)
1000037c: 60 00 00 00 nop
10000380: 7c 63 6a 14 add r3,r3,r13
10000384: e8 62 80 18 ld r3,-32744\(r2\)
10000388: 60 00 00 00 nop
1000038c: 7c 63 6a 14 add r3,r3,r13
10000390: 3c 6d 00 00 addis r3,r13,0
10000394: 60 00 00 00 nop
10000398: 38 63 90 38 addi r3,r3,-28616
1000039c: 3c 6d 00 00 addis r3,r13,0
100003a0: 60 00 00 00 nop
100003a4: 38 63 10 00 addi r3,r3,4096
100003a8: 39 23 80 40 addi r9,r3,-32704
100003ac: 3d 23 00 00 addis r9,r3,0
100003b0: 81 49 80 48 lwz r10,-32696\(r9\)
100003b4: e9 22 80 20 ld r9,-32736\(r2\)
100003b8: 7d 49 18 2a ldx r10,r9,r3
100003bc: 3d 2d 00 00 addis r9,r13,0
100003c0: a1 49 90 58 lhz r10,-28584\(r9\)
100003c4: 89 4d 90 60 lbz r10,-28576\(r13\)
100003c8: 3d 2d 00 00 addis r9,r13,0
100003cc: 99 49 90 68 stb r10,-28568\(r9\)
0+10000390 <_start-0x1c>:
10000390: 3d 82 00 00 addis r12,r2,0
10000394: f8 41 00 28 std r2,40\(r1\)
10000398: e9 6c 80 48 ld r11,-32696\(r12\)
1000039c: e8 4c 80 50 ld r2,-32688\(r12\)
100003a0: 7d 69 03 a6 mtctr r11
100003a4: e9 6c 80 58 ld r11,-32680\(r12\)
100003a8: 4e 80 04 20 bctr
0+100003ac <_start>:
100003ac: e8 62 80 20 ld r3,-32736\(r2\)
100003b0: 60 00 00 00 nop
100003b4: 7c 63 6a 14 add r3,r3,r13
100003b8: 38 62 80 08 addi r3,r2,-32760
100003bc: 4b ff ff d5 bl 10000390 <le1\+0x10000328>
100003c0: e8 41 00 28 ld r2,40\(r1\)
100003c4: 3c 6d 00 00 addis r3,r13,0
100003c8: 60 00 00 00 nop
100003cc: 38 63 90 38 addi r3,r3,-28616
100003d0: 3c 6d 00 00 addis r3,r13,0
100003d4: 60 00 00 00 nop
100003d8: 38 63 90 00 addi r3,r3,-28672
100003dc: 3c 6d 00 00 addis r3,r13,0
100003e0: 60 00 00 00 nop
100003e4: 38 63 10 00 addi r3,r3,4096
100003e8: f9 43 80 08 std r10,-32760\(r3\)
100003ec: 3d 23 00 00 addis r9,r3,0
100003f0: 91 49 80 10 stw r10,-32752\(r9\)
100003f4: e9 22 80 08 ld r9,-32760\(r2\)
100003f8: 7d 49 19 2a stdx r10,r9,r3
100003d8: 38 63 10 00 addi r3,r3,4096
100003dc: 39 23 80 40 addi r9,r3,-32704
100003e0: 3d 23 00 00 addis r9,r3,0
100003e4: 81 49 80 48 lwz r10,-32696\(r9\)
100003e8: e9 22 80 28 ld r9,-32728\(r2\)
100003ec: 7d 49 18 2a ldx r10,r9,r3
100003f0: 3d 2d 00 00 addis r9,r13,0
100003f4: a1 49 90 58 lhz r10,-28584\(r9\)
100003f8: 89 4d 90 60 lbz r10,-28576\(r13\)
100003fc: 3d 2d 00 00 addis r9,r13,0
10000400: b1 49 90 58 sth r10,-28584\(r9\)
10000404: e9 4d 90 2a lwa r10,-28632\(r13\)
10000408: 3d 2d 00 00 addis r9,r13,0
1000040c: a9 49 90 30 lha r10,-28624\(r9\)
10000400: 99 49 90 68 stb r10,-28568\(r9\)
10000404: 3c 6d 00 00 addis r3,r13,0
10000408: 60 00 00 00 nop
1000040c: 38 63 90 00 addi r3,r3,-28672
10000410: 3c 6d 00 00 addis r3,r13,0
10000414: 60 00 00 00 nop
10000418: 38 63 10 00 addi r3,r3,4096
1000041c: f9 43 80 08 std r10,-32760\(r3\)
10000420: 3d 23 00 00 addis r9,r3,0
10000424: 91 49 80 10 stw r10,-32752\(r9\)
10000428: e9 22 80 18 ld r9,-32744\(r2\)
1000042c: 7d 49 19 2a stdx r10,r9,r3
10000430: 3d 2d 00 00 addis r9,r13,0
10000434: b1 49 90 58 sth r10,-28584\(r9\)
10000438: e9 4d 90 2a lwa r10,-28632\(r13\)
1000043c: 3d 2d 00 00 addis r9,r13,0
10000440: a9 49 90 30 lha r10,-28624\(r9\)
10000444: e8 41 00 28 ld r2,40\(r1\)
10000448: 3d 82 00 00 addis r12,r2,0
1000044c: e9 6c 80 30 ld r11,-32720\(r12\)
10000450: e8 4c 80 38 ld r2,-32712\(r12\)
10000454: 7d 69 03 a6 mtctr r11
10000458: e9 6c 80 40 ld r11,-32704\(r12\)
1000045c: 4e 80 04 20 bctr
10000460: 60 00 00 00 nop
10000464: 38 00 00 00 li r0,0
10000468: 4b ff ff dc b 10000444 <_start\+0x98>

View file

@ -7,6 +7,6 @@
.*: +file format elf64-powerpc
Contents of section \.got:
10010548 00000000 10018548 ffffffff ffff8018 .*
10010558 00000000 00000000 00000000 00000000 .*
10010568 00000000 00000000 .*
100105f8 00000000 100185f8 00000000 00000000 .*
10010608 00000000 00000000 ffffffff ffff8018 .*
10010618 00000000 00000000 00000000 00000000 .*

View file

@ -1,38 +1,40 @@
#source: tls.s
#source: tlslib.s
#as: -a64
#ld: -shared -melf64ppc
#ld: -melf64ppc
#readelf: -WSsrl
#target: powerpc64*-*-*
There are 20 section headers.*
There are 22 section headers.*
Section Headers:
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
+\[ 1\] \.interp +PROGBITS +0+10000190 0+190 0+11 0+ +A +0 +0 +1
+\[ 2\] \.hash +HASH +0+100001a8 0+1a8 0+3c 04 +A +3 +0 +8
+\[ 3\] \.dynsym +DYNSYM +0+100001e8 0+1e8 0+f0 18 +A +4 +1 +8
+\[ 4\] \.dynstr +STRTAB +0+100002d8 0+2d8 0+51 0+ +A +0 +0 +1
+\[ 5\] \.rela\.dyn +RELA +0+10000330 0+330 0+48 18 +A +3 +0 +8
+\[ 6\] \.text +PROGBITS +0+10000378 0+378 0+98 0+ +AX +0 +0 +4
+\[ 7\] \.data +PROGBITS +0+10010410 0+410 0+ 0+ +WA +0 +0 +1
+\[ 8\] \.branch_lt +PROGBITS +0+10010410 0+410 0+ 0+ +WA +0 +0 +8
+\[ 9\] \.tdata +PROGBITS +0+10010410 0+410 0+38 0+ WAT +0 +0 +8
+\[10\] \.tbss +NOBITS +0+10010448 0+448 0+38 0+ WAT +0 +0 +8
+\[11\] \.dynamic +DYNAMIC +0+10010448 0+448 0+100 10 +WA +4 +0 +8
+\[12\] \.ctors +PROGBITS +0+10010548 0+570 0+ 0+ +W +0 +0 +1
+\[13\] \.dtors +PROGBITS +0+10010548 0+570 0+ 0+ +W +0 +0 +1
+\[14\] \.got +PROGBITS +0+10010548 0+548 0+28 08 +WA +0 +0 +8
+\[15\] \.sbss +PROGBITS +0+10010570 0+570 0+ 0+ +W +0 +0 +1
+\[16\] \.bss +NOBITS +0+10010570 0+570 0+ 0+ +WA +0 +0 +1
+\[17\] \.shstrtab +STRTAB +0+ 0+570 0+8e 0+ +0 +0 +1
+\[18\] \.symtab +SYMTAB +0+ 0+b00 0+408 18 +19 +1b +8
+\[19\] \.strtab +STRTAB +0+ 0+f08 0+7d 0+ +0 +0 +1
+\[ 2\] \.hash +HASH +0+100001a8 0+1a8 0+40 04 +A +3 +0 +8
+\[ 3\] \.dynsym +DYNSYM +0+100001e8 0+1e8 0+108 18 +A +4 +1 +8
+\[ 4\] \.dynstr +STRTAB +0+100002f0 0+2f0 0+51 0+ +A +0 +0 +1
+\[ 5\] \.rela\.dyn +RELA +0+10000348 0+348 0+30 18 +A +3 +0 +8
+\[ 6\] \.rela\.plt +RELA +0+10000378 0+378 0+18 18 +A +3 +11 +8
+\[ 7\] \.text +PROGBITS +0+10000390 0+390 0+dc 0+ +AX +0 +0 +4
+\[ 8\] \.data +PROGBITS +0+10010470 0+470 0+ 0+ +WA +0 +0 +1
+\[ 9\] \.branch_lt +PROGBITS +0+10010470 0+470 0+ 0+ +WA +0 +0 +8
+\[10\] \.tdata +PROGBITS +0+10010470 0+470 0+38 0+ WAT +0 +0 +8
+\[11\] \.tbss +NOBITS +0+100104a8 0+4a8 0+38 0+ WAT +0 +0 +8
+\[12\] \.dynamic +DYNAMIC +0+100104a8 0+4a8 0+150 10 +WA +4 +0 +8
+\[13\] \.ctors +PROGBITS +0+100105f8 0+628 0+ 0+ +W +0 +0 +1
+\[14\] \.dtors +PROGBITS +0+100105f8 0+628 0+ 0+ +W +0 +0 +1
+\[15\] \.got +PROGBITS +0+100105f8 0+5f8 0+30 08 +WA +0 +0 +8
+\[16\] \.sbss +PROGBITS +0+10010628 0+628 0+ 0+ +W +0 +0 +1
+\[17\] \.plt +NOBITS +0+10010628 0+628 0+30 18 +WA +0 +0 +8
+\[18\] \.bss +NOBITS +0+10010658 0+628 0+ 0+ +WA +0 +0 +1
+\[19\] \.shstrtab +STRTAB +0+ 0+628 0+98 0+ +0 +0 +1
+\[20\] \.symtab +SYMTAB +0+ 0+c40 0+450 18 +21 +1d +8
+\[21\] \.strtab +STRTAB +0+ 0+1090 0+8c 0+ +0 +0 +1
#...
Elf file type is EXEC \(Executable file\)
Entry point 0x10000378
Entry point 0x100003ac
There are 6 program headers.*
Program Headers:
@ -40,81 +42,88 @@ Program Headers:
+PHDR +0x0+40 0x0+10000040 0x0+10000040 0x0+150 0x0+150 R E 0x8
+INTERP +0x0+190 0x0+10000190 0x0+10000190 0x0+11 0x0+11 R +0x1
+\[Requesting program interpreter: .*\]
+LOAD +0x0+ 0x0+10000000 0x0+10000000 0x0+410 0x0+410 R E 0x10000
+LOAD +0x0+410 0x0+10010410 0x0+10010410 0x0+160 0x0+160 RW +0x10000
+DYNAMIC +0x0+448 0x0+10010448 0x0+10010448 0x0+100 0x0+100 RW +0x8
+TLS +0x0+410 0x0+10010410 0x0+10010410 0x0+38 0x0+70 R +0x8
+LOAD +0x0+ 0x0+10000000 0x0+10000000 0x0+46c 0x0+46c R E 0x10000
+LOAD +0x0+470 0x0+10010470 0x0+10010470 0x0+1b8 0x0+1e8 RW +0x10000
+DYNAMIC +0x0+4a8 0x0+100104a8 0x0+100104a8 0x0+150 0x0+150 RW +0x8
+TLS +0x0+470 0x0+10010470 0x0+10010470 0x0+38 0x0+70 R +0x8
Section to Segment mapping:
+Segment Sections\.\.\.
+00 +
+0+ +
+01 +\.interp
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.text
+03 +\.tdata \.tbss \.dynamic \.got
+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 .* contains 3 entries:
Relocation section '\.rela\.dyn' at offset .* contains 2 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
0+10010558 +0+200000049 R_PPC64_TPREL64 +0+ gd \+ 0
0+10010560 +0+400000049 R_PPC64_TPREL64 +0+ ld \+ 0
0+10010568 +0+60000004e R_PPC64_DTPREL64 +0+50 ld2 \+ 0
0+10010618 +0+200000049 R_PPC64_TPREL64 +0+ gd \+ 0
0+10010620 +0+70000004e R_PPC64_DTPREL64 +0+50 ld2 \+ 0
Symbol table '\.dynsym' contains 10 entries:
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
0+10010640 +0+300000015 R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
Symbol table '\.dynsym' contains 11 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+1: 0+10010448 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+1: 0+100104a8 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+2: 0+ +0 TLS +GLOBAL DEFAULT +UND gd
+3: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND \.__tls_get_addr
+4: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
+5: 0+10010570 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+6: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
+7: 0+10010570 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+8: 0+10010570 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+9: 0+10010570 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+3: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+4: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
+5: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
+6: 0+10010658 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+7: 0+50 +0 TLS +GLOBAL DEFAULT +11 ld2
+8: 0+10010628 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+9: 0+10010628 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+10: 0+10010658 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
Symbol table '\.symtab' contains 43 entries:
Symbol table '\.symtab' contains 46 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+1: 0+10000190 +0 SECTION LOCAL +DEFAULT +1
+2: 0+100001a8 +0 SECTION LOCAL +DEFAULT +2
+3: 0+100001e8 +0 SECTION LOCAL +DEFAULT +3
+4: 0+100002d8 +0 SECTION LOCAL +DEFAULT +4
+5: 0+10000330 +0 SECTION LOCAL +DEFAULT +5
+4: 0+100002f0 +0 SECTION LOCAL +DEFAULT +4
+5: 0+10000348 +0 SECTION LOCAL +DEFAULT +5
+6: 0+10000378 +0 SECTION LOCAL +DEFAULT +6
+7: 0+10010410 +0 SECTION LOCAL +DEFAULT +7
+8: 0+10010410 +0 SECTION LOCAL +DEFAULT +8
+9: 0+10010410 +0 SECTION LOCAL +DEFAULT +9
+10: 0+10010448 +0 SECTION LOCAL +DEFAULT +10
+11: 0+10010448 +0 SECTION LOCAL +DEFAULT +11
+12: 0+10010548 +0 SECTION LOCAL +DEFAULT +12
+13: 0+10010548 +0 SECTION LOCAL +DEFAULT +13
+14: 0+10010548 +0 SECTION LOCAL +DEFAULT +14
+15: 0+10010570 +0 SECTION LOCAL +DEFAULT +15
+16: 0+10010570 +0 SECTION LOCAL +DEFAULT +16
+17: 0+ +0 SECTION LOCAL +DEFAULT +17
+18: 0+ +0 SECTION LOCAL +DEFAULT +18
+7: 0+10000390 +0 SECTION LOCAL +DEFAULT +7
+8: 0+10010470 +0 SECTION LOCAL +DEFAULT +8
+9: 0+10010470 +0 SECTION LOCAL +DEFAULT +9
+10: 0+10010470 +0 SECTION LOCAL +DEFAULT +10
+11: 0+100104a8 +0 SECTION LOCAL +DEFAULT +11
+12: 0+100104a8 +0 SECTION LOCAL +DEFAULT +12
+13: 0+100105f8 +0 SECTION LOCAL +DEFAULT +13
+14: 0+100105f8 +0 SECTION LOCAL +DEFAULT +14
+15: 0+100105f8 +0 SECTION LOCAL +DEFAULT +15
+16: 0+10010628 +0 SECTION LOCAL +DEFAULT +16
+17: 0+10010628 +0 SECTION LOCAL +DEFAULT +17
+18: 0+10010658 +0 SECTION LOCAL +DEFAULT +18
+19: 0+ +0 SECTION LOCAL +DEFAULT +19
+20: 0+ +0 TLS +LOCAL +DEFAULT +9 gd4
+21: 0+8 +0 TLS +LOCAL +DEFAULT +9 ld4
+22: 0+10 +0 TLS +LOCAL +DEFAULT +9 ld5
+23: 0+18 +0 TLS +LOCAL +DEFAULT +9 ld6
+24: 0+20 +0 TLS +LOCAL +DEFAULT +9 ie4
+25: 0+28 +0 TLS +LOCAL +DEFAULT +9 le4
+26: 0+30 +0 TLS +LOCAL +DEFAULT +9 le5
+27: 0+10010448 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+28: 0+ +0 TLS +GLOBAL DEFAULT +UND gd
+29: 0+60 +0 TLS +GLOBAL DEFAULT +10 le0
+30: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND \.__tls_get_addr
+31: 0+40 +0 TLS +GLOBAL DEFAULT +10 ld0
+32: 0+68 +0 TLS +GLOBAL DEFAULT +10 le1
+33: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
+34: 0+10000378 +0 NOTYPE +GLOBAL DEFAULT +6 _start
+35: 0+10010570 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+36: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
+37: 0+48 +0 TLS +GLOBAL DEFAULT +10 ld1
+38: 0+10010570 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+39: 0+10010570 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+40: 0+10010570 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+41: 0+38 +0 TLS +GLOBAL DEFAULT +10 gd0
+42: 0+58 +0 TLS +GLOBAL DEFAULT +10 ie0
+20: 0+ +0 SECTION LOCAL +DEFAULT +20
+21: 0+ +0 SECTION LOCAL +DEFAULT +21
+22: 0+ +0 TLS +LOCAL +DEFAULT +10 gd4
+23: 0+8 +0 TLS +LOCAL +DEFAULT +10 ld4
+24: 0+10 +0 TLS +LOCAL +DEFAULT +10 ld5
+25: 0+18 +0 TLS +LOCAL +DEFAULT +10 ld6
+26: 0+20 +0 TLS +LOCAL +DEFAULT +10 ie4
+27: 0+28 +0 TLS +LOCAL +DEFAULT +10 le4
+28: 0+30 +0 TLS +LOCAL +DEFAULT +10 le5
+29: 0+100104a8 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+30: 0+ +0 TLS +GLOBAL DEFAULT +UND gd
+31: 0+60 +0 TLS +GLOBAL DEFAULT +11 le0
+32: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+33: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
+34: 0+40 +0 TLS +GLOBAL DEFAULT +11 ld0
+35: 0+68 +0 TLS +GLOBAL DEFAULT +11 le1
+36: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
+37: 0+100003ac +0 NOTYPE +GLOBAL DEFAULT +7 _start
+38: 0+10010658 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+39: 0+50 +0 TLS +GLOBAL DEFAULT +11 ld2
+40: 0+48 +0 TLS +GLOBAL DEFAULT +11 ld1
+41: 0+10010628 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+42: 0+10010628 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+43: 0+10010658 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+44: 0+38 +0 TLS +GLOBAL DEFAULT +11 gd0
+45: 0+58 +0 TLS +GLOBAL DEFAULT +11 ie0

View file

@ -7,7 +7,7 @@
.*: +file format elf64-powerpc
Contents of section \.tdata:
10010410 12345678 9abcdef0 23456789 abcdef01 .*
10010420 3456789a bcdef012 456789ab cdef0123 .*
10010430 56789abc def01234 6789abcd ef012345 .*
10010440 789abcde f0123456 .*
10010470 12345678 9abcdef0 23456789 abcdef01 .*
10010480 3456789a bcdef012 456789ab cdef0123 .*
10010490 56789abc def01234 6789abcd ef012345 .*
100104a0 789abcde f0123456 .*

View file

@ -8,26 +8,45 @@
Disassembly of section \.text:
0+10000338 <_start>:
10000338: e8 62 80 08 ld r3,-32760\(r2\)
1000033c: 60 00 00 00 nop
10000340: 7c 63 6a 14 add r3,r3,r13
10000344: e8 62 80 18 ld r3,-32744\(r2\)
10000348: 60 00 00 00 nop
1000034c: 7c 63 6a 14 add r3,r3,r13
10000350: 3c 6d 00 00 addis r3,r13,0
10000354: 60 00 00 00 nop
10000358: 38 63 91 40 addi r3,r3,-28352
1000035c: 3c 6d 00 00 addis r3,r13,0
10000360: 60 00 00 00 nop
10000364: 38 63 10 00 addi r3,r3,4096
10000368: 39 23 80 40 addi r9,r3,-32704
1000036c: 3d 23 00 00 addis r9,r3,0
10000370: 81 49 80 48 lwz r10,-32696\(r9\)
10000374: 3d 2d 00 00 addis r9,r13,0
10000378: 7d 49 18 2a ldx r10,r9,r3
1000037c: 3d 2d 00 00 addis r9,r13,0
10000380: a1 49 91 88 lhz r10,-28280\(r9\)
10000384: 89 4d 90 60 lbz r10,-28576\(r13\)
10000388: 3d 2d 00 00 addis r9,r13,0
1000038c: 99 49 90 68 stb r10,-28568\(r9\)
0+10000370 <_start-0x1c>:
10000370: 3d 82 00 00 addis r12,r2,0
10000374: f8 41 00 28 std r2,40\(r1\)
10000378: e9 6c 80 70 ld r11,-32656\(r12\)
1000037c: e8 4c 80 78 ld r2,-32648\(r12\)
10000380: 7d 69 03 a6 mtctr r11
10000384: e9 6c 80 80 ld r11,-32640\(r12\)
10000388: 4e 80 04 20 bctr
0+1000038c <_start>:
1000038c: e8 62 80 08 ld r3,-32760\(r2\)
10000390: 60 00 00 00 nop
10000394: 7c 63 6a 14 add r3,r3,r13
10000398: 38 62 80 18 addi r3,r2,-32744
1000039c: 4b ff ff d5 bl 10000370 <le1\+0x10000308>
100003a0: e8 41 00 28 ld r2,40\(r1\)
100003a4: 3c 6d 00 00 addis r3,r13,0
100003a8: 60 00 00 00 nop
100003ac: 38 63 91 90 addi r3,r3,-28272
100003b0: 3c 6d 00 00 addis r3,r13,0
100003b4: 60 00 00 00 nop
100003b8: 38 63 10 00 addi r3,r3,4096
100003bc: 39 23 80 40 addi r9,r3,-32704
100003c0: 3d 23 00 00 addis r9,r3,0
100003c4: 81 49 80 48 lwz r10,-32696\(r9\)
100003c8: 3d 2d 00 00 addis r9,r13,0
100003cc: 7d 49 18 2a ldx r10,r9,r3
100003d0: 3d 2d 00 00 addis r9,r13,0
100003d4: a1 49 91 d8 lhz r10,-28200\(r9\)
100003d8: 89 4d 90 60 lbz r10,-28576\(r13\)
100003dc: 3d 2d 00 00 addis r9,r13,0
100003e0: 99 49 90 68 stb r10,-28568\(r9\)
100003e4: e8 41 00 28 ld r2,40\(r1\)
100003e8: 3d 82 00 00 addis r12,r2,0
100003ec: e9 6c 80 58 ld r11,-32680\(r12\)
100003f0: e8 4c 80 60 ld r2,-32672\(r12\)
100003f4: 7d 69 03 a6 mtctr r11
100003f8: e9 6c 80 68 ld r11,-32664\(r12\)
100003fc: 4e 80 04 20 bctr
10000400: 60 00 00 00 nop
10000404: 38 00 00 00 li r0,0
10000408: 4b ff ff dc b 100003e4 <_start\+0x58>

View file

@ -7,8 +7,8 @@
.*: +file format elf64-powerpc
Contents of section \.toc:
100104d0 00000000 00000000 00000000 00000000 .*
100104e0 00000000 00000000 00000000 00000000 .*
100104f0 00000000 00000001 00000000 00000000 .*
10010500 00000000 00000001 00000000 00000000 .*
10010510 ffffffff ffff8050 00000000 00000000 .*
100105a0 00000000 00000000 00000000 00000000 .*
100105b0 00000000 00000000 00000000 00000000 .*
100105c0 00000000 00000001 00000000 00000000 .*
100105d0 00000000 00000001 00000000 00000000 .*
100105e0 ffffffff ffff8050 00000000 00000000 .*

View file

@ -1,39 +1,41 @@
#source: tlslib.s
#source: tlstoc.s
#as: -a64
#ld: -shared -melf64ppc
#ld: -melf64ppc
#readelf: -WSsrl
#target: powerpc64*-*-*
There are 21 section headers.*
There are 23 section headers.*
Section Headers:
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
+\[ 1\] .interp +PROGBITS +0+10000190 0+190 0+11 0+ +A +0 +0 +1
+\[ 2\] .hash +HASH +0+100001a8 0+1a8 0+38 04 +A +3 +0 +8
+\[ 3\] .dynsym +DYNSYM +0+100001e0 0+1e0 0+d8 18 +A +4 +1 +8
+\[ 4\] .dynstr +STRTAB +0+100002b8 0+2b8 0+4d 0+ +A +0 +0 +1
+\[ 5\] .rela.dyn +RELA +0+10000308 0+308 0+30 18 +A +3 +0 +8
+\[ 6\] .text +PROGBITS +0+10000338 0+338 0+58 0+ +AX +0 +0 +4
+\[ 7\] .data +PROGBITS +0+10010390 0+390 0+ 0+ +WA +0 +0 +1
+\[ 8\] .branch_lt +PROGBITS +0+10010390 0+390 0+ 0+ +WA +0 +0 +8
+\[ 9\] .tdata +PROGBITS +0+10010390 0+390 0+38 0+ WAT +0 +0 +8
+\[10\] .tbss +NOBITS +0+100103c8 0+3c8 0+38 0+ WAT +0 +0 +8
+\[11\] .dynamic +DYNAMIC +0+100103c8 0+3c8 0+100 10 +WA +4 +0 +8
+\[12\] .ctors +PROGBITS +0+100104c8 0+520 0+ 0+ +W +0 +0 +1
+\[13\] .dtors +PROGBITS +0+100104c8 0+520 0+ 0+ +W +0 +0 +1
+\[14\] .got +PROGBITS +0+100104c8 0+4c8 0+8 08 +WA +0 +0 +8
+\[15\] .toc +PROGBITS +0+100104d0 0+4d0 0+50 0+ +WA +0 +0 +1
+\[16\] .sbss +PROGBITS +0+10010520 0+520 0+ 0+ +W +0 +0 +1
+\[17\] .bss +NOBITS +0+10010520 0+520 0+ 0+ +WA +0 +0 +1
+\[18\] .shstrtab +STRTAB +0+ 0+520 0+93 0+ +0 +0 +1
+\[19\] .symtab +SYMTAB +0+ 0+af8 0+438 18 +20 +1d +8
+\[20\] .strtab +STRTAB +0+ 0+f30 0+83 0+ +0 +0 +1
+\[ 1\] \.interp +PROGBITS +0+10000190 0+190 0+11 0+ +A +0 +0 +1
+\[ 2\] \.hash +HASH +0+100001a8 0+1a8 0+3c 04 +A +3 +0 +8
+\[ 3\] \.dynsym +DYNSYM +0+100001e8 0+1e8 0+f0 18 +A +4 +1 +8
+\[ 4\] \.dynstr +STRTAB +0+100002d8 0+2d8 0+4d 0+ +A +0 +0 +1
+\[ 5\] \.rela\.dyn +RELA +0+10000328 0+328 0+30 18 +A +3 +0 +8
+\[ 6\] \.rela\.plt +RELA +0+10000358 0+358 0+18 18 +A +3 +12 +8
+\[ 7\] \.text +PROGBITS +0+10000370 0+370 0+9c 0+ +AX +0 +0 +4
+\[ 8\] \.data +PROGBITS +0+10010410 0+410 0+ 0+ +WA +0 +0 +1
+\[ 9\] \.branch_lt +PROGBITS +0+10010410 0+410 0+ 0+ +WA +0 +0 +8
+\[10\] \.tdata +PROGBITS +0+10010410 0+410 0+38 0+ WAT +0 +0 +8
+\[11\] \.tbss +NOBITS +0+10010448 0+448 0+38 0+ WAT +0 +0 +8
+\[12\] \.dynamic +DYNAMIC +0+10010448 0+448 0+150 10 +WA +4 +0 +8
+\[13\] \.ctors +PROGBITS +0+10010598 0+5f0 0+ 0+ +W +0 +0 +1
+\[14\] \.dtors +PROGBITS +0+10010598 0+5f0 0+ 0+ +W +0 +0 +1
+\[15\] \.got +PROGBITS +0+10010598 0+598 0+8 08 +WA +0 +0 +8
+\[16\] \.toc +PROGBITS +0+100105a0 0+5a0 0+50 0+ +WA +0 +0 +1
+\[17\] \.sbss +PROGBITS +0+100105f0 0+5f0 0+ 0+ +W +0 +0 +1
+\[18\] \.plt +NOBITS +0+100105f0 0+5f0 0+30 18 +WA +0 +0 +8
+\[19\] \.bss +NOBITS +0+10010620 0+5f0 0+ 0+ +WA +0 +0 +1
+\[20\] \.shstrtab +STRTAB +0+ 0+5f0 0+9d 0+ +0 +0 +1
+\[21\] \.symtab +SYMTAB +0+ 0+c50 0+480 18 +22 +1f +8
+\[22\] \.strtab +STRTAB +0+ 0+10d0 0+92 0+ +0 +0 +1
#...
Elf file type is EXEC \(Executable file\)
Entry point 0x10000338
Entry point 0x1000038c
There are 6 program headers.*
Program Headers:
@ -41,81 +43,89 @@ Program Headers:
+PHDR +0x0+40 0x0+10000040 0x0+10000040 0x0+150 0x0+150 R E 0x8
+INTERP +0x0+190 0x0+10000190 0x0+10000190 0x0+11 0x0+11 R +0x1
+\[Requesting program interpreter: .*\]
+LOAD +0x0+ 0x0+10000000 0x0+10000000 0x0+390 0x0+390 R E 0x10000
+LOAD +0x0+390 0x0+10010390 0x0+10010390 0x0+190 0x0+190 RW +0x10000
+DYNAMIC +0x0+3c8 0x0+100103c8 0x0+100103c8 0x0+100 0x0+100 RW +0x8
+TLS +0x0+390 0x0+10010390 0x0+10010390 0x0+38 0x0+70 R +0x8
+LOAD +0x0+ 0x0+10000000 0x0+10000000 0x0+40c 0x0+40c R E 0x10000
+LOAD +0x0+410 0x0+10010410 0x0+10010410 0x0+1e0 0x0+210 RW +0x10000
+DYNAMIC +0x0+448 0x0+10010448 0x0+10010448 0x0+150 0x0+150 RW +0x8
+TLS +0x0+410 0x0+10010410 0x0+10010410 0x0+38 0x0+70 R +0x8
Section to Segment mapping:
+Segment Sections\.\.\.
+00 +
+0+ +
+01 +\.interp
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.text
+03 +\.tdata \.tbss \.dynamic \.got \.toc
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+03 +\.tdata \.tbss \.dynamic \.got \.toc \.plt
+04 +\.tbss \.dynamic
+05 +\.tdata \.tbss
Relocation section '\.rela\.dyn' at offset .* contains 2 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
0+100104d0 +0+200000049 R_PPC64_TPREL64 +0+ gd \+ 0
0+100104e0 +0+400000049 R_PPC64_TPREL64 +0+ ld \+ 0
0+100105a0 +0+200000049 R_PPC64_TPREL64 +0+ gd \+ 0
0+100105b0 +0+500000044 R_PPC64_DTPMOD64 +0+ ld \+ 0
Symbol table '\.dynsym' contains 9 entries:
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
0+10010608 +0+300000015 R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
Symbol table '\.dynsym' contains 10 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+1: 0+100103c8 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+1: 0+10010448 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+2: 0+ +0 TLS +GLOBAL DEFAULT +UND gd
+3: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND \.__tls_get_addr
+4: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
+5: 0+10010520 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+6: 0+10010520 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+7: 0+10010520 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+8: 0+10010520 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+3: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+4: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
+5: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
+6: 0+10010620 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+7: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+8: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+9: 0+10010620 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
Symbol table '\.symtab' contains 45 entries:
Symbol table '\.symtab' contains 48 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+1: 0+10000190 +0 SECTION LOCAL +DEFAULT +1
+2: 0+100001a8 +0 SECTION LOCAL +DEFAULT +2
+3: 0+100001e0 +0 SECTION LOCAL +DEFAULT +3
+4: 0+100002b8 +0 SECTION LOCAL +DEFAULT +4
+5: 0+10000308 +0 SECTION LOCAL +DEFAULT +5
+6: 0+10000338 +0 SECTION LOCAL +DEFAULT +6
+7: 0+10010390 +0 SECTION LOCAL +DEFAULT +7
+8: 0+10010390 +0 SECTION LOCAL +DEFAULT +8
+9: 0+10010390 +0 SECTION LOCAL +DEFAULT +9
+10: 0+100103c8 +0 SECTION LOCAL +DEFAULT +10
+11: 0+100103c8 +0 SECTION LOCAL +DEFAULT +11
+12: 0+100104c8 +0 SECTION LOCAL +DEFAULT +12
+13: 0+100104c8 +0 SECTION LOCAL +DEFAULT +13
+14: 0+100104c8 +0 SECTION LOCAL +DEFAULT +14
+15: 0+100104d0 +0 SECTION LOCAL +DEFAULT +15
+16: 0+10010520 +0 SECTION LOCAL +DEFAULT +16
+17: 0+10010520 +0 SECTION LOCAL +DEFAULT +17
+18: 0+ +0 SECTION LOCAL +DEFAULT +18
+19: 0+ +0 SECTION LOCAL +DEFAULT +19
+3: 0+100001e8 +0 SECTION LOCAL +DEFAULT +3
+4: 0+100002d8 +0 SECTION LOCAL +DEFAULT +4
+5: 0+10000328 +0 SECTION LOCAL +DEFAULT +5
+6: 0+10000358 +0 SECTION LOCAL +DEFAULT +6
+7: 0+10000370 +0 SECTION LOCAL +DEFAULT +7
+8: 0+10010410 +0 SECTION LOCAL +DEFAULT +8
+9: 0+10010410 +0 SECTION LOCAL +DEFAULT +9
+10: 0+10010410 +0 SECTION LOCAL +DEFAULT +10
+11: 0+10010448 +0 SECTION LOCAL +DEFAULT +11
+12: 0+10010448 +0 SECTION LOCAL +DEFAULT +12
+13: 0+10010598 +0 SECTION LOCAL +DEFAULT +13
+14: 0+10010598 +0 SECTION LOCAL +DEFAULT +14
+15: 0+10010598 +0 SECTION LOCAL +DEFAULT +15
+16: 0+100105a0 +0 SECTION LOCAL +DEFAULT +16
+17: 0+100105f0 +0 SECTION LOCAL +DEFAULT +17
+18: 0+100105f0 +0 SECTION LOCAL +DEFAULT +18
+19: 0+10010620 +0 SECTION LOCAL +DEFAULT +19
+20: 0+ +0 SECTION LOCAL +DEFAULT +20
+21: 0+ +0 TLS +LOCAL +DEFAULT +9 gd4
+22: 0+8 +0 TLS +LOCAL +DEFAULT +9 ld4
+23: 0+10 +0 TLS +LOCAL +DEFAULT +9 ld5
+24: 0+18 +0 TLS +LOCAL +DEFAULT +9 ld6
+25: 0+20 +0 TLS +LOCAL +DEFAULT +9 ie4
+26: 0+28 +0 TLS +LOCAL +DEFAULT +9 le4
+27: 0+30 +0 TLS +LOCAL +DEFAULT +9 le5
+28: 0+10010518 +0 NOTYPE +LOCAL +DEFAULT +15 \.Lie0
+29: 0+100103c8 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+30: 0+ +0 TLS +GLOBAL DEFAULT +UND gd
+31: 0+60 +0 TLS +GLOBAL DEFAULT +10 le0
+32: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND \.__tls_get_addr
+33: 0+40 +0 TLS +GLOBAL DEFAULT +10 ld0
+34: 0+68 +0 TLS +GLOBAL DEFAULT +10 le1
+35: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
+36: 0+10000338 +0 NOTYPE +GLOBAL DEFAULT +6 _start
+37: 0+10010520 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+38: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
+39: 0+48 +0 TLS +GLOBAL DEFAULT +10 ld1
+40: 0+10010520 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+41: 0+10010520 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+42: 0+10010520 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+43: 0+38 +0 TLS +GLOBAL DEFAULT +10 gd0
+44: 0+58 +0 TLS +GLOBAL DEFAULT +10 ie0
+21: 0+ +0 SECTION LOCAL +DEFAULT +21
+22: 0+ +0 SECTION LOCAL +DEFAULT +22
+23: 0+ +0 TLS +LOCAL +DEFAULT +10 gd4
+24: 0+8 +0 TLS +LOCAL +DEFAULT +10 ld4
+25: 0+10 +0 TLS +LOCAL +DEFAULT +10 ld5
+26: 0+18 +0 TLS +LOCAL +DEFAULT +10 ld6
+27: 0+20 +0 TLS +LOCAL +DEFAULT +10 ie4
+28: 0+28 +0 TLS +LOCAL +DEFAULT +10 le4
+29: 0+30 +0 TLS +LOCAL +DEFAULT +10 le5
+30: 0+100105e8 +0 NOTYPE +LOCAL +DEFAULT +16 \.Lie0
+31: 0+10010448 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+32: 0+ +0 TLS +GLOBAL DEFAULT +UND gd
+33: 0+60 +0 TLS +GLOBAL DEFAULT +11 le0
+34: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+35: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
+36: 0+40 +0 TLS +GLOBAL DEFAULT +11 ld0
+37: 0+68 +0 TLS +GLOBAL DEFAULT +11 le1
+38: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
+39: 0+1000038c +0 NOTYPE +GLOBAL DEFAULT +7 _start
+40: 0+10010620 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+41: 0+50 +0 TLS +GLOBAL DEFAULT +11 ld2
+42: 0+48 +0 TLS +GLOBAL DEFAULT +11 ld1
+43: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+44: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+45: 0+10010620 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+46: 0+38 +0 TLS +GLOBAL DEFAULT +11 gd0
+47: 0+58 +0 TLS +GLOBAL DEFAULT +11 ie0

View file

@ -7,7 +7,7 @@
.*: +file format elf64-powerpc
Contents of section \.tdata:
10010390 12345678 9abcdef0 23456789 abcdef01 .*
100103a0 3456789a bcdef012 456789ab cdef0123 .*
100103b0 56789abc def01234 6789abcd ef012345 .*
100103c0 789abcde f0123456 .*
10010410 12345678 9abcdef0 23456789 abcdef01 .*
10010420 3456789a bcdef012 456789ab cdef0123 .*
10010430 56789abc def01234 6789abcd ef012345 .*
10010440 789abcde f0123456 .*

View file

@ -1,4 +1,5 @@
.global .__tls_get_addr,__tls_get_addr,gd,ld
.type .__tls_get_addr,@function
.section ".opd","aw",@progbits
__tls_get_addr: