OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/gnu-src/binutils-2.18.50/ld/testsuite/ld-powerpc
    from Rev 38 to Rev 156
    Reverse comparison

Rev 38 → Rev 156

/sdadyn.s
0,0 → 1,3
.globl _start
_start:
lwz 3,lib_var@sda21(0)
/tlsexe.d
0,0 → 1,75
#source: tls.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
.* <_start-0x18>:
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 48 ld r11,-32696\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 58 ld r11,-32680\(r2\)
.* e8 42 80 50 ld r2,-32688\(r2\)
.* 4e 80 04 20 bctr
 
.* <_start>:
.* e8 62 80 10 ld r3,-32752\(r2\)
.* 60 00 00 00 nop
.* 7c 63 6a 14 add r3,r3,r13
.* 38 62 80 18 addi r3,r2,-32744
.* 4b ff ff d9 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 90 38 addi r3,r3,-28616
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 10 00 addi r3,r3,4096
.* 39 23 80 40 addi r9,r3,-32704
.* 3d 23 00 00 addis r9,r3,0
.* 81 49 80 48 lwz r10,-32696\(r9\)
.* e9 22 80 28 ld r9,-32728\(r2\)
.* 7d 49 18 2a ldx r10,r9,r3
.* 3d 2d 00 00 addis r9,r13,0
.* a1 49 90 58 lhz r10,-28584\(r9\)
.* 89 4d 90 60 lbz r10,-28576\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 90 68 stb r10,-28568\(r9\)
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 90 00 addi r3,r3,-28672
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 10 00 addi r3,r3,4096
.* f9 43 80 08 std r10,-32760\(r3\)
.* 3d 23 00 00 addis r9,r3,0
.* 91 49 80 10 stw r10,-32752\(r9\)
.* e9 22 80 08 ld r9,-32760\(r2\)
.* 7d 49 19 2a stdx r10,r9,r3
.* 3d 2d 00 00 addis r9,r13,0
.* b1 49 90 58 sth r10,-28584\(r9\)
.* e9 4d 90 2a lwa r10,-28632\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* a9 49 90 30 lha r10,-28624\(r9\)
.* 00 00 00 00 .*
.* 00 01 01 f0 .*
.* 7d 88 02 a6 mflr r12
.* 42 9f 00 05 bcl- 20,4\*cr7\+so,.*
.* 7d 68 02 a6 mflr r11
.* e8 4b ff f0 ld r2,-16\(r11\)
.* 7d 88 03 a6 mtlr r12
.* 7d 82 5a 14 add r12,r2,r11
.* e9 6c 00 00 ld r11,0\(r12\)
.* e8 4c 00 08 ld r2,8\(r12\)
.* 7d 69 03 a6 mtctr r11
.* e9 6c 00 10 ld r11,16\(r12\)
.* 4e 80 04 20 bctr
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 38 00 00 00 li r0,0
.* 4b ff ff c4 b .*
/tlsexe.g
0,0 → 1,12
#source: tls.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
.* 00000000 100185c8 ffffffff ffff8018 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
/symtocbase.d
0,0 → 1,24
#source: symtocbase-1.s
#source: symtocbase-2.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -dj.data
#target: powerpc64*-*-*
 
.*: file format elf64-powerpc
 
Disassembly of section \.data:
 
.* <i>:
\.\.\.
.*: 00 02 80 00 \.long 0x28000
.*: 00 00 00 00 \.long 0x0
.*: 00 02 80 00 \.long 0x28000
.*: 00 00 00 00 \.long 0x0
.*: 00 03 80 00 \.long 0x38000
.*: 00 00 00 00 \.long 0x0
.*: 00 03 80 00 \.long 0x38000
.*: 00 00 00 00 \.long 0x0
.*: 00 02 80 00 \.long 0x28000
.*: 00 00 00 00 \.long 0x0
.*: 00 03 80 00 \.long 0x38000
/tlsexetoc.d
0,0 → 1,59
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
.* <_start-0x18>:
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 70 ld r11,-32656\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 80 ld r11,-32640\(r2\)
.* e8 42 80 78 ld r2,-32648\(r2\)
.* 4e 80 04 20 bctr
 
.* <_start>:
.* 38 62 80 08 addi r3,r2,-32760
.* 4b ff ff e5 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 18 addi r3,r2,-32744
.* 4b ff ff d9 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 90 38 addi r3,r3,-28616
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 10 00 addi r3,r3,4096
.* 39 23 80 40 addi r9,r3,-32704
.* 3d 23 00 00 addis r9,r3,0
.* 81 49 80 48 lwz r10,-32696\(r9\)
.* e9 22 80 48 ld r9,-32696\(r2\)
.* 7d 49 18 2a ldx r10,r9,r3
.* 3d 2d 00 00 addis r9,r13,0
.* a1 49 90 58 lhz r10,-28584\(r9\)
.* 89 4d 90 60 lbz r10,-28576\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 90 68 stb r10,-28568\(r9\)
.* 00 00 00 00 .*
.* 00 01 02 18 .*
.* 7d 88 02 a6 mflr r12
.* 42 9f 00 05 bcl- 20,4\*cr7\+so,.*
.* 7d 68 02 a6 mflr r11
.* e8 4b ff f0 ld r2,-16\(r11\)
.* 7d 88 03 a6 mtlr r12
.* 7d 82 5a 14 add r12,r2,r11
.* e9 6c 00 00 ld r11,0\(r12\)
.* e8 4c 00 08 ld r2,8\(r12\)
.* 7d 69 03 a6 mtctr r11
.* e9 6c 00 10 ld r11,16\(r12\)
.* 4e 80 04 20 bctr
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 38 00 00 00 li r0,0
.* 4b ff ff c4 b .*
/vxworks1-lib.dd
0,0 → 1,56
 
.*: file format .*
 
Disassembly of section \.plt:
 
00080800 <_PROCEDURE_LINKAGE_TABLE_>:
80800: 81 9e 00 08 lwz r12,8\(r30\)
80804: 7d 89 03 a6 mtctr r12
80808: 81 9e 00 04 lwz r12,4\(r30\)
8080c: 4e 80 04 20 bctr
80810: 60 00 00 00 nop
80814: 60 00 00 00 nop
80818: 60 00 00 00 nop
8081c: 60 00 00 00 nop
80820: 3d 9e 00 00 addis r12,r30,0
80824: 81 8c 00 0c lwz r12,12\(r12\)
80828: 7d 89 03 a6 mtctr r12
8082c: 4e 80 04 20 bctr
80830: 39 60 00 00 li r11,0
80834: 4b ff ff cc b 80800 <_PROCEDURE_LINKAGE_TABLE_>
80838: 60 00 00 00 nop
8083c: 60 00 00 00 nop
80840: 3d 9e 00 00 addis r12,r30,0
80844: 81 8c 00 10 lwz r12,16\(r12\)
80848: 7d 89 03 a6 mtctr r12
8084c: 4e 80 04 20 bctr
80850: 39 60 00 01 li r11,1
80854: 4b ff ff ac b 80800 <_PROCEDURE_LINKAGE_TABLE_>
80858: 60 00 00 00 nop
8085c: 60 00 00 00 nop
Disassembly of section \.text:
 
00080c00 <foo>:
80c00: 94 21 ff e8 stwu r1,-24\(r1\)
80c04: 7c 08 02 a6 mflr r0
80c08: 90 01 00 1c stw r0,28\(r1\)
80c0c: 3f c0 00 00 lis r30,0
80c10: 83 de 00 00 lwz r30,0\(r30\)
80c14: 83 de 00 00 lwz r30,0\(r30\)
80c18: 80 3e 00 14 lwz r1,20\(r30\)
80c1c: 80 01 00 00 lwz r0,0\(r1\)
80c20: 38 00 00 01 li r0,1
80c24: 90 01 00 00 stw r0,0\(r1\)
80c28: 48 00 00 1d bl 80c44 <slocal>
80c2c: 4b ff fc 15 bl 80840 <_PROCEDURE_LINKAGE_TABLE_\+0x40>
80c30: 4b ff fb f1 bl 80820 <_PROCEDURE_LINKAGE_TABLE_\+0x20>
80c34: 80 01 00 1c lwz r0,28\(r1\)
80c38: 7c 08 03 a6 mtlr r0
80c3c: 38 21 00 18 addi r1,r1,24
80c40: 4e 80 00 20 blr
 
00080c44 <slocal>:
80c44: 4e 80 00 20 blr
 
00080c48 <sglobal>:
80c48: 4e 80 00 20 blr
/tlsexetoc.g
0,0 → 1,15
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
.* 00000000 10018568 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000001 .*
.* 00000000 00000000 00000000 00000001 .*
.* 00000000 00000000 ffffffff ffff8050 .*
.* 00000000 00000000 .*
/attr-gnu-4-0.s
0,0 → 1,15
.gnu_attribute 4,0
/attr-gnu-4-10.d
0,0 → 1,10
#source: attr-gnu-4-1.s
#source: attr-gnu-4-0.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Hard float
/attr-gnu-4-2.s
0,0 → 1,10
.gnu_attribute 4,2
/plt1.d
0,0 → 1,20
#source: plt1.s
#as: -a32
#objdump: -dr
#target: powerpc*-*-*
 
.*: file format elf32-powerpc
 
Disassembly of section .text:
 
0+ <_start>:
0: 42 9f 00 05 bcl- 20,4\*cr7\+so,4 .*
4: 7f c8 02 a6 mflr r30
8: 3f de 00 00 addis r30,r30,0
a: R_PPC_REL16_HA _GLOBAL_OFFSET_TABLE_\+0x6
c: 3b de 00 0a addi r30,r30,10
e: R_PPC_REL16_LO _GLOBAL_OFFSET_TABLE_\+0xa
10: 48 00 00 01 bl 10 .*
10: R_PPC_PLTREL24 _exit
14: 48 00 00 00 b 14 .*
14: R_PPC_REL24 _start
/attr-gnu-4-12.d
0,0 → 1,6
#source: attr-gnu-4-1.s
#source: attr-gnu-4-2.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses hard float, .* uses soft float
#target: powerpc*-*-*
/tlsexe.r
0,0 → 1,113
#source: tls.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#readelf: -WSsrl
#target: powerpc64*-*-*
 
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
 
Section Headers:
+\[Nr\] Name +Type +Address +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]+\] \.rela\.dyn +.*
+\[[ 0-9]+\] \.rela\.plt +.*
+\[[ 0-9]+\] \.text +PROGBITS .* 0+f8 0+ +AX +0 +0 +8
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic +DYNAMIC .* 0+150 10 +WA +4 +0 +8
+\[[ 0-9]+\] \.branch_lt + PROGBITS .* 0+ 0+ +WA +0 +0 +8
+\[[ 0-9]+\] \.got +PROGBITS .* 0+30 08 +WA +0 +0 +8
+\[[ 0-9]+\] \.plt +.*
+\[[ 0-9]+\] \.shstrtab +.*
+\[[ 0-9]+\] \.symtab +.*
+\[[ 0-9]+\] \.strtab +.*
#...
 
Elf file type is EXEC \(Executable file\)
Entry point .*
There are [0-9]+ program headers, starting at offset [0-9]+
 
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+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 .* R E 0x10000
+LOAD .* RW +0x10000
+DYNAMIC .* RW +0x8
+TLS .* 0x0+38 0x0+70 R +0x8
 
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +
+01 +\.interp
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+03 +\.tdata \.dynamic \.got \.plt
+04 +\.dynamic
+05 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset .* contains 3 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_TPREL64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ ld \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+50 ld2 \+ 0
 
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* TLS +GLOBAL DEFAULT +UND gd
.* FUNC +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +UND ld
.* TLS +GLOBAL DEFAULT +9 ld2
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +1
.* SECTION LOCAL +DEFAULT +2
.* SECTION LOCAL +DEFAULT +3
.* SECTION LOCAL +DEFAULT +4
.* SECTION LOCAL +DEFAULT +5
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* SECTION LOCAL +DEFAULT +8
.* SECTION LOCAL +DEFAULT +9
.* SECTION LOCAL +DEFAULT +10
.* SECTION LOCAL +DEFAULT +11
.* SECTION LOCAL +DEFAULT +12
.* SECTION LOCAL +DEFAULT +13
.* TLS +LOCAL +DEFAULT +8 gd4
.* TLS +LOCAL +DEFAULT +8 ld4
.* TLS +LOCAL +DEFAULT +8 ld5
.* TLS +LOCAL +DEFAULT +8 ld6
.* TLS +LOCAL +DEFAULT +8 ie4
.* TLS +LOCAL +DEFAULT +8 le4
.* TLS +LOCAL +DEFAULT +8 le5
.* OBJECT +LOCAL +HIDDEN +10 _DYNAMIC
.* FUNC +LOCAL +DEFAULT +UND \.__tls_get_addr
.* GLOBAL DEFAULT +UND gd
.* GLOBAL DEFAULT +9 le0
.* GLOBAL DEFAULT +UND __tls_get_addr
.* GLOBAL DEFAULT +9 ld0
.* GLOBAL DEFAULT +9 le1
.* GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +7 _start
.* TLS +GLOBAL DEFAULT +9 ld2
.* TLS +GLOBAL DEFAULT +9 ld1
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
.* TLS +GLOBAL DEFAULT +9 gd0
.* TLS +GLOBAL DEFAULT +9 ie0
/attr-gnu-4-31.d
0,0 → 1,6
#source: attr-gnu-4-3.s
#source: attr-gnu-4-1.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses unknown floating point ABI 3
#target: powerpc*-*-*
/attr-gnu-8-2.s
0,0 → 1,6
.gnu_attribute 8,2
/tlsexe.t
0,0 → 1,13
#source: tls.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
.* 12345678 9abcdef0 23456789 abcdef01 .*
.* 3456789a bcdef012 456789ab cdef0123 .*
.* 56789abc def01234 6789abcd ef012345 .*
.* 789abcde f0123456 .*
/symtocbase-1.s
0,0 → 1,18
.section .toc,"aw",@progbits
.align 15
.globl x
x: .quad .x,.x@tocbase,0
.LCi: .quad i
.space 48 * 1024
.data
.globl i
i: .long 0
.L1bases:
.quad .TOC.@tocbase
.quad .x@tocbase
.quad .y@tocbase
.text
.globl .x
.x:
ld 9,.LCi@toc(2)
blr
/attr-gnu-8-31.d
0,0 → 1,10
#source: attr-gnu-8-3.s
#source: attr-gnu-8-1.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_Vector: SPE
/tlsexetoc.r
0,0 → 1,113
#source: tlslib.s
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc
#readelf: -WSsrl
#target: powerpc64*-*-*
 
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
 
Section Headers:
+\[Nr\] Name +Type +Address +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]+\] \.rela\.dyn +.*
+\[[ 0-9]+\] \.rela\.plt +.*
+\[[ 0-9]+\] \.text +PROGBITS .* 0+b8 0+ +AX +0 +0 +8
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic +DYNAMIC .* 0+150 10 +WA +4 +0 +8
+\[[ 0-9]+\] \.branch_lt +PROGBITS .* 0+ 0+ +WA +0 +0 +8
+\[[ 0-9]+\] \.got +PROGBITS .* 0+58 08 +WA +0 +0 +8
+\[[ 0-9]+\] \.plt +.*
+\[[ 0-9]+\] \.shstrtab +.*
+\[[ 0-9]+\] \.symtab +.*
+\[[ 0-9]+\] \.strtab +.*
#...
 
Elf file type is EXEC \(Executable file\)
Entry point .*
There are [0-9]+ program headers, starting at offset [0-9]+
 
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+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 .* R E 0x10000
+LOAD .* RW +0x10000
+DYNAMIC .* RW +0x8
+TLS .* 0x0+38 0x0+70 R +0x8
 
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +
+01 +\.interp
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+03 +\.tdata \.dynamic \.got \.plt
+04 +\.dynamic
+05 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset .* contains 3 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ ld \+ 0
 
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* TLS +GLOBAL DEFAULT +UND gd
.* FUNC +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +1
.* SECTION LOCAL +DEFAULT +2
.* SECTION LOCAL +DEFAULT +3
.* SECTION LOCAL +DEFAULT +4
.* SECTION LOCAL +DEFAULT +5
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* SECTION LOCAL +DEFAULT +8
.* SECTION LOCAL +DEFAULT +9
.* SECTION LOCAL +DEFAULT +10
.* SECTION LOCAL +DEFAULT +11
.* SECTION LOCAL +DEFAULT +12
.* SECTION LOCAL +DEFAULT +13
.* TLS +LOCAL +DEFAULT +8 gd4
.* TLS +LOCAL +DEFAULT +8 ld4
.* TLS +LOCAL +DEFAULT +8 ld5
.* TLS +LOCAL +DEFAULT +8 ld6
.* TLS +LOCAL +DEFAULT +8 ie4
.* TLS +LOCAL +DEFAULT +8 le4
.* TLS +LOCAL +DEFAULT +8 le5
.* NOTYPE +LOCAL +DEFAULT +12 \.Lie0
.* OBJECT +LOCAL +HIDDEN +10 _DYNAMIC
.* FUNC +LOCAL +DEFAULT +UND \.__tls_get_addr
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +9 le0
.* FUNC +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +9 ld0
.* TLS +GLOBAL DEFAULT +9 le1
.* TLS +GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +7 _start
.* TLS +GLOBAL DEFAULT +9 ld2
.* TLS +GLOBAL DEFAULT +9 ld1
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
.* TLS +GLOBAL DEFAULT +9 gd0
.* TLS +GLOBAL DEFAULT +9 ie0
/tlsexetoc.t
0,0 → 1,13
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc tmpdir/libtlslib.so
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
.* 12345678 9abcdef0 23456789 abcdef01 .*
.* 3456789a bcdef012 456789ab cdef0123 .*
.* 56789abc def01234 6789abcd ef012345 .*
.* 789abcde f0123456 .*
/vxworks1-lib.td
0,0 → 1,3
#...
0x0+16 \(TEXTREL\) +0x0
#pass
/plt1.s
0,0 → 1,9
.text
.global _start
_start:
bcl 20,31,1f
1: mflr 30
addis 30,30,(_GLOBAL_OFFSET_TABLE_-1b)@ha
addi 30,30,(_GLOBAL_OFFSET_TABLE_-1b)@l
bl _exit@plt
b _start
/apuinfo2.s
0,0 → 1,8
.text
.global apuinfo2
apuinfo2:
evstdd 29,8(1)
mfbbear 29
mfpmr 29, 27
dcbtstls 1, 29, 28
rfmci
/tls32.d
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_>:
\.\.\.
/tlstoc.d
0,0 → 1,37
#source: tlslib.s
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
.* <\.__tls_get_addr>:
.* 4e 80 00 20 blr
 
.* <_start>:
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 90 40 addi r3,r3,-28608
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 10 00 addi r3,r3,4096
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 90 48 addi r3,r3,-28600
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
.* 38 63 10 00 addi r3,r3,4096
.* 39 23 80 50 addi r9,r3,-32688
.* 3d 23 00 00 addis r9,r3,0
.* 81 49 80 58 lwz r10,-32680\(r9\)
.* e9 22 80 40 ld r9,-32704\(r2\)
.* 7d 49 18 2a ldx r10,r9,r3
.* 3d 2d 00 00 addis r9,r13,0
.* a1 49 90 68 lhz r10,-28568\(r9\)
.* 89 4d 90 70 lbz r10,-28560\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 90 78 stb r10,-28552\(r9\)
/tlslib.s
0,0 → 1,21
.global .__tls_get_addr,__tls_get_addr,gd,ld
.type .__tls_get_addr,@function
 
.section ".opd","aw",@progbits
__tls_get_addr:
.align 3
.quad .__tls_get_addr
.quad .TOC.@tocbase
.quad 0
 
.section ".tbss","awT",@nobits
.align 3
gd: .space 8
 
.section ".tdata","awT",@progbits
.align 2
ld: .long 0xc0ffee
 
.text
.__tls_get_addr:
blr
/vxworks1.dd
0,0 → 1,48
 
.*: file format .*
 
Disassembly of section \.plt:
 
00080800 <_PROCEDURE_LINKAGE_TABLE_>:
80800: 3d 80 00 09 lis r12,9
80802: R_PPC_ADDR16_HA _GLOBAL_OFFSET_TABLE_
80804: 39 8c 04 00 addi r12,r12,1024
80806: R_PPC_ADDR16_LO _GLOBAL_OFFSET_TABLE_
80808: 80 0c 00 08 lwz r0,8\(r12\)
8080c: 7c 09 03 a6 mtctr r0
80810: 81 8c 00 04 lwz r12,4\(r12\)
80814: 4e 80 04 20 bctr
80818: 60 00 00 00 nop
8081c: 60 00 00 00 nop
80820: 3d 80 00 09 lis r12,9
80822: R_PPC_ADDR16_HA _GLOBAL_OFFSET_TABLE_\+0xc
80824: 81 8c 04 0c lwz r12,1036\(r12\)
80826: R_PPC_ADDR16_LO _GLOBAL_OFFSET_TABLE_\+0xc
80828: 7d 89 03 a6 mtctr r12
8082c: 4e 80 04 20 bctr
80830: 39 60 00 00 li r11,0
80834: 4b ff ff cc b 80800 <_PROCEDURE_LINKAGE_TABLE_>
80838: 60 00 00 00 nop
8083c: 60 00 00 00 nop
80840: 3d 80 00 09 lis r12,9
80842: R_PPC_ADDR16_HA _GLOBAL_OFFSET_TABLE_\+0x10
80844: 81 8c 04 10 lwz r12,1040\(r12\)
80846: R_PPC_ADDR16_LO _GLOBAL_OFFSET_TABLE_\+0x10
80848: 7d 89 03 a6 mtctr r12
8084c: 4e 80 04 20 bctr
80850: 39 60 00 01 li r11,1
80854: 4b ff ff ac b 80800 <_PROCEDURE_LINKAGE_TABLE_>
80858: 60 00 00 00 nop
8085c: 60 00 00 00 nop
Disassembly of section \.text:
 
00080c00 <_start>:
80c00: 4b ff fc 41 bl 80840 <_PROCEDURE_LINKAGE_TABLE_\+0x40>
80c00: R_PPC_PLTREL24 \.plt\+0x40
80c04: 48 00 00 09 bl 80c0c <sexternal>
80c04: R_PPC_PLTREL24 sexternal
80c08: 4b ff fc 19 bl 80820 <_PROCEDURE_LINKAGE_TABLE_\+0x20>
80c08: R_PPC_PLTREL24 \.plt\+0x20
 
00080c0c <sexternal>:
80c0c: 4e 80 00 20 blr
/tlsso32.d
0,0 → 1,46
#source: tls32.s
#as: -a32
#ld: -shared -melf32ppc
#objdump: -dr
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Disassembly of section \.text:
 
.* <_start>:
.*: 38 7f ff e0 addi r3,r31,-32
.*: 48 00 00 01 bl .*
.*: 38 7f ff f4 addi r3,r31,-12
.*: 48 00 00 01 bl .*
.*: 38 7f ff e8 addi r3,r31,-24
.*: 48 01 01 95 bl .*<__tls_get_addr@plt>
.*: 38 7f ff f4 addi r3,r31,-12
.*: 48 01 01 8d bl .*<__tls_get_addr@plt>
.*: 39 23 80 20 addi r9,r3,-32736
.*: 3d 23 00 00 addis r9,r3,0
.*: 81 49 80 24 lwz r10,-32732\(r9\)
.*: 81 3f ff f0 lwz r9,-16\(r31\)
.*: 7d 49 12 2e lhzx r10,r9,r2
.*: 89 42 00 00 lbz r10,0\(r2\)
.*: 3d 22 00 00 addis r9,r2,0
.*: 99 49 00 00 stb r10,0\(r9\)
.*: 38 7e ff d8 addi r3,r30,-40
.*: 48 00 00 01 bl .*
.*: 38 7e ff f4 addi r3,r30,-12
.*: 48 00 00 01 bl .*
.*: 91 43 80 04 stw r10,-32764\(r3\)
.*: 3d 23 00 00 addis r9,r3,0
.*: 91 49 80 08 stw r10,-32760\(r9\)
.*: 81 3e ff f0 lwz r9,-16\(r30\)
.*: 7d 49 13 2e sthx r10,r9,r2
.*: a1 42 00 00 lhz r10,0\(r2\)
.*: 3d 22 00 00 addis r9,r2,0
.*: a9 49 00 00 lha r10,0\(r9\)
Disassembly of section \.got:
 
.* <\.got>:
\.\.\.
.*: 4e 80 00 21 blrl
.*: 00 01 03 ec .*
\.\.\.
/tlstocso.d
0,0 → 1,59
#source: tlstoc.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
.* <\.__tls_get_addr>:
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 70 ld r11,-32656\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 80 ld r11,-32640\(r2\)
.* e8 42 80 78 ld r2,-32648\(r2\)
.* 4e 80 04 20 bctr
 
.* <_start>:
.* 38 62 80 08 addi r3,r2,-32760
.* 4b ff ff e5 bl .* <\.__tls_get_addr>
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 18 addi r3,r2,-32744
.* 4b ff ff d9 bl .* <\.__tls_get_addr>
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 28 addi r3,r2,-32728
.* 4b ff ff cd bl .* <\.__tls_get_addr>
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 38 addi r3,r2,-32712
.* 4b ff ff c1 bl .* <\.__tls_get_addr>
.* e8 41 00 28 ld r2,40\(r1\)
.* 39 23 80 40 addi r9,r3,-32704
.* 3d 23 00 00 addis r9,r3,0
.* 81 49 80 48 lwz r10,-32696\(r9\)
.* e9 22 80 48 ld r9,-32696\(r2\)
.* 7d 49 18 2a ldx r10,r9,r3
.* e9 22 80 50 ld r9,-32688\(r2\)
.* 7d 49 6a 2e lhzx r10,r9,r13
.* 89 4d 00 00 lbz r10,0\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 00 00 stb r10,0\(r9\)
.* 00 00 00 00 .*
.* 00 01 02 18 .*
.* 7d 88 02 a6 mflr r12
.* 42 9f 00 05 bcl- 20,4\*cr7\+so,.*
.* 7d 68 02 a6 mflr r11
.* e8 4b ff f0 ld r2,-16\(r11\)
.* 7d 88 03 a6 mtlr r12
.* 7d 82 5a 14 add r12,r2,r11
.* e9 6c 00 00 ld r11,0\(r12\)
.* e8 4c 00 08 ld r2,8\(r12\)
.* 7d 69 03 a6 mtctr r11
.* e9 6c 00 10 ld r11,16\(r12\)
.* 4e 80 04 20 bctr
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 38 00 00 00 li r0,0
.* 4b ff ff c4 b .*
/tls32.g
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 .*
/tlstoc.g
0,0 → 1,15
#source: tlslib.s
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
100101a0 00000000 00000001 00000000 00000000 .*
100101b0 00000000 00000001 00000000 00000000 .*
100101c0 00000000 00000001 00000000 00000000 .*
100101d0 00000000 00000001 00000000 00000000 .*
100101e0 ffffffff ffff8060 00000000 00000000 .*
/tlsso32.g
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:
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 4e800021 000103ec 00000000 .*
.* 00000000 .*
/tlslib32.s
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
/tlstocso.g
0,0 → 1,15
#source: tlstoc.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
.* 00000000 000186c0 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 .*
/attr-gnu-4-00.d
0,0 → 1,7
#source: attr-gnu-4-0.s
#source: attr-gnu-4-0.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
/vxworks1.ld
0,0 → 1,30
SECTIONS
{
. = 0x80000;
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
 
. = ALIGN (0x400);
.rela.dyn : { *(.rela.dyn) }
.rela.plt : { *(.rela.plt) }
 
. = ALIGN (0x400);
.plt : { *(.plt) }
 
. = ALIGN (0x400);
.text : { *(.text) }
 
. = ALIGN (0x10000);
.dynamic : { *(.dynamic) }
 
. = ALIGN (0x400);
.got : { *(.got.plt) *(.got) }
 
. = ALIGN (0x400);
.data : { *(.data) }
 
. = ALIGN (0x400);
.bss : { *(.bss) }
}
/attr-gnu-4-02.d
0,0 → 1,10
#source: attr-gnu-4-0.s
#source: attr-gnu-4-2.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Soft float
/attr-gnu-4-21.d
0,0 → 1,6
#source: attr-gnu-4-2.s
#source: attr-gnu-4-1.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses hard float, .* uses soft float
#target: powerpc*-*-*
/vxworks2.s
0,0 → 1,5
.globl _start
.type _start,@function
_start:
blr
.end _start
/tls32.s
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+0x8000@plt #R_PPC_PLTREL24 __tls_get_addr
 
#LD
addi 3,31,ld0@got@tlsld #R_PPC_GOT_TLSLD16 ld0
bl __tls_get_addr+0x8000@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
 
/tls32.t
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 .*
/tlsso32.r
0,0 → 1,129
#source: tls32.s
#as: -a32
#ld: -shared -melf32ppc
#readelf: -WSsrl
#target: powerpc*-*-*
 
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]+\] \.rela\.dyn +.*
+\[[ 0-9]+\] \.rela\.plt +.*
+\[[ 0-9]+\] \.text +PROGBITS .* 0+70 0+ +AX +0 +0 +1
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+1c 0+ WAT +0 +0 +4
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+1c 0+ WAT +0 +0 +4
+\[[ 0-9]+\] \.dynamic +DYNAMIC .* 08 +WA +3 +0 +4
+\[[ 0-9]+\] \.got +PROGBITS .* 0+34 04 WAX +0 +0 +4
+\[[ 0-9]+\] \.plt +.*
+\[[ 0-9]+\] \.shstrtab +.*
+\[[ 0-9]+\] \.symtab +.*
+\[[ 0-9]+\] \.strtab +.*
#...
 
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 .* R E 0x10000
+LOAD .* RWE 0x10000
+DYNAMIC .* RW +0x4
+TLS .* 0x0+1c 0x0+38 R +0x4
 
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+01 +\.tdata \.dynamic \.got \.plt
+02 +\.dynamic
+03 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC_REL24 +0+ +__tls_get_addr \+ 0
[0-9a-f ]+R_PPC_REL24 +0+ +__tls_get_addr \+ 0
[0-9a-f ]+R_PPC_REL24 +0+ +__tls_get_addr \+ 0
[0-9a-f ]+R_PPC_REL24 +0+ +__tls_get_addr \+ 0
[0-9a-f ]+R_PPC_TPREL16 +0+30 +le0 \+ 0
[0-9a-f ]+R_PPC_TPREL16_HA +0+34 +le1 \+ 0
[0-9a-f ]+R_PPC_TPREL16_LO +0+34 +le1 \+ 0
[0-9a-f ]+R_PPC_TPREL16 +0+103d0 +\.tdata \+ 103e4
[0-9a-f ]+R_PPC_TPREL16_HA +0+103d0 +\.tdata \+ 103e8
[0-9a-f ]+R_PPC_TPREL16_LO +0+103d0 +\.tdata \+ 103e8
[0-9a-f ]+R_PPC_DTPMOD32 +0+
[0-9a-f ]+R_PPC_DTPREL32 +0+
[0-9a-f ]+R_PPC_DTPMOD32 +0+
[0-9a-f ]+R_PPC_DTPMOD32 +0+ +gd \+ 0
[0-9a-f ]+R_PPC_DTPREL32 +0+ +gd \+ 0
[0-9a-f ]+R_PPC_DTPMOD32 +0+1c +gd0 \+ 0
[0-9a-f ]+R_PPC_DTPREL32 +0+1c +gd0 \+ 0
[0-9a-f ]+R_PPC_TPREL32 +0+2c +ie0 \+ 0
 
Relocation section '\.rela\.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC_JMP_SLOT +0+ +__tls_get_addr \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +8 le0
.* NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +8 ld0
.* TLS +GLOBAL DEFAULT +8 le1
.* TLS +GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +6 _start
.* NOTYPE +GLOBAL DEFAULT +ABS __end
.* TLS +GLOBAL DEFAULT +8 ld2
.* TLS +GLOBAL DEFAULT +8 ld1
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
.* TLS +GLOBAL DEFAULT +8 gd0
.* TLS +GLOBAL DEFAULT +8 ie0
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +1
.* SECTION LOCAL +DEFAULT +2
.* SECTION LOCAL +DEFAULT +3
.* SECTION LOCAL +DEFAULT +4
.* SECTION LOCAL +DEFAULT +5
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* SECTION LOCAL +DEFAULT +8
.* SECTION LOCAL +DEFAULT +9
.* SECTION LOCAL +DEFAULT +10
.* SECTION LOCAL +DEFAULT +11
.* TLS +LOCAL +DEFAULT +7 gd4
.* TLS +LOCAL +DEFAULT +7 ld4
.* TLS +LOCAL +DEFAULT +7 ld5
.* TLS +LOCAL +DEFAULT +7 ld6
.* TLS +LOCAL +DEFAULT +7 ie4
.* TLS +LOCAL +DEFAULT +7 le4
.* TLS +LOCAL +DEFAULT +7 le5
.* OBJECT +LOCAL +HIDDEN +ABS _DYNAMIC
.* OBJECT +LOCAL +HIDDEN +ABS _GLOBAL_OFFSET_TABLE_
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +8 le0
.* NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +8 ld0
.* TLS +GLOBAL DEFAULT +8 le1
.* TLS +GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +6 _start
.* NOTYPE +GLOBAL DEFAULT +ABS __end
.* TLS +GLOBAL DEFAULT +8 ld2
.* TLS +GLOBAL DEFAULT +8 ld1
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
.* TLS +GLOBAL DEFAULT +8 gd0
.* TLS +GLOBAL DEFAULT +8 ie0
/tlstoc.s
0,0 → 1,88
.section ".tbss","awT",@nobits
.global _start,gd0,ld0,ld1,ld2,ie0,le0,le1
.align 3
gd0: .space 8
ld0: .space 8
ld1: .space 8
ld2: .space 8
ie0: .space 8
le0: .space 8
le1: .space 8
 
.section ".tdata","awT",@progbits
.align 3
gd4: .quad 0x123456789abcdef0
ld4: .quad 0x23456789abcdef01
ld5: .quad 0x3456789abcdef012
ld6: .quad 0x456789abcdef0123
ie4: .quad 0x56789abcdef01234
le4: .quad 0x6789abcdef012345
le5: .quad 0x789abcdef0123456
 
.text
_start:
#extern syms
#GD
addi 3,2,.Lgd@toc
bl .__tls_get_addr
nop
.section .toc,"aw",@progbits
.Lgd:
.quad gd@dtpmod
.quad gd@dtprel
.text
#LD
addi 3,2,.Lld@toc
bl .__tls_get_addr
nop
.section .toc,"aw",@progbits
.Lld:
.quad ld@dtpmod
.quad 0
.text
 
#global syms
#GD
addi 3,2,.Lgd0@toc
bl .__tls_get_addr
nop
.section .toc,"aw",@progbits
.Lgd0:
.quad gd0@dtpmod
.quad gd0@dtprel
.text
#LD
addi 3,2,.Lld0@toc
bl .__tls_get_addr
nop
.section .toc,"aw",@progbits
.Lld0:
.quad ld0@dtpmod
.quad 0
.text
 
addi 9,3,ld0@dtprel
 
addis 9,3,ld1@dtprel@ha
lwz 10,ld1@dtprel@l(9)
 
ld 9,.Lld2@toc(2)
ldx 10,9,3
.section .toc,"aw",@progbits
.Lld2:
.quad ld2@dtprel
.text
 
#IE
ld 9,.Lie0@toc(2)
lhzx 10,9,.Lie0@tls
.section .toc,"aw",@progbits
.Lie0:
.quad ie0@tprel
.text
 
#LE
lbz 10,le0@tprel(13) #R_PPC64_TPREL16 le0
 
addis 9,13,le1@tprel@ha #R_PPC64_TPREL16_HA le1
stb 10,le1@tprel@l(9) #R_PPC64_TPREL16_LO le1
/attr-gnu-8-23.d
0,0 → 1,6
#source: attr-gnu-8-2.s
#source: attr-gnu-8-3.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses vector ABI "SPE", .* uses "AltiVec"
#target: powerpc*-*-*
/tlstocso.r
0,0 → 1,123
#source: tlstoc.s
#as: -a64
#ld: -shared -melf64ppc
#readelf: -WSsrl
#target: powerpc64*-*-*
 
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
 
Section Headers:
+\[Nr\] Name +Type +Address +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]+\] \.rela\.dyn .*
+\[[ 0-9]+\] \.rela\.plt .*
+\[[ 0-9]+\] \.text .*
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic .*
+\[[ 0-9]+\] \.branch_lt .*
+\[[ 0-9]+\] \.got .*
+\[[ 0-9]+\] \.plt .*
+\[[ 0-9]+\] \.shstrtab .*
+\[[ 0-9]+\] \.symtab .*
+\[[ 0-9]+\] \.strtab .*
#...
 
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 .* R E 0x10000
+LOAD .* RW +0x10000
+DYNAMIC .* RW +0x8
+TLS .* 0x0+38 0x0+70 R +0x8
 
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+01 +\.tdata \.dynamic \.got \.plt
+02 +\.dynamic
+03 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset .* contains 11 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_TPREL16 +0+60 le0 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_HA +0+68 le1 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_LO +0+68 le1 \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ ld \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+38 gd0 \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+40 ld0 \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+50 ld2 \+ 0
[0-9a-f ]+R_PPC64_TPREL64 +0+58 ie0 \+ 0
 
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +8 le0
.* NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +8 ld0
.* TLS +GLOBAL DEFAULT +8 le1
.* TLS +GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +6 _start
.* TLS +GLOBAL DEFAULT +8 ld2
.* TLS +GLOBAL DEFAULT +8 ld1
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
.* TLS +GLOBAL DEFAULT +8 gd0
.* TLS +GLOBAL DEFAULT +8 ie0
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +1
.* SECTION LOCAL +DEFAULT +2
.* SECTION LOCAL +DEFAULT +3
.* SECTION LOCAL +DEFAULT +4
.* SECTION LOCAL +DEFAULT +5
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* SECTION LOCAL +DEFAULT +8
.* SECTION LOCAL +DEFAULT +9
.* SECTION LOCAL +DEFAULT +10
.* SECTION LOCAL +DEFAULT +11
.* SECTION LOCAL +DEFAULT +12
.* TLS +LOCAL +DEFAULT +7 gd4
.* TLS +LOCAL +DEFAULT +7 ld4
.* TLS +LOCAL +DEFAULT +7 ld5
.* TLS +LOCAL +DEFAULT +7 ld6
.* TLS +LOCAL +DEFAULT +7 ie4
.* TLS +LOCAL +DEFAULT +7 le4
.* TLS +LOCAL +DEFAULT +7 le5
.* NOTYPE +LOCAL +DEFAULT +11 \.Lie0
.* OBJECT +LOCAL +HIDDEN +ABS _DYNAMIC
.* NOTYPE +LOCAL +DEFAULT +6 \.__tls_get_addr
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +8 le0
.* NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +8 ld0
.* TLS +GLOBAL DEFAULT +8 le1
.* TLS +GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +6 _start
.* TLS +GLOBAL DEFAULT +8 ld2
.* TLS +GLOBAL DEFAULT +8 ld1
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
.* TLS +GLOBAL DEFAULT +8 gd0
.* TLS +GLOBAL DEFAULT +8 ie0
/tlstoc.t
0,0 → 1,14
#source: tlslib.s
#source: tlstoc.s
#as: -a64
#ld: -melf64ppc
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
10010148 00c0ffee 00000000 12345678 9abcdef0 .*
10010158 23456789 abcdef01 3456789a bcdef012 .*
10010168 456789ab cdef0123 56789abc def01234 .*
10010178 6789abcd ef012345 789abcde f0123456 .*
/powerpc.exp
0,0 → 1,171
# Expect script for ld-powerpc tests
# Copyright 2002, 2003, 2005, 2006, 2007 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.
#
 
if { ![istarget "powerpc*-*-*"] } {
return
}
 
if {[istarget "*-*-vxworks"]} {
set ppcvxtests {
{"VxWorks shared library test 1 (default script)" "-shared"
"-mregnames" {vxworks1-lib.s}
{{readelf --segments vxworks1-lib.sd}}
"libvxworks1.so"}
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld"
"-mregnames" {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"
"-mregnames" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
"-Tvxworks1.ld -q --force-dynamic"
"-mregnames" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
"-Tvxworks1.ld"
"-mregnames" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
}
run_ld_link_tests $ppcvxtests
run_dump_test "vxworks1-static"
return
}
 
# powerpc ELF only at the moment. Disable for nto too, even though it
# is ELF, because we pass -melf32ppc to ld and powerpc-nto-ld wants
# -melf32ppcnto.
 
if { [istarget "*-*-macos*"] || [istarget "*-*-netware*"]
|| [istarget "*-*-pe"] || [istarget "*-*-winnt*"]
|| [istarget "*-*-cygwin*"] || [istarget "*-*-aix*"]
|| [istarget "*-*-beos*"] || [istarget "*-*-lynxos*"]
|| [istarget "*-*-nto*"] } {
return
}
 
proc supports_ppc64 { } {
global ld
 
catch "exec $ld --help | grep emulations" tmp
if [ string match "*elf64ppc*" $tmp ] then {
return 1
} else {
return 0
}
}
 
# 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 ppcelftests {
{"Reloc section order" "-melf32ppc -shared -z nocombreloc" "-a32" {reloc.s}
{{objdump -hw reloc.d}} "reloc.so"}
{"APUinfo section processing" "-melf32ppc"
"-a32 -me500" {apuinfo1.s apuinfo2.s}
{{readelf -x2 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"}
{"Shared library with global symbol" "-shared -melf32ppc" "-a32" {sdalib.s}
{} "sdalib.so"}
{"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "-a32" {sdadyn.s}
{{objdump -R sdadyn.d}} "sdadyn"}
}
 
set ppc64elftests {
{"TLS static exec" "-melf64ppc" "-a64" {tls.s tlslib.s}
{{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}}
"tls"}
{"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" {}
{} "libtlslib.so"}
{"TLS dynamic exec" "-melf64ppc tmpdir/tls.o tmpdir/libtlslib.so" "" {}
{{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
{objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
"tlsexe"}
{"TLS shared" "-shared -melf64ppc tmpdir/tls.o" "" {}
{{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d}
{objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}}
"tls.so"}
{"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "-a64" {tlstoc.s}
{{objdump -dr tlstoc.d} {objdump -sj.got tlstoc.g}
{objdump -sj.tdata tlstoc.t}}
"tlstoc"}
{"TLSTOC dynamic exec" "-melf64ppc tmpdir/tlstoc.o tmpdir/libtlslib.so"
"" {}
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
{objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
"tlsexetoc"}
{"TLSTOC shared" "-shared -melf64ppc tmpdir/tlstoc.o" "" {}
{{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d}
{objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}}
"tlstoc.so"}
{"sym@tocbase" "-shared -melf64ppc" "-a64" {symtocbase-1.s symtocbase-2.s}
{{objdump -dj.data symtocbase.d}} "symtocbase.so"}
}
 
 
run_ld_link_tests $ppcelftests
 
if [ supports_ppc64 ] then {
run_ld_link_tests $ppc64elftests
run_dump_test "relbrlt"
}
 
run_dump_test "plt1"
 
run_dump_test "attr-gnu-4-00"
run_dump_test "attr-gnu-4-01"
run_dump_test "attr-gnu-4-02"
run_dump_test "attr-gnu-4-10"
run_dump_test "attr-gnu-4-11"
run_dump_test "attr-gnu-4-12"
run_dump_test "attr-gnu-4-13"
run_dump_test "attr-gnu-4-20"
run_dump_test "attr-gnu-4-21"
run_dump_test "attr-gnu-4-22"
run_dump_test "attr-gnu-4-31"
 
run_dump_test "attr-gnu-8-11"
run_dump_test "attr-gnu-8-23"
run_dump_test "attr-gnu-8-31"
/tlsso32.t
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:
.* 12345678 23456789 3456789a 456789ab .*
.* 56789abc 6789abcd 789abcde .*
/tlstocso.t
0,0 → 1,13
#source: tlstoc.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
.* 12345678 9abcdef0 23456789 abcdef01 .*
.* 3456789a bcdef012 456789ab cdef0123 .*
.* 56789abc def01234 6789abcd ef012345 .*
.* 789abcde f0123456 .*
/tlsexe32.d
0,0 → 1,47
#source: tls32.s
#as: -a32
#ld: -melf32ppc tmpdir/libtlslib32.so
#objdump: -dr
#target: powerpc*-*-*
 
.*: +file format elf32-powerpc
 
Disassembly of section \.text:
 
.* <_start>:
.*: 80 7f ff f0 lwz r3,-16\(r31\)
.*: 7c 63 12 14 add r3,r3,r2
.*: 38 7f ff f4 addi r3,r31,-12
.*: 48 01 01 85 bl .*<__tls_get_addr@plt>
.*: 3c 62 00 00 addis r3,r2,0
.*: 38 63 90 1c addi r3,r3,-28644
.*: 3c 62 00 00 addis r3,r2,0
.*: 38 63 10 00 addi r3,r3,4096
.*: 39 23 80 20 addi r9,r3,-32736
.*: 3d 23 00 00 addis r9,r3,0
.*: 81 49 80 24 lwz r10,-32732\(r9\)
.*: 3d 22 00 00 addis r9,r2,0
.*: a1 49 90 2c lhz r10,-28628\(r9\)
.*: 89 42 90 30 lbz r10,-28624\(r2\)
.*: 3d 22 00 00 addis r9,r2,0
.*: 99 49 90 34 stb r10,-28620\(r9\)
.*: 3c 62 00 00 addis r3,r2,0
.*: 38 63 90 00 addi r3,r3,-28672
.*: 3c 62 00 00 addis r3,r2,0
.*: 38 63 10 00 addi r3,r3,4096
.*: 91 43 80 04 stw r10,-32764\(r3\)
.*: 3d 23 00 00 addis r9,r3,0
.*: 91 49 80 08 stw r10,-32760\(r9\)
.*: 3d 22 00 00 addis r9,r2,0
.*: b1 49 90 2c sth r10,-28628\(r9\)
.*: a1 42 90 14 lhz r10,-28652\(r2\)
.*: 3d 22 00 00 addis r9,r2,0
.*: a9 49 90 18 lha r10,-28648\(r9\)
Disassembly of section \.got:
 
.* <_GLOBAL_OFFSET_TABLE_-0x10>:
\.\.\.
.*: 4e 80 00 21 blrl
 
.* <_GLOBAL_OFFSET_TABLE_>:
.*: 01 81 02 b4 00 00 00 00 00 00 00 00 .*
/tlsexe32.g
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:
.* 00000000 00000000 00000000 4e800021 .*
.* 018102b4 00000000 00000000 .*
/attr-gnu-4-1.s
0,0 → 1,11
.gnu_attribute 4,1
/attr-gnu-4-11.d
0,0 → 1,10
#source: attr-gnu-4-1.s
#source: attr-gnu-4-1.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Hard float
/attr-gnu-4-3.s
0,0 → 1,10
.gnu_attribute 4,3
/attr-gnu-8-1.s
0,0 → 1,10
.gnu_attribute 8,1
/attr-gnu-4-13.d
0,0 → 1,6
#source: attr-gnu-4-1.s
#source: attr-gnu-4-3.s
#as: -a32
#ld: -r -melf32ppc
#warning: Warning: .* uses unknown floating point ABI 3
#target: powerpc*-*-*
/apuinfo.rd
0,0 → 1,10
#source: apuinfo1.s
#source: apuinfo2.s
#as: -me500
#readelf: -x2
#target: powerpc-eabi*
 
Hex dump of section '.PPC.EMB.apuinfo':
0x00000000 00000008 0000001c 00000002 41505569 ............APUi
0x00000010 6e666f00 00420001 00430001 00410001 nfo..B...C...A..
0x00000020 01020001 01010001 00400001 01000001 .........@......
/attr-gnu-8-3.s
0,0 → 1,10
.gnu_attribute 8,3
/attr-gnu-8-11.d
0,0 → 1,10
#source: attr-gnu-8-1.s
#source: attr-gnu-8-1.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_Vector: Generic
/vxworks1-lib.nd
0,0 → 1,9
#...
Symbol table '\.dynsym' .*:
#...
.*: 00090400 * 0 * OBJECT * GLOBAL * DEFAULT * [0-9]+ _GLOBAL_OFFSET_TABLE_
#...
Symbol table '\.symtab' .*:
#...
.*: 00090400 * 0 * OBJECT * GLOBAL * DEFAULT * [0-9]+ _GLOBAL_OFFSET_TABLE_
#pass
/tlsexe32.r
0,0 → 1,111
#source: tls32.s
#source: tlslib32.s
#as: -a32
#ld: -melf32ppc
#readelf: -WSsrl
#target: powerpc*-*-*
 
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+ 00 +0 +0 +0
+\[[ 0-9]+\] \.interp +.*
+\[[ 0-9]+\] \.hash +.*
+\[[ 0-9]+\] \.dynsym +.*
+\[[ 0-9]+\] \.dynstr +.*
+\[[ 0-9]+\] \.rela\.dyn +.*
+\[[ 0-9]+\] \.rela\.plt +.*
+\[[ 0-9]+\] \.text +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000070 00 +AX +0 +0 +1
+\[[ 0-9]+\] \.tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ 00001c 00 WAT +0 +0 +4
+\[[ 0-9]+\] \.tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 00001c 00 WAT +0 +0 +4
+\[[ 0-9]+\] \.dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 08 +WA +4 +0 +4
+\[[ 0-9]+\] \.got +PROGBITS +[0-9a-f]+ [0-9a-f]+ 00001c 04 WAX +0 +0 +4
+\[[ 0-9]+\] \.plt +NOBITS +.*
+\[[ 0-9]+\] \.shstrtab +STRTAB +.*
+\[[ 0-9]+\] \.symtab +SYMTAB +.*
+\[[ 0-9]+\] \.strtab +STRTAB +.*
#...
 
Elf file type is EXEC \(Executable file\)
Entry point .*
There are [0-9]+ program headers, starting at offset [0-9]+
 
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
+PHDR +0x000034 0x01800034 0x01800034 0x000c0 0x000c0 R E 0x4
+INTERP +0x0000f4 0x018000f4 0x018000f4 0x00011 0x00011 R +0x1
+\[Requesting program interpreter: .*\]
+LOAD .* R E 0x10000
+LOAD .* RWE 0x10000
+DYNAMIC .* RW +0x4
+TLS .* 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 \.dynamic \.got \.plt
+04 +\.dynamic
+05 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset .* contains 2 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC_TPREL32 +00000000 +gd \+ 0
[0-9a-f ]+R_PPC_DTPMOD32 +00000000 +ld \+ 0
 
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC_JMP_SLOT[0-9a-f ]+__tls_get_addr \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* TLS +GLOBAL DEFAULT +UND gd
.* FUNC +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +ABS __end
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +1
.* SECTION LOCAL +DEFAULT +2
.* SECTION LOCAL +DEFAULT +3
.* SECTION LOCAL +DEFAULT +4
.* SECTION LOCAL +DEFAULT +5
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* SECTION LOCAL +DEFAULT +8
.* SECTION LOCAL +DEFAULT +9
.* SECTION LOCAL +DEFAULT +10
.* SECTION LOCAL +DEFAULT +11
.* SECTION LOCAL +DEFAULT +12
.* TLS +LOCAL +DEFAULT +8 gd4
.* TLS +LOCAL +DEFAULT +8 ld4
.* TLS +LOCAL +DEFAULT +8 ld5
.* TLS +LOCAL +DEFAULT +8 ld6
.* TLS +LOCAL +DEFAULT +8 ie4
.* TLS +LOCAL +DEFAULT +8 le4
.* TLS +LOCAL +DEFAULT +8 le5
.* OBJECT +LOCAL +HIDDEN +10 _DYNAMIC
.* OBJECT +LOCAL +HIDDEN +11 _GLOBAL_OFFSET_TABLE_
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +9 le0
.* FUNC +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +9 ld0
.* TLS +GLOBAL DEFAULT +9 le1
.* TLS +GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +7 _start
.* NOTYPE +GLOBAL DEFAULT +ABS __end
.* TLS +GLOBAL DEFAULT +9 ld2
.* TLS +GLOBAL DEFAULT +9 ld1
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
.* TLS +GLOBAL DEFAULT +9 gd0
.* TLS +GLOBAL DEFAULT +9 ie0
/vxworks1-lib.s
0,0 → 1,38
.text
.globl foo
.type foo, @function
foo:
stwu r1,-24(r1)
mflr r0
stw r0,28(r1)
lis r30,__GOTT_BASE__@ha
lwz r30,__GOTT_BASE__@l(r30)
lwz r30,__GOTT_INDEX__(r30)
lwz r1,x@got(r30)
lwz r0,0(r1)
addi r0,r0,1
stw r0,0(r1)
bl slocal
bl sglobal@plt
bl sexternal@plt
lwz r0,28(r1)
mtlr r0
addi r1,r1,24
blr
.size foo, .-foo
 
.type slocal, @function
slocal:
blr
.size slocal, .-slocal
 
.globl sglobal
.type sglobal, @function
sglobal:
blr
.size sglobal, .-sglobal
 
.data
.4byte slocal
 
.comm x,4,4
/symtocbase-2.s
0,0 → 1,16
.section .toc,"aw",@progbits
.align 15
.globl y
y: .quad .y,.y@tocbase,0
.LCi: .quad i
.space 48 * 1024
.data
.L2bases:
.quad .TOC.@tocbase
.quad .x@tocbase
.quad .y@tocbase
.text
.globl .y
.y:
ld 9,.LCi@toc(2)
blr
/vxworks1-static.d
0,0 → 1,4
#name: VxWorks executable test 1 (static)
#source: vxworks1.s -mregnames
#ld: tmpdir/libvxworks1.so -Tvxworks1.ld
#error: Dynamic sections created in non-dynamic link
/tlsexe32.t
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:
.* 12345678 23456789 3456789a 456789ab .*
.* 56789abc 6789abcd 789abcde .*
/vxworks1-lib.rd
0,0 → 1,13
 
Relocation section '\.rela\.plt' at offset .* contains 2 entries:
Offset Info Type Sym\.Value Sym\. Name \+ Addend
0009040c .*15 R_PPC_JMP_SLOT 00000000 sexternal \+ 0
00090410 .*15 R_PPC_JMP_SLOT 00080c48 sglobal \+ 0
 
Relocation section '\.rela\.dyn' at offset .* contains 5 entries:
Offset Info Type Sym\.Value Sym\. Name \+ Addend
00090800 00000016 R_PPC_RELATIVE * 00080c44
00080c0e .*06 R_PPC_ADDR16_HA 00000000 __GOTT_BASE__ \+ 0
00080c12 .*04 R_PPC_ADDR16_LO 00000000 __GOTT_BASE__ \+ 0
00080c16 .*03 R_PPC_ADDR16 00000000 __GOTT_INDEX__ \+ 0
00090414 .*14 R_PPC_GLOB_DAT 00090c00 x \+ 0
/apuinfo1.s
0,0 → 1,9
.text
.global apuinfo1
apuinfo1:
evstdd 29,8(1)
isellt 29, 28, 27
efsabs 29, 28
.global _start
_start:
nop
/tls.d
0,0 → 1,53
#source: tls.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
0+100000e8 <_start>:
100000e8: 3c 6d 00 00 addis r3,r13,0
100000ec: 60 00 00 00 nop
100000f0: 38 63 90 78 addi r3,r3,-28552
100000f4: 3c 6d 00 00 addis r3,r13,0
100000f8: 60 00 00 00 nop
100000fc: 38 63 10 00 addi r3,r3,4096
10000100: 3c 6d 00 00 addis r3,r13,0
10000104: 60 00 00 00 nop
10000108: 38 63 90 40 addi r3,r3,-28608
1000010c: 3c 6d 00 00 addis r3,r13,0
10000110: 60 00 00 00 nop
10000114: 38 63 10 00 addi r3,r3,4096
10000118: 39 23 80 48 addi r9,r3,-32696
1000011c: 3d 23 00 00 addis r9,r3,0
10000120: 81 49 80 50 lwz r10,-32688\(r9\)
10000124: e9 22 80 10 ld r9,-32752\(r2\)
10000128: 7d 49 18 2a ldx r10,r9,r3
1000012c: 3d 2d 00 00 addis r9,r13,0
10000130: a1 49 90 60 lhz r10,-28576\(r9\)
10000134: 89 4d 90 68 lbz r10,-28568\(r13\)
10000138: 3d 2d 00 00 addis r9,r13,0
1000013c: 99 49 90 70 stb r10,-28560\(r9\)
10000140: 3c 6d 00 00 addis r3,r13,0
10000144: 60 00 00 00 nop
10000148: 38 63 90 00 addi r3,r3,-28672
1000014c: 3c 6d 00 00 addis r3,r13,0
10000150: 60 00 00 00 nop
10000154: 38 63 10 00 addi r3,r3,4096
10000158: f9 43 80 08 std r10,-32760\(r3\)
1000015c: 3d 23 00 00 addis r9,r3,0
10000160: 91 49 80 10 stw r10,-32752\(r9\)
10000164: e9 22 80 08 ld r9,-32760\(r2\)
10000168: 7d 49 19 2a stdx r10,r9,r3
1000016c: 3d 2d 00 00 addis r9,r13,0
10000170: b1 49 90 60 sth r10,-28576\(r9\)
10000174: e9 4d 90 2a lwa r10,-28632\(r13\)
10000178: 3d 2d 00 00 addis r9,r13,0
1000017c: a9 49 90 30 lha r10,-28624\(r9\)
 
0+10000180 <\.__tls_get_addr>:
10000180: 4e 80 00 20 blr
/reloc.d
0,0 → 1,13
# Test that orphan reloc sections are placed before .rela.plt even when
# .rela.plt is the only reloc section.
 
#source: reloc.s
#ld: -shared -z nocombreloc
#objdump: -hw
 
.*: +file format elf.*
#...
.*\.relaplatypus.*
#...
.*\.rela\.plt.*
#pass
/tlsso.d
0,0 → 1,75
#source: tls.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -dr
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Disassembly of section \.text:
 
.* <\.__tls_get_addr>:
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 78 ld r11,-32648\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 88 ld r11,-32632\(r2\)
.* e8 42 80 80 ld r2,-32640\(r2\)
.* 4e 80 04 20 bctr
 
.* <_start>:
.* 38 62 80 20 addi r3,r2,-32736
.* 4b ff ff e5 bl .* <\.__tls_get_addr>
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 50 addi r3,r2,-32688
.* 4b ff ff d9 bl .* <\.__tls_get_addr>
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 38 addi r3,r2,-32712
.* 4b ff ff cd bl .* <\.__tls_get_addr>
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 50 addi r3,r2,-32688
.* 4b ff ff c1 bl .* <\.__tls_get_addr>
.* e8 41 00 28 ld r2,40\(r1\)
.* 39 23 80 40 addi r9,r3,-32704
.* 3d 23 00 00 addis r9,r3,0
.* 81 49 80 48 lwz r10,-32696\(r9\)
.* e9 22 80 30 ld r9,-32720\(r2\)
.* 7d 49 18 2a ldx r10,r9,r3
.* e9 22 80 48 ld r9,-32696\(r2\)
.* 7d 49 6a 2e lhzx r10,r9,r13
.* 89 4d 00 00 lbz r10,0\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 00 00 stb r10,0\(r9\)
.* 38 62 80 08 addi r3,r2,-32760
.* 4b ff ff 8d bl .* <\.__tls_get_addr>
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 50 addi r3,r2,-32688
.* 4b ff ff 81 bl .* <\.__tls_get_addr>
.* e8 41 00 28 ld r2,40\(r1\)
.* f9 43 80 08 std r10,-32760\(r3\)
.* 3d 23 00 00 addis r9,r3,0
.* 91 49 80 10 stw r10,-32752\(r9\)
.* e9 22 80 18 ld r9,-32744\(r2\)
.* 7d 49 19 2a stdx r10,r9,r3
.* e9 22 80 48 ld r9,-32696\(r2\)
.* 7d 49 6b 2e sthx r10,r9,r13
.* e9 4d 00 02 lwa r10,0\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* a9 49 00 00 lha r10,0\(r9\)
.* 00 00 00 00 .*
.* 00 01 02 20 .*
.* 7d 88 02 a6 mflr r12
.* 42 9f 00 05 bcl- 20,4\*cr7\+so,.*
.* 7d 68 02 a6 mflr r11
.* e8 4b ff f0 ld r2,-16\(r11\)
.* 7d 88 03 a6 mtlr r12
.* 7d 82 5a 14 add r12,r2,r11
.* e9 6c 00 00 ld r11,0\(r12\)
.* e8 4c 00 08 ld r2,8\(r12\)
.* 7d 69 03 a6 mtctr r11
.* e9 6c 00 10 ld r11,16\(r12\)
.* 4e 80 04 20 bctr
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 60 00 00 00 nop
.* 38 00 00 00 li r0,0
.* 4b ff ff c4 b .*
/tls.g
0,0 → 1,12
#source: tls.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
100101e0 00000000 100181e0 ffffffff ffff8018 .*
100101f0 ffffffff ffff8058 .*
/relbrlt.d
0,0 → 1,60
#source: relbrlt.s
#as: -a64
#ld: -melf64ppc --emit-relocs
#objdump: -Dr
 
.*: file format elf64-powerpc
 
Disassembly of section \.text:
 
0*100000b0 <_start>:
[0-9a-f ]*: 49 bf 00 2d bl .*
[0-9a-f ]*: R_PPC64_REL24 \.text\+0x37e003c
[0-9a-f ]*: 60 00 00 00 nop
[0-9a-f ]*: 49 bf 00 19 bl .*
[0-9a-f ]*: R_PPC64_REL24 \.text\+0x3bf0020
[0-9a-f ]*: 60 00 00 00 nop
[0-9a-f ]*: 49 bf 00 21 bl .*
[0-9a-f ]*: R_PPC64_REL24 \.text\+0x57e0024
[0-9a-f ]*: 60 00 00 00 nop
[0-9a-f ]*: 00 00 00 00 \.long 0x0
[0-9a-f ]*: 4b ff ff e4 b .* <_start>
\.\.\.
 
[0-9a-f ]*<.*plt_branch.*>:
[0-9a-f ]*: e9 62 80 00 ld r11,-32768\(r2\)
[0-9a-f ]*: R_PPC64_TOC16_DS \*ABS\*\+0x157f00d8
[0-9a-f ]*: 7d 69 03 a6 mtctr r11
[0-9a-f ]*: 4e 80 04 20 bctr
 
[0-9a-f ]*<.*long_branch.*>:
[0-9a-f ]*: 49 bf 00 10 b .* <far>
[0-9a-f ]*: R_PPC64_REL24 \*ABS\*\+0x137e00ec
 
[0-9a-f ]*<.*plt_branch.*>:
[0-9a-f ]*: e9 62 80 08 ld r11,-32760\(r2\)
[0-9a-f ]*: R_PPC64_TOC16_DS \*ABS\*\+0x157f00e0
[0-9a-f ]*: 7d 69 03 a6 mtctr r11
[0-9a-f ]*: 4e 80 04 20 bctr
\.\.\.
 
0*137e00ec <far>:
[0-9a-f ]*: 4e 80 00 20 blr
\.\.\.
 
0*13bf00d0 <far2far>:
[0-9a-f ]*: 4e 80 00 20 blr
\.\.\.
 
0*157e00d4 <huge>:
[0-9a-f ]*: 4e 80 00 20 blr
 
Disassembly of section \.branch_lt:
 
0*157f00d8 <\.branch_lt>:
[0-9a-f ]*: 00 00 00 00 .*
[0-9a-f ]*: R_PPC64_RELATIVE \*ABS\*\+0x13bf00d0
[0-9a-f ]*: 13 bf 00 d0 .*
[0-9a-f ]*: 00 00 00 00 .*
[0-9a-f ]*: R_PPC64_RELATIVE \*ABS\*\+0x157e00d4
[0-9a-f ]*: 15 7e 00 d4 .*
/tlsso.g
0,0 → 1,15
#source: tls.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -sj.got
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.got:
.* 00000000 00018778 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
/sdalib.s
0,0 → 1,5
.globl lib_var
.type lib_var, @object
.size lib_var, 2
lib_var:
.word 1
/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 0x10000
 
#...
/attr-gnu-4-01.d
0,0 → 1,10
#source: attr-gnu-4-0.s
#source: attr-gnu-4-1.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Hard float
/attr-gnu-4-20.d
0,0 → 1,10
#source: attr-gnu-4-2.s
#source: attr-gnu-4-0.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Soft float
/tls.s
0,0 → 1,92
.section ".tbss","awT",@nobits
.global _start,gd0,ld0,ld1,ld2,ie0,le0,le1
.align 3
gd0: .space 8
ld0: .space 8
ld1: .space 8
ld2: .space 8
ie0: .space 8
le0: .space 8
le1: .space 8
 
.section ".tdata","awT",@progbits
.align 3
gd4: .quad 0x123456789abcdef0
ld4: .quad 0x23456789abcdef01
ld5: .quad 0x3456789abcdef012
ld6: .quad 0x456789abcdef0123
ie4: .quad 0x56789abcdef01234
le4: .quad 0x6789abcdef012345
le5: .quad 0x789abcdef0123456
 
.text
_start:
#extern syms
#GD
addi 3,2,gd@got@tlsgd #R_PPC64_GOT_TLSGD16 gd
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
#LD
addi 3,2,ld@got@tlsld #R_PPC64_GOT_TLSLD16 ld
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
#global syms
#GD
addi 3,2,gd0@got@tlsgd #R_PPC64_GOT_TLSGD16 gd0
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
#LD
addi 3,2,ld0@got@tlsld #R_PPC64_GOT_TLSLD16 ld0
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
addi 9,3,ld0@dtprel #R_PPC64_DTPREL16 ld0
 
addis 9,3,ld1@dtprel@ha #R_PPC64_DTPREL16_HA ld1
lwz 10,ld1@dtprel@l(9) #R_PPC64_DTPREL16_LO ld1
 
ld 9,ld2@got@dtprel(2) #R_PPC64_GOT_DTPREL16_DS ld2
ldx 10,9,3
 
#IE
ld 9,ie0@got@tprel(2) #R_PPC64_GOT_TPREL16_DS ie0
lhzx 10,9,ie0@tls #R_PPC64_TLS ie0
 
#LE
lbz 10,le0@tprel(13) #R_PPC64_TPREL16 le0
 
addis 9,13,le1@tprel@ha #R_PPC64_TPREL16_HA le1
stb 10,le1@tprel@l(9) #R_PPC64_TPREL16_LO le1
 
#local syms
#GD
addi 3,2,gd4@got@tlsgd #R_PPC64_GOT_TLSGD16 gd4
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
#LD
addi 3,2,ld4@got@tlsld #R_PPC64_GOT_TLSLD16 ld4
bl .__tls_get_addr #R_PPC64_REL24 .__tls_get_addr
nop
 
std 10,ld4@dtprel(3) #R_PPC64_DTPREL16_DS ld4
 
addis 9,3,ld5@dtprel@ha #R_PPC64_DTPREL16_HA ld5
stw 10,ld5@dtprel@l(9) #R_PPC64_DTPREL16_LO ld5
 
ld 9,ld6@got@dtprel(2) #R_PPC64_GOT_DTPREL16_DS ld6
stdx 10,9,3
 
#IE
ld 9,ie0@got@tprel(2) #R_PPC64_GOT_TPREL16_DS ie4
sthx 10,9,ie0@tls #R_PPC64_TLS ie4
 
#LE
lwa 10,le4@tprel(13) #R_PPC64_TPREL16 le4
 
addis 9,13,le5@tprel@ha #R_PPC64_TPREL16_HA le5
lha 10,le5@tprel@l(9) #R_PPC64_TPREL16_LO le5
 
/sdadyn.d
0,0 → 1,8
 
.*: +file format elf32-powerpc
 
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
#...
.* R_PPC_COPY lib_var
#pass
/tlsso.r
0,0 → 1,127
#source: tls.s
#as: -a64
#ld: -shared -melf64ppc
#readelf: -WSsrl
#target: powerpc64*-*-*
 
There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
 
Section Headers:
+\[Nr\] Name +Type +Address +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]+\] \.rela\.dyn .*
+\[[ 0-9]+\] \.rela\.plt .*
+\[[ 0-9]+\] \.text .*
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic .*
+\[[ 0-9]+\] \.branch_lt .*
+\[[ 0-9]+\] \.got .*
+\[[ 0-9]+\] \.plt .*
+\[[ 0-9]+\] \.shstrtab .*
+\[[ 0-9]+\] \.symtab .*
+\[[ 0-9]+\] \.strtab .*
#...
 
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 .* R E 0x10000
+LOAD .* RW +0x10000
+DYNAMIC .* RW +0x8
+TLS .* 0x0+38 0x0+70 R +0x8
 
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+01 +\.tdata \.dynamic \.got \.plt
+02 +\.dynamic
+03 +\.tdata \.tbss
 
Relocation section '\.rela\.dyn' at offset .* contains 16 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_TPREL16 +0+60 le0 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_HA +0+68 le1 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_LO +0+68 le1 \+ 0
[0-9a-f ]+R_PPC64_TPREL16_DS +0+105f0 \.tdata \+ 28
[0-9a-f ]+R_PPC64_TPREL16_HA +0+105f0 \.tdata \+ 30
[0-9a-f ]+R_PPC64_TPREL16_LO +0+105f0 \.tdata \+ 30
[0-9a-f ]+R_PPC64_DTPMOD64 +0+
[0-9a-f ]+R_PPC64_DTPREL64 +0+
[0-9a-f ]+R_PPC64_DTPREL64 +0+18
[0-9a-f ]+R_PPC64_DTPMOD64 +0+
[0-9a-f ]+R_PPC64_DTPMOD64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+ gd \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+50 ld2 \+ 0
[0-9a-f ]+R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
[0-9a-f ]+R_PPC64_DTPREL64 +0+38 gd0 \+ 0
[0-9a-f ]+R_PPC64_TPREL64 +0+58 ie0 \+ 0
 
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f ]+R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
 
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +8 le0
.* NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +8 ld0
.* TLS +GLOBAL DEFAULT +8 le1
.* TLS +GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +6 _start
.* TLS +GLOBAL DEFAULT +8 ld2
.* TLS +GLOBAL DEFAULT +8 ld1
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
.* TLS +GLOBAL DEFAULT +8 gd0
.* TLS +GLOBAL DEFAULT +8 ie0
 
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
.* NOTYPE +LOCAL +DEFAULT +UND
.* SECTION LOCAL +DEFAULT +1
.* SECTION LOCAL +DEFAULT +2
.* SECTION LOCAL +DEFAULT +3
.* SECTION LOCAL +DEFAULT +4
.* SECTION LOCAL +DEFAULT +5
.* SECTION LOCAL +DEFAULT +6
.* SECTION LOCAL +DEFAULT +7
.* SECTION LOCAL +DEFAULT +8
.* SECTION LOCAL +DEFAULT +9
.* SECTION LOCAL +DEFAULT +10
.* SECTION LOCAL +DEFAULT +11
.* SECTION LOCAL +DEFAULT +12
.* TLS +LOCAL +DEFAULT +7 gd4
.* TLS +LOCAL +DEFAULT +7 ld4
.* TLS +LOCAL +DEFAULT +7 ld5
.* TLS +LOCAL +DEFAULT +7 ld6
.* TLS +LOCAL +DEFAULT +7 ie4
.* TLS +LOCAL +DEFAULT +7 le4
.* TLS +LOCAL +DEFAULT +7 le5
.* OBJECT +LOCAL +HIDDEN +ABS _DYNAMIC
.* NOTYPE +LOCAL +DEFAULT +6 \.__tls_get_addr
.* TLS +GLOBAL DEFAULT +UND gd
.* TLS +GLOBAL DEFAULT +8 le0
.* NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
.* TLS +GLOBAL DEFAULT +8 ld0
.* TLS +GLOBAL DEFAULT +8 le1
.* TLS +GLOBAL DEFAULT +UND ld
.* NOTYPE +GLOBAL DEFAULT +6 _start
.* TLS +GLOBAL DEFAULT +8 ld2
.* TLS +GLOBAL DEFAULT +8 ld1
.* NOTYPE +GLOBAL DEFAULT +ABS __bss_start
.* NOTYPE +GLOBAL DEFAULT +ABS _edata
.* NOTYPE +GLOBAL DEFAULT +ABS _end
.* TLS +GLOBAL DEFAULT +8 gd0
.* TLS +GLOBAL DEFAULT +8 ie0
/tls.t
0,0 → 1,14
#source: tls.s
#source: tlslib.s
#as: -a64
#ld: -melf64ppc
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
.* 12345678 9abcdef0 23456789 abcdef01 .*
.* 3456789a bcdef012 456789ab cdef0123 .*
.* 56789abc def01234 6789abcd ef012345 .*
.* 789abcde f0123456 00c0ffee .*
/vxworks1.s
0,0 → 1,14
.text
.globl _start
.type _start,@function
_start:
bl foo@plt
bl sexternal@plt
bl sglobal@plt
.size _start, .-_start
 
.globl sexternal
.type sexternal,@function
sexternal:
blr
.size sexternal, .-sexternal
/reloc.s
0,0 → 1,9
.section echidna
.long .text
 
.section platypus,"ax"
.long .text
 
.text
b _start@plt
nop
/attr-gnu-4-22.d
0,0 → 1,10
#source: attr-gnu-4-2.s
#source: attr-gnu-4-2.s
#as: -a32
#ld: -r -melf32ppc
#readelf: -A
#target: powerpc*-*-*
 
Attribute Section: gnu
File Attributes
Tag_GNU_Power_ABI_FP: Soft float
/tlsso.t
0,0 → 1,13
#source: tls.s
#as: -a64
#ld: -shared -melf64ppc
#objdump: -sj.tdata
#target: powerpc64*-*-*
 
.*: +file format elf64-powerpc
 
Contents of section \.tdata:
.* 12345678 9abcdef0 23456789 abcdef01 .*
.* 3456789a bcdef012 456789ab cdef0123 .*
.* 56789abc def01234 6789abcd ef012345 .*
.* 789abcde f0123456 .*
/relbrlt.s
0,0 → 1,34
.text
.global _start
_start:
1:
bl far
nop
bl far2far
nop
bl huge
nop
.long 0
b 1b
.space 0x1bf0000
 
.section .text.pad1,"ax"
.space 0x1bf0000
 
.section .text.far,"ax"
far:
blr
 
.section .text.pad2,"ax"
.space 0x40ffe0
 
.section .text.far2far,"ax"
far2far:
blr
 
.section .text.pad3,"ax"
.space 0x1bf0000
 
.section .text.huge,"ax"
huge:
blr
/vxworks1.rd
0,0 → 1,22
 
Relocation section '\.rela\.plt' at offset .* contains 2 entries:
Offset Info Type Sym\.Value Sym\. Name \+ Addend
0009040c .*15 R_PPC_JMP_SLOT 00080820 sglobal \+ 0
00090410 .*15 R_PPC_JMP_SLOT 00080840 foo \+ 0
 
Relocation section '\.rela\.text' at offset .* contains 3 entries:
Offset Info Type Sym\.Value Sym\. Name \+ Addend
00080c00 .*12 R_PPC_PLTREL24 00080800 \.plt \+ 40
00080c04 .*12 R_PPC_PLTREL24 00080c0c sexternal \+ 0
00080c08 .*12 R_PPC_PLTREL24 00080800 \.plt \+ 20
 
Relocation section '\.rela\.plt\.unloaded' at offset .* contains 8 entries:
Offset Info Type Sym\.Value Sym\. Name \+ Addend
00080802 .*06 R_PPC_ADDR16_HA 00090400 _GLOBAL_OFFSET_TABLE_ \+ 0
00080806 .*04 R_PPC_ADDR16_LO 00090400 _GLOBAL_OFFSET_TABLE_ \+ 0
00080822 .*06 R_PPC_ADDR16_HA 00090400 _GLOBAL_OFFSET_TABLE_ \+ c
00080826 .*04 R_PPC_ADDR16_LO 00090400 _GLOBAL_OFFSET_TABLE_ \+ c
0009040c .*01 R_PPC_ADDR32 00080800 _PROCEDURE_LINKAGE_TAB.* \+ 30
00080842 .*06 R_PPC_ADDR16_HA 00090400 _GLOBAL_OFFSET_TABLE_ \+ 10
00080846 .*04 R_PPC_ADDR16_LO 00090400 _GLOBAL_OFFSET_TABLE_ \+ 10
00090410 .*01 R_PPC_ADDR32 00080800 _PROCEDURE_LINKAGE_TAB.* \+ 50
/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 0x10000
LOAD .* 0x00090000 0x00090000 .* RW 0x10000
DYNAMIC .*
 
#...
/vxworks1-lib.sd
0,0 → 1,12
#...
Program Headers:
Type .* Flg Align
LOAD .* R E 0x10000
LOAD .* RW 0x10000
DYNAMIC .* RW 0x4
 
Section to Segment mapping:
Segment Sections\.\.\.
00 .* \.plt .*
01 .* \.got .*
02 .* \.dynamic $

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.