URL
https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk
Subversion Repositories open8_urisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/open8_urisc/trunk/gnu/binutils/ld/testsuite
- from Rev 148 to Rev 157
- ↔ Reverse comparison
Rev 148 → Rev 157
/ld-shared/shared.exp
234,7 → 234,9
if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } { |
setup_xfail "sparc*-*-linux*" |
} |
setup_xfail "x86_64-*-linux*" |
if { [is_elf64 $tmpdir/mainnp.o] } { |
setup_xfail "x86_64-*-linux*" |
} |
setup_xfail "s390x-*-linux*" |
if [ string match $shared_needs_pic "yes" ] { |
setup_xfail "arm*-*-linux*" |
257,7 → 259,9
if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } { |
setup_xfail "sparc*-*-linux*" |
} |
setup_xfail "x86_64-*-linux*" |
if { [is_elf64 $tmpdir/mainnp.o] } { |
setup_xfail "x86_64-*-linux*" |
} |
setup_xfail "s390x-*-linux*" |
if [ string match $shared_needs_pic "yes" ] { |
setup_xfail "arm*-*-linux*" |
310,7 → 314,9
if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainp.o] } { |
setup_xfail "sparc*-*-linux*" |
} |
setup_xfail "x86_64-*-linux*" |
if { [is_elf64 $tmpdir/mainp.o] } { |
setup_xfail "x86_64-*-linux*" |
} |
setup_xfail "s390x-*-linux*" |
if [ string match $shared_needs_pic "yes" ] { |
setup_xfail "arm*-*-linux*" |
/ld-arm/fix-arm1176-on.d
0,0 → 1,20
|
.+: file format elf32-littlearm |
|
|
Disassembly of section .foo: |
|
[0-9a-f]+ <_start>: |
[0-9a-f]+: f000 f800 bl 2001018 <__func_to_branch_to_veneer> |
|
[0-9a-f]+ <__func_to_branch_to_veneer>: |
[0-9a-f]+: 4778 bx pc |
[0-9a-f]+: 46c0 nop ; \(mov r8, r8\) |
[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; 2001020 <__func_to_branch_to_veneer\+0x8> |
[0-9a-f]+: 00008000 .word 0x00008000 |
[0-9a-f]+: 00000000 .word 0x00000000 |
|
Disassembly of section .text: |
|
[0-9a-f]+ <func_to_branch_to>: |
[0-9a-f]+: e12fff1e bx lr |
/ld-arm/fix-arm1176.s
0,0 → 1,15
.syntax unified |
.globl _start |
.globl func_to_branch_to |
|
.arm |
.text |
func_to_branch_to: |
bx lr |
|
.thumb |
.section .foo, "xa" |
.thumb_func |
_start: |
bl func_to_branch_to |
|
/ld-arm/arm-elf.exp
137,7 → 137,7
{"arm-rel32" "-shared -T arm-dyn.ld" "" {arm-rel32.s} |
{{objdump -Rsj.data arm-rel32.d}} |
"arm-rel32"} |
{"arm-call" "-static -T arm.ld" "-meabi=4" {arm-call1.s arm-call2.s} |
{"arm-call" "--no-fix-arm1176 -static -T arm.ld" "-meabi=4" {arm-call1.s arm-call2.s} |
{{objdump -d arm-call.d}} |
"arm-call"} |
{"TLS shared library" "-shared -T arm-lib.ld" "" {tls-lib.s} |
149,16 → 149,16
{"TLS gnu shared library got" "-shared -T arm-dyn.ld" "" {tls-gdesc-got.s} |
{{objdump "-fDR -j .got" tls-gdesc-got.d}} |
"tls-lib2-got.so"} |
{"TLS gnu shared library inlined trampoline" "-shared -T arm-dyn.ld" "" {tls-descseq.s} |
{"TLS gnu shared library inlined trampoline" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-descseq.s} |
{{objdump -fdw tls-descseq.d} {objdump -Rw tls-descseq.r}} |
"tls-lib2inline.so"} |
{"TLS shared library gdesc local" "-shared -T arm-dyn.ld" "" {tls-lib-loc.s} |
{"TLS shared library gdesc local" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-lib-loc.s} |
{{objdump -fdw tls-lib-loc.d} {objdump -Rw tls-lib-loc.r}} |
"tls-lib-loc.so"} |
{"TLS gnu GD to IE relaxation" "-static -T arm-dyn.ld" "" {tls-gdierelax.s} |
{{objdump -fdw tls-gdierelax.d}} |
"tls-app-rel-ie"} |
{"TLS gnu GD to IE shared relaxation" "-shared -T arm-dyn.ld" "" {tls-gdierelax2.s} |
{"TLS gnu GD to IE shared relaxation" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-gdierelax2.s} |
{{objdump -fdw tls-gdierelax2.d}} |
"tls-app-rel-ie2"} |
{"TLS gnu GD to LE relaxation" "-T arm-dyn.ld" "" {tls-gdlerelax.s} |
507,7 → 507,7
{"MOVW/MOVT against shared libraries" "tmpdir/arm-lib.so" "" {arm-app-movw.s} |
{{objdump -Rw arm-app.r}} |
"arm-app-movw"} |
{"Thumb-2-as-Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-as-thumb1-bad.s} |
{"Thumb-2-as-Thumb-1 BL" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-as-thumb1-bad.s} |
{{objdump -d thumb2-bl-as-thumb1-bad.d}} |
"thumb2-bl-as-thumb1-bad"} |
{"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-bad.s} |
530,7 → 530,7
{"ARM-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "" {farcall-arm-thumb.s} |
{{objdump -d farcall-arm-thumb.d}} |
"farcall-arm-thumb"} |
{"ARM-Thumb farcall with BLX" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-arm-thumb.s} |
{"ARM-Thumb farcall with BLX" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-arm-thumb.s} |
{{objdump -d farcall-arm-thumb-blx.d}} |
"farcall-arm-thumb-blx"} |
{"ARM-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" {farcall-arm-thumb.s} |
540,7 → 540,7
{{objdump -d farcall-arm-thumb-blx-pic-veneer.d}} |
"farcall-arm-thumb-blx-pic-veneer"} |
|
{"Thumb-Thumb farcall with BLX" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-thumb-thumb.s} |
{"Thumb-Thumb farcall with BLX" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-thumb-thumb.s} |
{{objdump -d farcall-thumb-thumb-blx.d}} |
"farcall-thumb-thumb-blx"} |
{"Thumb-Thumb farcall M profile" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv7-m" {farcall-thumb-thumb.s} |
552,7 → 552,7
{"Thumb-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv4t" {farcall-thumb-thumb.s} |
{{objdump -d farcall-thumb-thumb.d}} |
"farcall-thumb-thumb"} |
{"Thumb-Thumb farcall with BLX (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv5t" {farcall-thumb-thumb.s} |
{"Thumb-Thumb farcall with BLX (PIC veneer)" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv5t" {farcall-thumb-thumb.s} |
{{objdump -d farcall-thumb-thumb-blx-pic-veneer.d}} |
"farcall-thumb-thumb-blx-pic-veneer"} |
{"Thumb-Thumb farcall M profile (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv7-m" {farcall-thumb-thumb.s} |
574,10 → 574,10
{"Thumb-ARM (short) call" "-Ttext 0x1000 --section-start .foo=0x0002014" "-W" {farcall-thumb-arm-short.s} |
{{objdump -d farcall-thumb-arm-short.d}} |
"farcall-thumb-arm-short"} |
{"Thumb-ARM farcall with BLX" "-Ttext 0x1c01010 --section-start .foo=0x2001014" "-W -march=armv5t" {farcall-thumb-arm.s} |
{"Thumb-ARM farcall with BLX" "--no-fix-arm1176 -Ttext 0x1c01010 --section-start .foo=0x2001014" "-W -march=armv5t" {farcall-thumb-arm.s} |
{{objdump -d farcall-thumb-arm-blx.d}} |
"farcall-thumb-arm-blx"} |
{"Thumb-ARM farcall with BLX (PIC veneer)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "-W -march=armv5t" {farcall-thumb-arm.s} |
{"Thumb-ARM farcall with BLX (PIC veneer)" "--no-fix-arm1176 -Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "-W -march=armv5t" {farcall-thumb-arm.s} |
{{objdump -d farcall-thumb-arm-blx-pic-veneer.d}} |
"farcall-thumb-arm-blx-pic-veneer"} |
{"Thumb-ARM farcall (PIC veneer)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "-W" {farcall-thumb-arm.s} |
617,7 → 617,7
{{objdump -fdw farcall-mixed-lib-v4t.d}} |
"farcall-mixed-lib.so"} |
|
{"Mixed ARM/Thumb shared library with long branches (v5t)" "-shared -T arm-lib.ld" "-march=armv5t" |
{"Mixed ARM/Thumb shared library with long branches (v5t)" "--no-fix-arm1176 -shared -T arm-lib.ld" "-march=armv5t" |
{farcall-mixed-lib1.s farcall-mixed-lib2.s} |
{{objdump -fdw farcall-mixed-lib.d}} |
"farcall-mixed-lib.so"} |
627,24 → 627,24
"farcall-data"} |
|
{"R_ARM_THM_JUMP24 Relocation veneers: Short 1" |
"--section-start destsect=0x00009000 --section-start .text=0x8000" |
"--no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000" |
"-march=armv7-a -mthumb" |
{jump-reloc-veneers.s} |
{{objdump -d jump-reloc-veneers-short1.d}} |
"jump-reloc-veneers-short1"} |
{"R_ARM_THM_JUMP24 Relocation veneers: Short 2" |
"--section-start destsect=0x00900000 --section-start .text=0x8000" |
"--no-fix-arm1176 --section-start destsect=0x00900000 --section-start .text=0x8000" |
"-march=armv7-a -mthumb" |
{jump-reloc-veneers.s} |
{{objdump -d jump-reloc-veneers-short2.d}} |
"jump-reloc-veneers-short2"} |
{"R_ARM_THM_JUMP24 Relocation veneers: Long" |
"--section-start destsect=0x09000000 --section-start .text=0x8000" |
"--no-fix-arm1176 --section-start destsect=0x09000000 --section-start .text=0x8000" |
"-march=armv7-a -mthumb" |
{jump-reloc-veneers.s} |
{{objdump -d jump-reloc-veneers-long.d}} |
"jump-reloc-veneers-long"} |
{"TLS gnu shared library" "-shared -T arm-dyn.ld" "" {tls-gdesc.s} |
{"TLS gnu shared library" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-gdesc.s} |
{{objdump -fdw tls-gdesc.d} {objdump -Rw tls-gdesc.r}} |
"tls-lib2.so"} |
{"TLS gnu shared library non-lazy" "-z now -shared -T arm-dyn.ld" "" {tls-gdesc.s} |
659,6 → 659,31
{"TLS thumb1" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" {tls-thumb1.s} |
{{objdump -fdw tls-thumb1.d}} |
"tls-thumb1"} |
|
{"erratum 760522 fix (default for v6z)" "--section-start=.foo=0x2001014" |
"-march=armv6z" {fix-arm1176.s} |
{{objdump -d fix-arm1176-on.d}} |
"fix-arm1176-1"} |
{"erratum 760522 fix (explicitly on at v6z)" "--section-start=.foo=0x2001014 --fix-arm1176" |
"-march=armv6z" {fix-arm1176.s} |
{{objdump -d fix-arm1176-on.d}} |
"fix-arm1176-2"} |
{"erratum 760522 fix (explicitly off at v6z)" "--section-start=.foo=0x2001014 --no-fix-arm1176" |
"-march=armv6z" {fix-arm1176.s} |
{{objdump -d fix-arm1176-off.d}} |
"fix-arm1176-3"} |
{"erratum 760522 fix (default for v5)" "--section-start=.foo=0x2001014 " |
"-march=armv5te" {fix-arm1176.s} |
{{objdump -d fix-arm1176-on.d}} |
"fix-arm1176-4"} |
{"erratum 760522 fix (default for v7-a)" "--section-start=.foo=0x2001014 " |
"-march=armv7-a" {fix-arm1176.s} |
{{objdump -d fix-arm1176-off.d}} |
"fix-arm1176-5"} |
{"erratum 760522 fix (default for ARM1156)" "--section-start=.foo=0x2001014 " |
"-mcpu=arm1156t2f-s" {fix-arm1176.s} |
{{objdump -d fix-arm1176-off.d}} |
"fix-arm1176-6"} |
} |
|
run_ld_link_tests $armeabitests |
/ld-arm/fix-arm1176-off.d
0,0 → 1,17
|
.*: file format elf32-littlearm |
|
|
Disassembly of section .foo: |
|
[0-9a-f]+ <_start>: |
[0-9a-f]+: f000 e800 blx 2001018 <__func_to_branch_to_veneer> |
|
[0-9a-f]+ <__func_to_branch_to_veneer>: |
[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; 200101c <__func_to_branch_to_veneer\+0x4> |
[0-9a-f]+: 00008000 .word 0x00008000 |
|
Disassembly of section .text: |
|
[0-9a-f]+ <func_to_branch_to>: |
[0-9a-f]+: e12fff1e bx lr |
/ld-powerpc/tlsexe.d
21,7 → 21,6
.* 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 21 bctrl |
.* e9 61 00 20 ld r11,32\(r1\) |
34,7 → 33,7
.* 60 00 00 00 nop |
.* 7c 63 6a 14 add r3,r3,r13 |
.* 38 62 80 18 addi r3,r2,-32744 |
.* 4b ff ff a5 bl .* |
.* 4b ff ff a9 bl .* |
.* 60 00 00 00 nop |
.* 3c 6d 00 00 addis r3,r13,0 |
.* 60 00 00 00 nop |
68,7 → 67,6
.* e9 4d 90 2a lwa r10,-28632\(r13\) |
.* 3d 2d 00 00 addis r9,r13,0 |
.* a9 49 90 30 lha r10,-28624\(r9\) |
.* 60 00 00 00 nop |
.* 00 00 00 00 .* |
.* 00 01 02 00 .* |
.* <__glink_PLTresolve>: |
/ld-powerpc/tlsexe.g
7,6 → 7,6
.*: +file format elf64-powerpc |
|
Contents of section \.got: |
.* 00000000 10018618 ffffffff ffff8018 .* |
.* 00000000 10018610 ffffffff ffff8018 .* |
.* 00000000 00000000 00000000 00000000 .* |
.* 00000000 00000000 00000000 00000000 .* |
/ld-powerpc/tlsexe.r
16,11 → 16,10
+\[[ 0-9]+\] \.dynstr +.* |
+\[[ 0-9]+\] \.rela\.dyn +.* |
+\[[ 0-9]+\] \.rela\.plt +.* |
+\[[ 0-9]+\] \.text +PROGBITS .* 0+130 0+ +AX +0 +0 +8 |
+\[[ 0-9]+\] \.text +PROGBITS .* 0+128 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+160 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 +.* |
47,7 → 46,7
+0+ + |
+01 +\.interp |
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text |
+03 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt |
+03 +\.tdata \.dynamic \.got \.plt |
+04 +\.dynamic |
+05 +\.tdata \.tbss |
|
87,7 → 86,6
.* 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 |
/ld-powerpc/tocopt3.d
0,0 → 1,5
|
.*: file format .* |
|
Contents of section \.text: |
100000b0 3d22effe 39297f4a .* |
/ld-powerpc/tocopt3.s
0,0 → 1,9
.section .toc,"aw" |
0: |
.quad x |
|
.globl _start |
.text |
_start: |
addis 9,2,0b@toc@ha |
ld 9,0b@toc@l(9) |
/ld-powerpc/powerpc.exp
113,11 → 113,11
"tls32"} |
{"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" {} |
{} "libtlslib32.so"} |
{"TLS32 dynamic exec" "-melf32ppc tmpdir/tls32.o tmpdir/libtlslib32.so" "" {} |
{"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info 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" "" {} |
{"TLS32 shared" "-shared -melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o" "" {} |
{{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d} |
{objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}} |
"tls32.so"} |
156,15 → 156,15
{} "libtlslib.so"} |
{"TLS helper old shared lib" "-shared -melf64ppc" "-a64" {oldtlslib.s} |
{} "liboldlib.so"} |
{"TLS dynamic exec" "-melf64ppc tmpdir/tls.o tmpdir/libtlslib.so" "" {} |
{"TLS dynamic exec" "-melf64ppc --no-ld-generated-unwind-info 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 dynamic old" "-melf64ppc tmpdir/tls.o tmpdir/liboldlib.so" "" {} |
{"TLS dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/liboldlib.so" "" {} |
{{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d} |
{objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}} |
"tlsexeold"} |
{"TLS shared" "-shared -melf64ppc tmpdir/tls.o" "" {} |
{"TLS shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o" "" {} |
{{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d} |
{objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}} |
"tls.so"} |
172,17 → 172,17
{{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" |
{"TLSTOC dynamic exec" "-melf64ppc --no-ld-generated-unwind-info 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 dynamic old" "-melf64ppc tmpdir/tlstoc.o tmpdir/liboldlib.so" |
{"TLSTOC dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/liboldlib.so" |
"" {} |
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d} |
{objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}} |
"tlsexetocold"} |
{"TLSTOC shared" "-shared -melf64ppc tmpdir/tlstoc.o" "" {} |
{"TLSTOC shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o" "" {} |
{{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d} |
{objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}} |
"tlstoc.so"} |
204,7 → 204,13
{"sym@tocbase" "-shared -melf64ppc" "-a64" {symtocbase-1.s symtocbase-2.s} |
{{objdump -dj.data symtocbase.d}} "symtocbase.so"} |
{"TOC opt" "-melf64ppc" "-a64" {tocopt.s} |
{{objdump -s tocopt.d}} "tocopt"} |
{{objdump -s tocopt.d}} "tocopt"} |
{"TOC opt2" "-melf64ppc --defsym x=2" "-a64" {tocopt2.s} |
{{ld tocopt2.out} {objdump -s tocopt2.d}} "tocopt2"} |
{"TOC opt3" "-melf64ppc -no-keep-memory --defsym x=2" "-a64" {tocopt3.s} |
{{objdump -s tocopt3.d}} "tocopt3"} |
{"TOC opt4" "-melf64ppc -no-keep-memory --defsym x=2" "-a64" |
{tocopt4a.s tocopt4b.s} {{objdump -s tocopt4.d}} "tocopt4"} |
} |
|
|
/ld-powerpc/tocopt4.d
0,0 → 1,7
|
.*: file format .* |
|
Contents of section \.text: |
100000b0 e9298000 .* |
Contents of section \.got: |
100100b8 00000000 00000002 .* |
/ld-powerpc/tlsso.d
12,22 → 12,21
.* 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 .* |
.* 4b ff ff e9 bl .* |
.* e8 41 00 28 ld r2,40\(r1\) |
.* 38 62 80 50 addi r3,r2,-32688 |
.* 4b ff ff d9 bl .* |
.* 4b ff ff dd bl .* |
.* e8 41 00 28 ld r2,40\(r1\) |
.* 38 62 80 38 addi r3,r2,-32712 |
.* 4b ff ff cd bl .* |
.* 4b ff ff d1 bl .* |
.* e8 41 00 28 ld r2,40\(r1\) |
.* 38 62 80 50 addi r3,r2,-32688 |
.* 4b ff ff c1 bl .* |
.* 4b ff ff c5 bl .* |
.* e8 41 00 28 ld r2,40\(r1\) |
.* 39 23 80 40 addi r9,r3,-32704 |
.* 3d 23 00 00 addis r9,r3,0 |
40,10 → 39,10
.* 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 .* |
.* 4b ff ff 91 bl .* |
.* e8 41 00 28 ld r2,40\(r1\) |
.* 38 62 80 50 addi r3,r2,-32688 |
.* 4b ff ff 81 bl .* |
.* 4b ff ff 85 bl .* |
.* e8 41 00 28 ld r2,40\(r1\) |
.* f9 43 80 08 std r10,-32760\(r3\) |
.* 3d 23 00 00 addis r9,r3,0 |
55,6 → 54,7
.* e9 4d 00 02 lwa r10,0\(r13\) |
.* 3d 2d 00 00 addis r9,r13,0 |
.* a9 49 00 00 lha r10,0\(r9\) |
.* 60 00 00 00 nop |
.* 00 00 00 00 .* |
.* 00 01 02 20 .* |
.* <__glink_PLTresolve>: |
/ld-powerpc/relbrlt.d
1,6 → 1,6
#source: relbrlt.s |
#as: -a64 |
#ld: -melf64ppc --emit-relocs |
#ld: -melf64ppc --no-ld-generated-unwind-info --emit-relocs |
#objdump: -Dr |
|
.*: file format elf64-powerpc |
/ld-powerpc/tocopt2.out
0,0 → 1,6
.*: xt defined on removed toc entry |
/ld-powerpc/tlsso.r
18,7 → 18,6
+\[[ 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 .* |
40,7 → 39,7
Section to Segment mapping: |
+Segment Sections\.\.\. |
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text |
+01 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt |
+01 +\.tdata \.dynamic .got \.plt |
+02 +\.dynamic |
+03 +\.tdata \.tbss |
|
101,7 → 100,6
.* 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 |
/ld-powerpc/tlsexetoc.d
21,7 → 21,6
.* 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 21 bctrl |
.* e9 61 00 20 ld r11,32\(r1\) |
31,10 → 30,10
|
.* <_start>: |
.* 38 62 80 08 addi r3,r2,-32760 |
.* 4b ff ff b1 bl .* |
.* 4b ff ff b5 bl .* |
.* 60 00 00 00 nop |
.* 38 62 80 18 addi r3,r2,-32744 |
.* 4b ff ff a5 bl .* |
.* 4b ff ff a9 bl .* |
.* 60 00 00 00 nop |
.* 3c 6d 00 00 addis r3,r13,0 |
.* 60 00 00 00 nop |
52,7 → 51,6
.* 89 4d 90 60 lbz r10,-28576\(r13\) |
.* 3d 2d 00 00 addis r9,r13,0 |
.* 99 49 90 68 stb r10,-28568\(r9\) |
.* 60 00 00 00 nop |
.* 00 00 00 00 .* |
.* 00 01 02 28 .* |
.* <__glink_PLTresolve>: |
/ld-powerpc/tlsexetoc.g
7,7 → 7,7
.*: +file format elf64-powerpc |
|
Contents of section \.got: |
.* 00000000 100185b0 00000000 00000000 .* |
.* 00000000 100185a8 00000000 00000000 .* |
.* 00000000 00000000 00000000 00000000 .* |
.* 00000000 00000000 00000000 00000001 .* |
.* 00000000 00000000 00000000 00000001 .* |
/ld-powerpc/tlsexetoc.r
16,11 → 16,10
+\[[ 0-9]+\] \.dynstr +.* |
+\[[ 0-9]+\] \.rela\.dyn +.* |
+\[[ 0-9]+\] \.rela\.plt +.* |
+\[[ 0-9]+\] \.text +PROGBITS .* 0+f0 0+ +AX +0 +0 +8 |
+\[[ 0-9]+\] \.text +PROGBITS .* 0+e8 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+160 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 +.* |
47,7 → 46,7
+0+ + |
+01 +\.interp |
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text |
+03 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt |
+03 +\.tdata \.dynamic \.got \.plt |
+04 +\.dynamic |
+05 +\.tdata \.tbss |
|
86,7 → 85,6
.* 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 |
94,7 → 92,7
.* TLS +LOCAL +DEFAULT +8 ie4 |
.* TLS +LOCAL +DEFAULT +8 le4 |
.* TLS +LOCAL +DEFAULT +8 le5 |
.* NOTYPE +LOCAL +DEFAULT +12 \.Lie0 |
.* NOTYPE +LOCAL +DEFAULT +11 \.Lie0 |
.* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC |
.* (NOTYPE +LOCAL +DEFAULT +7 00000010\.plt_call\.__tls_get_addr(|_opt)\+0|(FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt)) |
.* (NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve|NOTYPE +LOCAL +DEFAULT +7 00000010\.plt_call\.__tls_get_addr(|_opt)\+0) |
/ld-powerpc/tlstocso.d
12,22 → 12,21
.* 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 .* |
.* 4b ff ff e9 bl .* |
.* e8 41 00 28 ld r2,40\(r1\) |
.* 38 62 80 18 addi r3,r2,-32744 |
.* 4b ff ff d9 bl .* |
.* 4b ff ff dd bl .* |
.* e8 41 00 28 ld r2,40\(r1\) |
.* 38 62 80 28 addi r3,r2,-32728 |
.* 4b ff ff cd bl .* |
.* 4b ff ff d1 bl .* |
.* e8 41 00 28 ld r2,40\(r1\) |
.* 38 62 80 38 addi r3,r2,-32712 |
.* 4b ff ff c1 bl .* |
.* 4b ff ff c5 bl .* |
.* e8 41 00 28 ld r2,40\(r1\) |
.* 39 23 80 40 addi r9,r3,-32704 |
.* 3d 23 00 00 addis r9,r3,0 |
39,6 → 38,7
.* 89 4d 00 00 lbz r10,0\(r13\) |
.* 3d 2d 00 00 addis r9,r13,0 |
.* 99 49 00 00 stb r10,0\(r9\) |
.* 60 00 00 00 nop |
.* 00 00 00 00 .* |
.* 00 01 02 18 .* |
.* <__glink_PLTresolve>: |
/ld-powerpc/tocopt4a.s
0,0 → 1,4
.globl _start |
.text |
_start: |
ld 9,xt@toc(9) |
/ld-powerpc/tlstocso.r
18,7 → 18,6
+\[[ 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 .* |
40,7 → 39,7
Section to Segment mapping: |
+Segment Sections\.\.\. |
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text |
+01 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt |
+01 +\.tdata \.dynamic \.got \.plt |
+02 +\.dynamic |
+03 +\.tdata \.tbss |
|
96,7 → 95,6
.* 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 |
104,7 → 102,7
.* TLS +LOCAL +DEFAULT +7 ie4 |
.* TLS +LOCAL +DEFAULT +7 le4 |
.* TLS +LOCAL +DEFAULT +7 le5 |
.* NOTYPE +LOCAL +DEFAULT +11 \.Lie0 |
.* NOTYPE +LOCAL +DEFAULT +10 \.Lie0 |
.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC |
.* NOTYPE +LOCAL +DEFAULT +6 00000010\.plt_call\.__tls_get_addr\+0 |
.* NOTYPE +LOCAL +DEFAULT +6 __glink_PLTresolve |
/ld-powerpc/tocopt2.d
0,0 → 1,5
|
.*: file format .* |
|
Contents of section \.text: |
100000b0 3d22effe 39297f4a .* |
/ld-powerpc/tocopt2.s
0,0 → 1,10
.globl xt |
.section .toc,"aw" |
xt: |
.quad x |
|
.globl _start |
.text |
_start: |
addis 9,2,xt@toc@ha |
ld 9,xt@toc@l(9) |
/ld-powerpc/tocopt4b.s
0,0 → 1,17
.section .toc,"aw" |
.globl xt |
xt: |
.quad x |
# |
# This testcase will fail with a warning "xt defined on removed toc entry" |
# if a large-toc access like the following is added to this file, because |
# toc analysis only considers toc accesses from the current object file. |
# The small-toc access from tocopt4a.s doesn't cause xt entry to be marked |
# !can_optimize. The testcase only passes because toc analysis considers |
# *no* access from the current file as being sufficiently unusual to |
# warrant keeping the toc entry. So, if you use global symbols on toc |
# entries, don't mix code models. |
# |
# .text |
# addis 9,2,xt@toc@ha |
# ld 9,xt@toc@l(9) |
/ld-i386/pr12921.s
0,0 → 1,25
.text |
.balign 4096 |
vtext: |
.p2align 4,,15 |
.globl _start |
.type _start, @function |
_start: |
ret |
.size _start, .-_start |
.globl vdata |
.data |
.align 4096 |
.type vdata, @object |
.size vdata, 4 |
vdata: |
.long 5 |
.comm vbss,65536,4096 |
.align 16 |
.type local, @object |
.size local, 24 |
local: |
.byte 77 |
.zero 7 |
.dc.a local |
.dc.a 0 |
/ld-i386/tlsnopic.dd
1,7 → 1,7
#source: tlsnopic1.s |
#source: tlsnopic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: i?86-*-* |
|
/ld-i386/tlsbindesc.sd
1,7 → 1,7
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info |
#objdump: -sj.got |
#target: i?86-*-* |
|
/ld-i386/tlsbin.rd
1,7 → 1,7
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info |
#readelf: -Ssrl |
#target: i?86-*-* |
|
/ld-i386/tlsdesc.rd
1,7 → 1,7
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#readelf: -Ssrl |
#target: i?86-*-* |
|
/ld-i386/tlsbindesc.dd
1,7 → 1,7
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: i?86-*-* |
|
/ld-i386/i386.exp
118,12 → 118,14
# readelf: Apply readelf options on result. Compare with regex (last arg). |
|
set i386tests { |
{"TLS -fpic -shared transitions" "-shared -melf_i386" |
{"TLS -fpic -shared transitions" |
"-shared -melf_i386 --no-ld-generated-unwind-info" |
"--32" {tlspic1.s tlspic2.s} |
{{readelf -Ssrl tlspic.rd} {objdump -drj.text tlspic.dd} |
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} |
"libtlspic.so"} |
{"TLS descriptor -fpic -shared transitions" "-shared -melf_i386" |
{"TLS descriptor -fpic -shared transitions" |
"-shared -melf_i386 --no-ld-generated-unwind-info" |
"--32" {tlsdesc.s tlspic2.s} |
{{readelf -Ssrl tlsdesc.rd} {objdump -drj.text tlsdesc.dd} |
{objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}} |
131,21 → 133,24
{"Helper shared library" "-shared -melf_i386" |
"--32" {tlslib.s} {} "libtlslib.so"} |
{"TLS -fpic and -fno-pic exec transitions" |
"-melf_i386 tmpdir/libtlslib.so" "--32" {tlsbinpic.s tlsbin.s} |
"-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info" |
"--32" {tlsbinpic.s tlsbin.s} |
{{readelf -Ssrl tlsbin.rd} {objdump -drj.text tlsbin.dd} |
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} |
"tlsbin"} |
{"TLS descriptor -fpic and -fno-pic exec transitions" |
"-melf_i386 tmpdir/libtlslib.so" "--32" {tlsbindesc.s tlsbin.s} |
"-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info" |
"--32" {tlsbindesc.s tlsbin.s} |
{{readelf -Ssrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd} |
{objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}} |
"tlsbindesc"} |
{"TLS -fno-pic -shared" "-shared -melf_i386" |
{"TLS -fno-pic -shared" "-shared -melf_i386 --no-ld-generated-unwind-info" |
"--32" {tlsnopic1.s tlsnopic2.s} |
{{readelf -Ssrl tlsnopic.rd} {objdump -drj.text tlsnopic.dd} |
{objdump -sj.got tlsnopic.sd}} "libtlsnopic.so"} |
{"TLS with global dynamic and descriptors" |
"-shared -melf_i386" "--32" {tlsgdesc.s} |
"-shared -melf_i386 --no-ld-generated-unwind-info" |
"--32" {tlsgdesc.s} |
{{readelf -Ssrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}} |
"libtlsgdesc.so"} |
{"TLS in debug sections" "-melf_i386" |
195,6 → 200,7
run_dump_test "nogot2" |
run_dump_test "discarded1" |
run_dump_test "pr12718" |
run_dump_test "pr12921" |
|
if { !([istarget "i?86-*-linux*"] |
|| [istarget "i?86-*-gnu*"] |
/ld-i386/tlsgdesc.dd
1,6 → 1,6
#source: tlsgdesc.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: i?86-*-* |
|
/ld-i386/tlsbin.sd
1,7 → 1,7
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info |
#objdump: -sj.got |
#target: i?86-*-* |
|
/ld-i386/tlsbindesc.td
1,7 → 1,7
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info |
#objdump: -sj.tdata |
#target: i?86-*-* |
|
/ld-i386/tlspic.rd
1,7 → 1,7
#source: tlspic1.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#readelf: -Ssrl |
#target: i?86-*-* |
|
/ld-i386/tlsdesc.sd
1,7 → 1,7
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#objdump: -s -j.got -j.got.plt |
#target: i?86-*-* |
|
/ld-i386/tlsbin.dd
1,7 → 1,7
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: i?86-*-* |
|
/ld-i386/tlsdesc.dd
1,7 → 1,7
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: i?86-*-* |
|
/ld-i386/tlsnopic.rd
1,7 → 1,7
#source: tlsnopic1.s |
#source: tlsnopic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#readelf: -Ssrl |
#target: i?86-*-* |
|
/ld-i386/tlsbin.td
1,7 → 1,7
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info |
#objdump: -sj.tdata |
#target: i?86-*-* |
|
/ld-i386/tlspic.sd
1,7 → 1,7
#source: tlspic1.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#objdump: -sj.got |
#target: i?86-*-* |
|
/ld-i386/tlsdesc.td
1,7 → 1,7
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#objdump: -sj.tdata |
#target: i?86-*-* |
|
/ld-i386/vxworks1-lib.rd
1,4 → 1,9
|
Relocation section '\.rel\.plt' at offset .* contains 2 entries: |
Offset Info Type Sym\.Value Sym\. Name |
0008140c .*07 R_386_JUMP_SLOT 00000000 sexternal |
00081410 .*07 R_386_JUMP_SLOT 00080c27 sglobal |
|
Relocation section '\.rel\.dyn' at offset .* contains 4 entries: |
Offset Info Type Sym\.Value Sym\. Name |
00081800 00000008 R_386_RELATIVE * |
5,8 → 10,3
00080c03 .*01 R_386_32 00000000 __GOTT_BASE__ |
00080c09 .*01 R_386_32 00000000 __GOTT_INDEX__ |
00081414 .*06 R_386_GLOB_DAT 00081c00 x |
|
Relocation section '\.rel\.plt' at offset .* contains 2 entries: |
Offset Info Type Sym\.Value Sym\. Name |
0008140c .*07 R_386_JUMP_SLOT 00000000 sexternal |
00081410 .*07 R_386_JUMP_SLOT 00080c27 sglobal |
/ld-i386/tlspic.dd
1,7 → 1,7
#source: tlspic1.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: i?86-*-* |
|
/ld-i386/tlsbindesc.rd
1,7 → 1,7
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --32 |
#ld: -melf_i386 tmpdir/libtlslib.so |
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info |
#readelf: -Ssrl |
#target: i?86-*-* |
|
/ld-i386/tlsnopic.sd
1,7 → 1,7
#source: tlsnopic1.s |
#source: tlsnopic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#objdump: -sj.got |
#target: i?86-*-* |
|
/ld-i386/pr12921.d
0,0 → 1,21
#name: PR ld/12921 |
#as: --32 |
#ld: -melf_i386 |
#readelf: -S --wide |
|
There are 7 section headers, starting at offset 0x204c: |
|
Section Headers: |
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al |
\[ 0\] NULL 00000000 000000 000000 00 0 0 0 |
\[ 1\] .text PROGBITS 08049000 001000 000001 00 AX 0 0 4096 |
\[ 2\] .data PROGBITS 0804b000 002000 000020 00 WA 0 0 4096 |
\[ 3\] .bss NOBITS 0804c000 002020 010000 00 WA 0 0 4096 |
\[ 4\] .shstrtab STRTAB 00000000 002020 00002c 00 0 0 1 |
\[ 5\] .symtab SYMTAB 00000000 002164 0000c0 10 6 6 4 |
\[ 6\] .strtab STRTAB 00000000 002224 000037 00 0 0 1 |
Key to Flags: |
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) |
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) |
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) |
#pass |
/ld-i386/tlspic.td
1,7 → 1,7
#source: tlspic1.s |
#source: tlspic2.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#objdump: -sj.tdata |
#target: i?86-*-* |
|
/ld-i386/tlsgdesc.rd
1,6 → 1,6
#source: tlsgdesc.s |
#as: --32 |
#ld: -shared -melf_i386 |
#ld: -shared -melf_i386 --no-ld-generated-unwind-info |
#readelf: -Ssrl |
#target: i?86-*-* |
|
/ChangeLog
1,3 → 1,269
2011-08-22 Alan Modra <amodra@gmail.com> |
|
* ld-powerpc/tocopt4a.s, * ld-powerpc/tocopt4b.s, |
* ld-powerpc/tocopt4.d: New test. |
* ld-powerpc/powerpc.exp: Run it. |
|
2011-08-12 H.J. Lu <hongjiu.lu@intel.com> |
|
PR ld/13082 |
* ld-x86-64/pr13082-1.s: New. |
* ld-x86-64/pr13082-1a.d: Likewise. |
* ld-x86-64/pr13082-1b.d: Likewise. |
* ld-x86-64/pr13082-2.s: Likewise. |
* ld-x86-64/pr13082-2a.d: Likewise. |
* ld-x86-64/pr13082-2b.d: Likewise. |
* ld-x86-64/pr13082-3.s: Likewise. |
* ld-x86-64/pr13082-3a.d: Likewise. |
* ld-x86-64/pr13082-3b.d: Likewise. |
* ld-x86-64/pr13082-4.s: Likewise. |
* ld-x86-64/pr13082-4a.d: Likewise. |
* ld-x86-64/pr13082-4b.d: Likewise. |
* ld-x86-64/pr13082-5.s: Likewise. |
* ld-x86-64/pr13082-5a.d: Likewise. |
* ld-x86-64/pr13082-5b.d: Likewise. |
* ld-x86-64/pr13082-6.s: Likewise. |
* ld-x86-64/pr13082-6a.d: Likewise. |
* ld-x86-64/pr13082-6b.d: Likewise. |
|
* ld-x86-64/x86-64.exp: Run pr13082-[1-6][ab]. |
|
2011-08-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> |
|
* ld-arm/arm-elf.exp (armelftests): Update for new command-line |
options. |
(armeabitests): Update for new command-line options, and add |
new test cases. |
* ld-arm/fix-arm1176.s: Add test case. |
* ld-arm/fix-arm1176-off.d: Likewise. |
* ld-arm/fix-arm1176-on.d: Likewise. |
|
2011-08-05 Alan Modra <amodra@gmail.com> |
|
* ld-powerpc/tlsexe.r: Update for stripped .branch_lt. |
* ld-powerpc/tlsexetoc.r: Likewise. |
* ld-powerpc/tlsso.r: Likewise. |
* ld-powerpc/tlstocso.r: Likewise. |
|
2011-08-01 H.J. Lu <hongjiu.lu@intel.com> |
|
PR ld/13048 |
* ld-x86-64/ilp32-6.d: New. |
* ld-x86-64/ilp32-6.s: Likewise. |
* ld-x86-64/ilp32-7.d: Likewise. |
* ld-x86-64/ilp32-7.s: Likewise. |
* ld-x86-64/ilp32-8.d: Likewise. |
* ld-x86-64/ilp32-8.s: Likewise. |
* ld-x86-64/ilp32-9.d: Likewise. |
* ld-x86-64/ilp32-9.s: Likewise. |
|
* ld-x86-64/x86-64.exp: Run ilp32-6, ilp32-7, ilp32-8 and ilp32-9. |
|
2011-07-27 Roland McGrath <mcgrathr@google.com> |
|
* ld-i386/vxworks1-lib.rd: Swap order of sections expected in output. |
|
2011-07-26 Alan Modra <amodra@gmail.com> |
|
* ld-powerpc/powerpc.exp: Use --no-ld-generated-unwind-info |
with some tests. |
* ld-powerpc/relbrlt.d: Likewise. |
|
2011-07-25 Hans-Peter Nilsson <hp@bitrange.com> |
|
PR ld/12815 |
* ld-mmix/pr12815-1.d, ld-mmix/pr12815-1.s, ld-mmix/pr12815-1.ld, |
ld-mmix/pr12815-2.d, ld-mmix/pr12815-2.s: New tests. |
|
2011-07-24 Catherine Moore <clm@codesourcery.com> |
Chao-ying Fu <fu@mips.com> |
Maciej W. Rozycki <macro@codesourcery.com> |
|
* lib/ld-lib.exp (run_dump_test): Support distinct assembler |
flags for the same source named multiple times. |
* ld-mips-elf/jalx-1.s: New test source. |
* ld-mips-elf/jalx-1.d: New test output. |
* ld-mips-elf/jalx-1.ld: New test linker script. |
* ld-mips-elf/jalx-2-main.s: New test source. |
* ld-mips-elf/jalx-2-ex.s: Likewise. |
* ld-mips-elf/jalx-2-printf.s: Likewise. |
* ld-mips-elf/jalx-2.dd: New test output. |
* ld-mips-elf/jalx-2.ld: New test linker script. |
* ld-mips-elf/mips16-and-micromips.d: New test. |
* ld-mips-elf/mips-elf.exp: Run the new tests |
|
2011-07-22 H.J. Lu <hongjiu.lu@intel.com> |
|
* ld-x86-64/abs-k1om.d: New. |
* ld-x86-64/protected2-k1om.d: Likewise. |
* ld-x86-64/protected3-k1om.d: Likewise. |
|
* ld-x86-64/x86-64.exp: Run abs-k1om, protected2-k1om and |
protected3-k1om. |
|
2011-07-14 H.J. Lu <hongjiu.lu@intel.com> |
|
* ld-elf/binutils.exp (binutils_test): Also check ignored |
"-z relro". |
|
2011-07-14 Alan Modra <amodra@gmail.com> |
|
* ld-scripts/section-flags.exp: Pass --local-store 0:0 for |
spu. Rewrite using foreach. |
|
2011-07-14 Alan Modra <amodra@gmail.com> |
|
* ld-powerpc/tlsexe.d, * ld-powerpc/tlsexe.g. *ld-powerpc/tlsexe.r, |
* ld-powerpc/tlsexetoc.d, * ld-powerpc/tlsexetoc.g, |
* ld-powerpc/tlsexetoc.r, * ld-powerpc/tlsso.d, |
* ld-powerpc/tlstocso.d: Update for plt stub change. |
|
2011-07-11 Catherine Moore <clm@cm00re.com> |
|
* ld-scripts/section-flags-1.s: New. |
* ld-scripts/section-flags-1.t: New. |
* ld-scripts/section-flags-2.s: New. |
* ld-scripts/section-flags-2.t: New. |
* ld-scripts/section-flags.exp: New. |
|
2011-07-11 Alan Modra <amodra@gmail.com> |
|
* ld-powerpc/tocopt2.s, * ld-powerpc/tocopt2.out, |
* ld-powerpc/tocopt2.d: New test. |
* ld-powerpc/tocopt3.s, * ld-powerpc/tocopt3.d: New test. |
* ld-powerpc/powerpc.exp (ppc64elftests) Run them. |
|
2011-07-03 Samuel Thibault <samuel.thibault@gnu.org> |
Thomas Schwinge <thomas@schwinge.name> |
|
PR binutils/12913 |
* ld-ifunc/ifunc.exp: Update for changed output. |
* ld-unique/unique.exp: Likewise. |
|
2011-06-27 Nick Clifton <nickc@redhat.com> |
|
* ld-elf/elf.exp: Exlcude all v850 targets from note-3 test. |
|
2011-06-27 Alan Modra <amodra@gmail.com> |
|
* ld-elf/elf.exp: Exclude more targets from note-3 test. |
|
2011-06-24 H.J. Lu <hongjiu.lu@intel.com> |
|
PR ld/12921 |
* ld-i386/i386.exp: Run pr12921. |
* ld-x86-64/x86-64.exp: Likewise. |
|
* ld-i386/pr12921.d: New. |
* ld-i386/pr12921.s: Likewise. |
* ld-x86-64/pr12921.d: Likewise. |
* ld-x86-64/pr12921.s: Likewise. |
|
2011-06-22 Thomas Schwinge <thomas@schwinge.name> |
|
* ld-elf/elf.exp: Execute array_tests_pie tests on *-*-gnu*, too. |
|
2011-06-20 H.J. Lu <hongjiu.lu@intel.com> |
|
* ld-ifunc/ifunc-1-local-x86.d: Adjusted. |
* ld-ifunc/ifunc-1-x86.d: Likewise. |
* ld-ifunc/ifunc-3a-x86.d: Likewise. |
|
2011-06-20 H.J. Lu <hongjiu.lu@intel.com> |
|
* ld-elf/eh1.d: Revert x32 change. |
* ld-elf/eh2.d: Likewise. |
* ld-elf/eh3.d: Likewise. |
* ld-elf/eh4.d: Likewise. |
|
2011-06-20 Jakub Jelinek <jakub@redhat.com> |
|
PR ld/12570 |
* ld-x86-64/x86-64.exp: Link some testcases with |
--no-ld-generated-unwind-info. |
* ld-x86-64/tlsbin.rd: Add --no-ld-generated-unwind-info to ld |
comment. |
* ld-x86-64/tlsdesc.dd: Likewise. |
* ld-x86-64/tlspic.dd: Likewise. |
* ld-x86-64/tlsdesc.sd: Likewise. |
* ld-x86-64/tlspic.rd: Likewise. |
* ld-x86-64/tlsbindesc.rd: Likewise. |
* ld-x86-64/tlsbindesc.sd: Likewise. |
* ld-x86-64/tlsbin.td: Likewise. |
* ld-x86-64/tlsdesc.pd: Likewise. |
* ld-x86-64/tlsdesc.td: Likewise. |
* ld-x86-64/tlsbindesc.dd: Likewise. |
* ld-x86-64/tlsbin.dd: Likewise. |
* ld-x86-64/tlsgdesc.rd: Likewise. |
* ld-x86-64/tlspic.sd: Likewise. |
* ld-x86-64/tlsbindesc.td: Likewise. |
* ld-x86-64/tlspic.td: Likewise. |
* ld-x86-64/tlsbin.sd: Likewise. |
* ld-x86-64/ilp32-4.d: Likewise. |
* ld-x86-64/tlsgdesc.dd: Add --no-ld-generated-unwind-info to ld |
comment. Adjust. |
* ld-x86-64/tlsdesc.rd: Likewise. |
* ld-x86-64/tlsgd6.dd: Adjust. |
* ld-x86-64/tlsgd5.dd: Likewise. |
* ld-i386/i386.exp: Link some testcases with |
--no-ld-generated-unwind-info. |
* ld-i386/tlsbin.rd: Add --no-ld-generated-unwind-info to ld |
comment.. |
* ld-i386/tlsdesc.dd: Likewise. |
* ld-i386/tlspic.dd: Likewise. |
* ld-i386/tlsdesc.sd: Likewise. |
* ld-i386/tlsgdesc.dd: Likewise. |
* ld-i386/tlsnopic.sd: Likewise. |
* ld-i386/tlspic.rd: Likewise. |
* ld-i386/tlsdesc.rd: Likewise. |
* ld-i386/tlsbindesc.rd: Likewise. |
* ld-i386/tlsbindesc.sd: Likewise. |
* ld-i386/tlsbin.td: Likewise. |
* ld-i386/tlsdesc.td: Likewise. |
* ld-i386/tlsnopic.dd: Likewise. |
* ld-i386/tlsbindesc.dd: Likewise. |
* ld-i386/tlsbin.dd: Likewise. |
* ld-i386/tlsgdesc.rd: Likewise. |
* ld-i386/tlspic.sd: Likewise. |
* ld-i386/tlsnopic.rd: Likewise. |
* ld-i386/tlsbindesc.td: Likewise. |
* ld-i386/tlspic.td: Likewise. |
* ld-i386/tlsbin.sd: Likewise. |
|
2011-06-19 H.J. Lu <hongjiu.lu@intel.com> |
|
* ld-elf/eh1.d: Skip x32. |
* ld-elf/eh2.d: Likewise. |
* ld-elf/eh3.d: Likewise. |
* ld-elf/eh4.d: Likewise. |
|
* ld-elfvsb/elfvsb.exp: Only xfail 64bit x86_64-*-linux*. |
* ld-shared/shared.exp: Likewise. |
|
* ld-ifunc/ifunc-1-local-x86.d: Support x32. |
* ld-ifunc/ifunc-1-x86.d: Likewise. |
* ld-ifunc/ifunc-3a-x86.d: Likewise. |
* ld-x86-64/pcrel16.d: Likewise. |
|
* ld-x86-64/x86-64.exp (x86_64tests): Add missing -melf_x86_64. |
|
2011-06-16 Alan Modra <amodra@gmail.com> |
|
* ld-elfvers/vers2.ver: Don't assume any particular index for |
version reference. |
* ld-elfvers/vers3.ver: Likewise. |
* ld-elfvers/vers19.ver: Likewise. |
* ld-elfvers/vers22.ver: Likewise. |
* ld-elfvers/vers27d4.ver: Likewise. |
* ld-elfvers/vers28c.ver: Likewise. |
|
2011-06-14 Alan Modra <amodra@gmail.com> |
|
* ld-elf/elf.exp: Don't attempt to build symbol3.a for hppa64-hpux. |
* ld-elf/warn3.d: Correct target selection and comment. |
|
* ld-elf/pr12851.d: Correct target selection and comment. |
|
2011-06-13 Walter Lee <walt@tilera.com> |
|
* ld-elf/eh5.d: Don't run on tile*. |
/ld-unique/unique.exp
149,8 → 149,8
} |
|
# Check the object file. |
if {! [check_osabi tmpdir/unique.o {UNIX - Linux}]} { |
fail "Object containing unique does not have an OS/ABI field of LINUX" |
if {! [check_osabi tmpdir/unique.o {UNIX - GNU}]} { |
fail "Object containing unique does not have an OS/ABI field of GNU" |
set fails [expr $fails + 1] |
} |
|
164,8 → 164,8
} |
|
# Check the executable. |
if {! [check_osabi tmpdir/unique_prog {UNIX - Linux}]} { |
fail "Executable containing unique does not have an OS/ABI field of LINUX" |
if {! [check_osabi tmpdir/unique_prog {UNIX - GNU}]} { |
fail "Executable containing unique does not have an OS/ABI field of GNU" |
set fails [expr $fails + 1] |
} |
|
194,8 → 194,8
} |
|
# Check the unique PIC file. |
if {! [check_osabi tmpdir/unique_shared.o {UNIX - Linux}]} { |
fail "PIC Object containing unique does not have an OS/ABI field of LINUX" |
if {! [check_osabi tmpdir/unique_shared.o {UNIX - GNU}]} { |
fail "PIC Object containing unique does not have an OS/ABI field of GNU" |
set fails [expr $fails + 1] |
} |
|
209,8 → 209,8
} |
|
# Check the unique shared library. |
if {! [check_osabi tmpdir/libunique_shared.so {UNIX - Linux}]} { |
fail "Shared library containing unique does not have an OS/ABI field of LINUX" |
if {! [check_osabi tmpdir/libunique_shared.so {UNIX - GNU}]} { |
fail "Shared library containing unique does not have an OS/ABI field of GNU" |
set fails [expr $fails + 1] |
} |
|
/ld-elfvers/vers3.ver
1,4 → 1,4
Version References: |
required from tmpdir/vers1.so: |
0x0a7922b0 0x00 0[23] VERS_2.0 |
0x0a7922b0 0x00 ?? VERS_2.0 |
|
/ld-elfvers/vers28c.ver
1,4 → 1,4
Version References: |
required from tmpdir/vers28b.so: |
0x05aa7610 0x00 02 VERS.0 |
0x05aa7610 0x00 ?? VERS.0 |
|
/ld-elfvers/vers2.ver
4,5 → 4,5
|
Version References: |
required from tmpdir/vers1.so: |
0x0a7922b0 0x00 03 VERS_2.0 |
0x0a7922b0 0x00 ?? VERS_2.0 |
|
/ld-elfvers/vers27d4.ver
1,3 → 1,3
Version References: |
required from tmpdir/vers27a.so: |
0x05aa7610 0x00 02 VERS.0 |
0x05aa7610 0x00 ?? VERS.0 |
/ld-elfvers/vers19.ver
1,3 → 1,3
Version References: |
required from tmpdir/vers18.so: |
0x0a7922b0 0x00 0[23] VERS_2.0 |
0x0a7922b0 0x00 ?? VERS_2.0 |
/ld-elfvers/vers22.ver
1,4 → 1,4
Version References: |
required from tmpdir/vers22b.so: |
0x05aa7610 0x00 02 VERS.0 |
0x05aa7610 0x00 ?? VERS.0 |
|
/ld-elf/pr12851.d
3,11 → 3,8
#ld: --gc-sections |
#readelf: -s --wide |
#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-* |
#notarget: alpha-*-* hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* |
#xfail: cr16-*-* crx-*-* |
#notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* |
# generic linker targets don't support --gc-sections, nor do a bunch of others |
# cr16 and crx use non-standard scripts with memory regions, which don't play |
# well with unique group sections under ld -r. |
|
#... |
+.* _.stapsdt.base |
/ld-elf/binutils.exp
53,7 → 53,8
|
if { ![ld_simple_link $ld tmpdir/$test "$ld_options tmpdir/$test.o"] } { |
if { [string match "*not supported*" $link_output] |
|| [string match "*unrecognized option*" $link_output] } { |
|| [string match "*unrecognized option*" $link_output] |
|| [string match "*-z relro ignored*" $link_output] } { |
unsupported "$ld_options is not supported by this target" |
} else { |
unresolved "$test_name" |
/ld-elf/elf.exp
1,5 → 1,6
# Expect script for various ELF tests. |
# Copyright 2002, 2003, 2005, 2007, 2009, 2010 Free Software Foundation, Inc. |
# Copyright 2002, 2003, 2005, 2007, 2009, 2010, 2011 |
# Free Software Foundation, Inc. |
# |
# This file is part of the GNU Binutils. |
# |
40,13 → 41,15
remote_download host merge.ld |
} |
|
run_ld_link_tests { |
{"Build symbol3.a" |
"" "" |
{symbol3.s} {} "symbol3.a"} |
{"Build symbol3w.a" |
"" "" |
{symbol3w.s} {} "symbol3w.a"} |
if { ![istarget hppa64*-hpux*] } { |
run_ld_link_tests { |
{"Build symbol3.a" |
"" "" |
{symbol3.s} {} "symbol3.a"} |
{"Build symbol3w.a" |
"" "" |
{symbol3w.s} {} "symbol3w.a"} |
} |
} |
|
# Run a test to check linking a shared library with a broken linker |
66,16 → 69,27
&& ! [istarget fr30-*-*] |
&& ! [istarget frv-*-*] |
&& ! [istarget h8300-*-*] |
&& ! [istarget i860-*-*] |
&& ! [istarget i960-*-*] |
&& ! [istarget ip2k-*-*] |
&& ! [istarget iq2000-*-*] |
&& ! [istarget lm32-*-*] |
&& ! [istarget m32c-*-*] |
&& ! [istarget m32r-*-*] |
&& ! [istarget mcore*-*-*] |
&& ! [istarget mep-*-*] |
&& ! [istarget microblaze-*-*] |
&& ! [istarget mn10200-*-*] |
&& ! [istarget moxie-*-*] |
&& ! [istarget ms1-*-*] |
&& ! [istarget msp430-*-*] |
&& ! [istarget openrisc-*-*] |
&& ! [istarget or32-*-*] |
&& ! [istarget pj-*-*] |
&& ! [istarget rx-*-*] |
&& ! [istarget v850-*-*] |
&& ! [istarget spu-*-*] |
&& ! [istarget v850*-*-*] |
&& ! [istarget xstormy16-*-*] |
&& ! [istarget *-*-irix*] |
&& ! [istarget *-*-rtems] } { |
run_ld_link_tests { |
147,8 → 161,8
set xfails [list "*-*-netbsdelf*"] |
run_ld_link_exec_tests $xfails $array_tests |
|
# Run PIE tests only on Linux. |
if { [istarget "*-*-linux*"] } { |
if { [istarget *-*-linux*] |
|| [istarget *-*-gnu*] } { |
run_ld_link_exec_tests $xfails $array_tests_pie |
} |
|
/ld-elf/warn3.d
2,10 → 2,9
#ld: tmpdir/symbol3w.o tmpdir/symbol3.a |
#warning: .*: warning: badsym warning$ |
#readelf: -s |
#notarget: "sparc64-*-solaris2*" "sparcv9-*-solaris2*" |
#xfail: arc-*-* d30v-*-* dlx-*-* fr30-*-* frv-*-elf i860-*-* i960-*-* |
#xfail: iq*-*-* mn10200-*-* moxie-*-* msp*-*-* mt-*-* or32-*-* pj*-*-* |
# if not using elf32.em, you don't get fancy section handling |
#notarget: hppa64*-hpux* |
#xfail: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-* |
# generic linker targets don't support .gnu.warning sections. |
|
# Check that warnings are generated for the symbols in .gnu.warning |
# construct and that the symbol still appears as expected. |
/lib/ld-lib.exp
552,7 → 552,6
set opts(error) {} |
set opts(warning) {} |
set opts(objcopy_linked_file) {} |
set asflags(${file}.s) {} |
|
foreach i $opt_array { |
set opt_name [lindex $i 0] |
570,13 → 569,13
warning {} |
error {} |
source { |
# Move any source-specific as-flags to a separate array to |
# Move any source-specific as-flags to a separate list to |
# simplify processing. |
if { [llength $opt_val] > 1 } { |
set asflags([lindex $opt_val 0]) [lrange $opt_val 1 end] |
lappend asflags [lrange $opt_val 1 end] |
set opt_val [lindex $opt_val 0] |
} else { |
set asflags($opt_val) {} |
lappend asflags {} |
} |
} |
default { |
669,6 → 668,7
|
if { $opts(source) == "" } { |
set sourcefiles [list ${file}.s] |
set asflags [list ""] |
} else { |
set sourcefiles {} |
foreach sf $opts(source) { |
677,8 → 677,6
} else { |
lappend sourcefiles "$srcdir/$subdir/$sf" |
} |
# Must have asflags indexed on source name. |
set asflags($srcdir/$subdir/$sf) $asflags($sf) |
} |
} |
|
691,11 → 689,12
set objfiles {} |
for { set i 0 } { $i < [llength $sourcefiles] } { incr i } { |
set sourcefile [lindex $sourcefiles $i] |
set sourceasflags [lindex $asflags $i] |
|
set objfile "tmpdir/dump$i.o" |
catch "exec rm -f $objfile" exec_output |
lappend objfiles $objfile |
set cmd "$AS $ASFLAGS $opts(as) $asflags($sourcefile) -o $objfile $sourcefile" |
set cmd "$AS $ASFLAGS $opts(as) $sourceasflags -o $objfile $sourcefile" |
|
send_log "$cmd\n" |
set cmdret [remote_exec host [concat sh -c [list "$cmd 2>&1"]] "" "/dev/null" "ld.tmp"] |
/ld-mips-elf/jalx-2.ld
0,0 → 1,8
ENTRY (internal_function) |
_start_text_phys = 0x4400000; |
_start_text = _start_text_phys; |
|
SECTIONS |
{ |
.text _start_text : AT (ADDR (.text)) { *(.text) } |
} |
/ld-mips-elf/jalx-1.d
0,0 → 1,16
#name: MIPS jalx-1 |
#source: jalx-1.s |
#ld: -T jalx-1.ld |
#objdump: -d |
|
.*: +file format .*mips.* |
|
Disassembly of section \.text: |
|
88000000 <test>: |
88000000: f200 0002 jalx 88000008 <test1> |
88000004: 0000 0000 nop |
|
88000008 <test1>: |
88000008: 00851821 addu v1,a0,a1 |
\.\.\. |
/ld-mips-elf/jalx-1.s
0,0 → 1,15
.set noreorder |
.set micromips |
.ent test |
.globl test |
test: |
jalx test1 |
nop |
|
.set nomicromips |
test1: |
addu $3, $4, $5 |
.end test |
|
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... |
.space 8 |
/ld-mips-elf/jalx-2-main.s
0,0 → 1,74
.file 1 "jalx-2-main.c" |
.section .mdebug.abi32 |
.previous |
.gnu_attribute 4, 1 |
.abicalls |
.option pic0 |
.text |
.align 2 |
.globl internal_function |
.set nomips16 |
.set micromips |
.ent internal_function |
.type internal_function, @function |
internal_function: |
.frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, gp= 0 |
.mask 0x40000000,-4 |
.fmask 0x00000000,0 |
.set noreorder |
.set nomacro |
|
addiu $sp,$sp,-8 |
sw $fp,4($sp) |
move $fp,$sp |
move $sp,$fp |
lw $fp,4($sp) |
jraddiusp 8 |
.set macro |
.set reorder |
.end internal_function |
.size internal_function, .-internal_function |
.rdata |
.align 2 |
$LC0: |
.ascii "hello world\012\000" |
.text |
.align 2 |
.globl main |
.set nomips16 |
.set micromips |
.ent main |
.type main, @function |
main: |
.frame $fp,32,$31 # vars= 0, regs= 2/0, args= 16, gp= 8 |
.mask 0xc0000000,-4 |
.fmask 0x00000000,0 |
.set noreorder |
.set nomacro |
|
addiu $sp,$sp,-32 |
sw $31,28($sp) |
sw $fp,24($sp) |
move $fp,$sp |
sw $4,32($fp) |
sw $5,36($fp) |
lui $2,%hi($LC0) |
addiu $4,$2,%lo($LC0) |
jal printf |
nop |
|
jal internal_function |
nop |
|
jal external_function |
nop |
|
move $sp,$fp |
lw $31,28($sp) |
lw $fp,24($sp) |
jraddiusp 32 |
.set macro |
.set reorder |
.end main |
.size main, .-main |
.ident "GCC: (Sourcery G++ Lite 4.4-999999 - Preview) 4.4.1" |
/ld-mips-elf/jalx-2.dd
0,0 → 1,58
.*: +file format .*mips.* |
|
Disassembly of section \.text: |
|
04400000 <external_function>: |
4400000: 27bdfff8 addiu sp,sp,-8 |
4400004: afbe0004 sw s8,4\(sp\) |
4400008: 03a0f021 move s8,sp |
440000c: 03c0e821 move sp,s8 |
4400010: 8fbe0004 lw s8,4\(sp\) |
4400014: 27bd0008 addiu sp,sp,8 |
4400018: 03e00008 jr ra |
440001c: 00000000 nop |
|
04400020 <internal_function>: |
4400020: 4fb0 addiu sp,sp,-8 |
4400022: cbc1 sw s8,4\(sp\) |
4400024: 0fdd move s8,sp |
4400026: 0fbe move sp,s8 |
4400028: 4bc1 lw s8,4\(sp\) |
440002a: 4702 jraddiusp 8 |
|
0440002c <main>: |
440002c: 4ff1 addiu sp,sp,-32 |
440002e: cbe7 sw ra,28\(sp\) |
4400030: cbc6 sw s8,24\(sp\) |
4400032: 0fdd move s8,sp |
4400034: f89e 0020 sw a0,32\(s8\) |
4400038: f8be 0024 sw a1,36\(s8\) |
440003c: 41a2 0440 lui v0,0x440 |
4400040: 3082 02a0 addiu a0,v0,672 |
4400044: f110 0028 jalx 44000a0 <_PROCEDURE_LINKAGE_TABLE_\+0x20> |
4400048: 0000 0000 nop |
440004c: f620 0010 jal 4400020 <internal_function> |
4400050: 0000 0000 nop |
4400054: f110 0000 jalx 4400000 <external_function> |
4400058: 0000 0000 nop |
440005c: 0fbe move sp,s8 |
440005e: 4be7 lw ra,28\(sp\) |
4400060: 4bc6 lw s8,24\(sp\) |
4400062: 4708 jraddiusp 32 |
\.\.\. |
|
Disassembly of section \.plt: |
|
04400080 <_PROCEDURE_LINKAGE_TABLE_>: |
4400080: 3c1c0440 lui gp,0x440 |
4400084: 8f9900d8 lw t9,216\(gp\) |
4400088: 279c00d8 addiu gp,gp,216 |
440008c: 031cc023 subu t8,t8,gp |
4400090: 03e07821 move t7,ra |
4400094: 0018c082 srl t8,t8,0x2 |
4400098: 0320f809 jalr t9 |
440009c: 2718fffe addiu t8,t8,-2 |
44000a0: 3c0f0440 lui t7,0x440 |
44000a4: 8df900e0 lw t9,224\(t7\) |
44000a8: 03200008 jr t9 |
44000ac: 25f800e0 addiu t8,t7,224 |
/ld-mips-elf/jalx-2-ex.s
0,0 → 1,34
.file 1 "jalx-2-ex.c" |
.section .mdebug.abi32 |
.previous |
.gnu_attribute 4, 1 |
.abicalls |
.option pic0 |
.text |
.align 2 |
.globl external_function |
.set nomips16 |
.set nomicromips |
.ent external_function |
.type external_function, @function |
external_function: |
.frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, gp= 0 |
.mask 0x40000000,-4 |
.fmask 0x00000000,0 |
.set noreorder |
.set nomacro |
|
addiu $sp,$sp,-8 |
sw $fp,4($sp) |
move $fp,$sp |
move $sp,$fp |
lw $fp,4($sp) |
addiu $sp,$sp,8 |
j $31 |
nop |
|
.set macro |
.set reorder |
.end external_function |
.size external_function, .-external_function |
.ident "GCC: (Sourcery G++ Lite 4.4-999999 - Preview) 4.4.1" |
/ld-mips-elf/jalx-1.ld
0,0 → 1,8
ENTRY (test) |
_start_text_phys = 0x88000000; |
_start_text = _start_text_phys; |
|
SECTIONS |
{ |
.text _start_text : AT (ADDR (.text)) { *(.text) } |
} |
/ld-mips-elf/mips16-and-micromips.d
0,0 → 1,5
#name: MIPS16 and microMIPS interlink |
#source: ../../../gas/testsuite/gas/mips/nop.s -mips16 |
#source: ../../../gas/testsuite/gas/mips/nop.s -mmicromips |
#ld: -e0 |
#error: \A.*: .*\.o: ASE mismatch: linking microMIPS module with previous MIPS16 modules[\n\r]+.*: failed to merge target specific data of file .*\.o\Z |
/ld-mips-elf/mips-elf.exp
123,6 → 123,31
# MIPS branch offset final link checking. |
run_dump_test "branch-misc-1" |
|
# Jalx test |
run_dump_test "jalx-1" |
|
if { $linux_gnu } { |
run_ld_link_tests [list \ |
[list "Dummy shared library for JALX test 2" \ |
"-shared -nostdlib -melf32btsmip" \ |
"-G0 -EB -mmicromips -no-mdebug -mabi=32 -march=mips32r2 -KPIC" \ |
{ jalx-2-printf.s } \ |
{} \ |
"libjalx-2.so"] \ |
[list "Dummy external function for JALX test 2" \ |
"-r -melf32btsmip" \ |
"-G0 -EB -no-mdebug -mabi=32 -march=mips32r2 -mno-shared -call_nonpic" \ |
{ jalx-2-ex.s } \ |
{} \ |
"jalx-2-ex.o.r"] \ |
[list "MIPS JALX test 2" \ |
"-nostdlib -T jalx-2.ld tmpdir/libjalx-2.so tmpdir/jalx-2-ex.o.r -melf32btsmip" \ |
"-G0 -EB -mmicromips -no-mdebug -mabi=32 -march=mips32r2 -mno-shared -call_nonpic" \ |
{ jalx-2-main.s } \ |
{ { objdump -d jalx-2.dd } } \ |
"jalx-2"]] |
} |
|
# Test multi-got link. We only do this on GNU/Linux because it requires |
# the "traditional" emulations. |
if { $linux_gnu } { |
549,3 → 574,6
run_dump_test "jr-to-b-1" |
run_dump_test "jr-to-b-2" |
} |
|
# MIPS16 and microMIPS interlinking test. |
run_dump_test "mips16-and-micromips" |
/ld-mips-elf/jalx-2-printf.s
0,0 → 1,35
.file 1 "jalx-2-printf.c" |
.section .mdebug.abi32 |
.previous |
.gnu_attribute 4, 1 |
.abicalls |
.text |
.align 2 |
.globl printf |
.set nomips16 |
.set micromips |
.ent printf |
.type printf, @function |
printf: |
.frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, gp= 0 |
.mask 0x40000000,-4 |
.fmask 0x00000000,0 |
.set noreorder |
.set nomacro |
|
addiu $sp,$sp,-8 |
sw $fp,4($sp) |
move $fp,$sp |
sw $5,12($fp) |
sw $6,16($fp) |
sw $7,20($fp) |
sw $4,8($fp) |
move $2,$0 |
move $sp,$fp |
lw $fp,4($sp) |
jraddiusp 8 |
.set macro |
.set reorder |
.end printf |
.size printf, .-printf |
.ident "GCC: (Sourcery G++ Lite 4.4-999999 - Preview) 4.4.1" |
/ld-scripts/section-flags-1.s
0,0 → 1,2
.text |
.space 16 |
/ld-scripts/section-flags-1.t
0,0 → 1,21
MEMORY |
{ |
ram (rwx) : ORIGIN = 0x100000, LENGTH = 144M |
} |
|
SECTIONS |
{ |
.text : |
{ |
INPUT_SECTION_FLAGS (!SHF_TLS) *(.text .text.* .text_* .gnu.linkonce.t.*) |
} >ram |
|
.text_vle : |
{ |
INPUT_SECTION_FLAGS (SHF_MERGE & SHF_STRINGS & SHF_LINK_ORDER) *(.text .text.* .text_* .gnu.linkonce.t.*) |
} >ram |
.text_other : |
{ |
INPUT_SECTION_FLAGS (SHF_MERGE & !SHF_STRINGS) *(.text .text.* .text_* .gnu.linkonce.t.*) |
} |
} |
/ld-scripts/section-flags.exp
0,0 → 1,41
# Test SECTION_FLAGS in a linker script. |
# |
# 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. |
|
# These tests only work for ELF targets |
if {! [is_elf_format]} { |
return |
} |
|
set ldcmd $ld |
if { [istarget spu*-*-*] } { |
set ldcmd "$ldcmd --local-store 0:0" |
} |
|
foreach test {"section-flags-1" "section-flags-2"} { |
if ![ld_assemble $as $srcdir/$subdir/$test.s tmpdir/$test.o] { |
unresolved $test |
} else { |
if ![ld_simple_link $ldcmd tmpdir/$test \ |
"-T $srcdir/$subdir/$test.t tmpdir/$test.o"] { |
fail $test |
} else { |
pass $test |
} |
} |
} |
/ld-scripts/section-flags-2.s
0,0 → 1,2
.text |
.space 16 |
/ld-scripts/section-flags-2.t
0,0 → 1,12
MEMORY |
{ |
ram (rwx) : ORIGIN = 0x100000, LENGTH = 144M |
} |
|
SECTIONS |
{ |
.text : |
{ |
INPUT_SECTION_FLAGS (!SHF_TLS) *(EXCLUDE_FILE (section-flags-1.o) .text .text.* .text_* .gnu.linkonce.t.*) |
} >ram |
} |
/ld-ifunc/ifunc-3a-x86.d
4,5 → 4,5
#target: x86_64-*-* i?86-*-* |
|
#... |
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x258|)@plt> |
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x1b0|\+0x260|)@plt> |
#pass |
/ld-ifunc/ifunc.exp
244,19 → 244,19
# Check the executables and shared libraries |
# |
# The linked ifunc using executables and the shared library containing |
# ifunc should have an OSABI field of LINUX. The linked non-ifunc using |
# ifunc should have an OSABI field of GNU. The linked non-ifunc using |
# executable should have an OSABI field of NONE (aka System V). |
|
if {! [check_osabi tmpdir/libshared_ifunc.so {UNIX - Linux}]} { |
fail "Shared libraries containing ifunc does not have an OS/ABI field of LINUX" |
if {! [check_osabi tmpdir/libshared_ifunc.so {UNIX - GNU}]} { |
fail "Shared libraries containing ifunc does not have an OS/ABI field of GNU" |
set fails [expr $fails + 1] |
} |
if {! [check_osabi tmpdir/local_prog {UNIX - Linux}]} { |
fail "Local ifunc-using executable does not have an OS/ABI field of LINUX" |
if {! [check_osabi tmpdir/local_prog {UNIX - GNU}]} { |
fail "Local ifunc-using executable does not have an OS/ABI field of GNU" |
set fails [expr $fails + 1] |
} |
if {! [check_osabi tmpdir/static_prog {UNIX - Linux}]} { |
fail "Static ifunc-using executable does not have an OS/ABI field of LINUX" |
if {! [check_osabi tmpdir/static_prog {UNIX - GNU}]} { |
fail "Static ifunc-using executable does not have an OS/ABI field of GNU" |
set fails [expr $fails + 1] |
} |
if {! [check_osabi tmpdir/dynamic_prog {UNIX - System V}]} { |
/ld-ifunc/ifunc-1-x86.d
3,5 → 3,5
#target: x86_64-*-* i?86-*-* |
|
#... |
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x220|)@plt> |
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x190|\+0x220|)@plt> |
#pass |
/ld-ifunc/ifunc-1-local-x86.d
3,5 → 3,5
#target: x86_64-*-* i?86-*-* |
|
#... |
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x200|)@plt> |
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x170|\+0x200|)@plt> |
#pass |
/ld-mmix/pr12815-2.d
0,0 → 1,7
#as: -no-predefined-syms -x |
#ld: -e 0x1000 --defsym bar=0x100000000 -m elf64mmix -T $srcdir/$subdir/pr12815-1.ld |
#error: invalid input relocation.*objcopy.*"-no-expand".*truncated |
|
# Check that we emit a meaningful error message rather than SEGV when |
# someone attempts linking to the "binary" output format with |
# expanding PUSHJ insns, expecting relaxation to work. |
/ld-mmix/pr12815-2.s
0,0 → 1,14
# 1 "m.c" |
! mmixal:= 8H LOC Data_Section |
.text ! mmixal:= 9H LOC 8B |
.p2align 2 |
LOC @+(4-@)&3 |
.global main |
main IS @ |
GET $0,rJ |
PUSHJ $1,bar |
PUSHJ $1,bar |
PUT rJ,$0 |
POP 1,0 |
|
.data ! mmixal:= 8H LOC 9B |
/ld-mmix/pr12815-1.ld
0,0 → 1,14
OUTPUT_FORMAT("binary") |
ENTRY(start) |
SECTIONS |
{ |
. = 0x8000000000100000; |
.text : AT(ADDR(.text) - 0x8000000000100000) |
{ |
*(.text) |
*(.data) |
*(.rodata*) |
*(COMMON*) |
*(.bss*) |
} |
} |
/ld-mmix/pr12815-1.d
0,0 → 1,7
#as: -no-predefined-syms -x |
#ld: -e 0x1000 -m elf64mmix -T $srcdir/$subdir/pr12815-1.ld |
#error: invalid input relocation.*objcopy.*"-mno-base-addresses".*truncated |
|
# Check that we emit a meaningful error message rather than SEGV when |
# someone attempts linking to the "binary" output format with |
# -mbase-addresses in effect. |
/ld-mmix/pr12815-1.s
0,0 → 1,26
# 1 "m.c" |
! mmixal:= 8H LOC Data_Section |
.text ! mmixal:= 9H LOC 8B |
.data ! mmixal:= 8H LOC 9B |
.p2align 2 |
LOC @+(4-@)&3 |
foo IS @ |
TETRA #2 |
.text ! mmixal:= 9H LOC 8B |
.p2align 2 |
LOC @+(4-@)&3 |
.global main |
main IS @ |
SUBU $254,$254,8 |
STOU $253,$254,0 |
ADDU $253,$254,8 |
LDT $0,foo |
ADDU $0,$0,1 |
SET $0,$0 |
STTU $0,foo |
SETL $0,0 |
LDO $253,$254,0 |
ADDU $254,$254,8 |
POP 1,0 |
|
.data ! mmixal:= 8H LOC 9B |
/ld-x86-64/tlsbin.rd
1,7 → 1,7
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#readelf: -WSsrl |
#target: x86_64-*-* |
|
/ld-x86-64/pr13082-4a.d
0,0 → 1,9
#source: pr13082-4.s |
#name: PR ld/13082-4 (a) |
#as: --x32 |
#ld: -shared -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +[0-9a-f]+ +func \+ 1 |
/ld-x86-64/pr13082-6b.d
0,0 → 1,13
#source: pr13082-6.s |
#name: PR ld/13082-6 (b) |
#as: --x32 |
#ld: -pie -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+ |
|
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]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+ |
/ld-x86-64/ilp32-6.d
0,0 → 1,3
#as: --x32 |
#ld: -m elf32_x86_64 -Ttext-segment 0xe0000000 |
#error: .*relocation truncated to fit: R_X86_64_32S.* |
/ld-x86-64/pr13082-3.s
0,0 → 1,10
.text |
.globl _start |
_start: |
lea .Ljmp(%rip), %rax |
jmp *(%rax) |
.section .data.rel.ro.local,"aw",@progbits |
.weak func |
.align 8 |
.Ljmp: |
.quad func |
/ld-x86-64/ilp32-6.s
0,0 → 1,3
.globl _start |
_start: |
mov $_start,%rax |
/ld-x86-64/tlsbin.sd
1,7 → 1,7
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -sj.got |
#target: x86_64-*-* |
|
/ld-x86-64/pr13082-1b.d
0,0 → 1,9
#source: pr13082-1.s |
#name: PR ld/13082-1 (b) |
#as: --x32 |
#ld: -pie -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE64 +[0-9a-f]+ |
/ld-x86-64/x86-64.exp
38,12 → 38,14
# readelf: Apply readelf options on result. Compare with regex (last arg). |
|
set x86_64tests { |
{"TLS -fpic -shared transitions" "-shared -melf_x86_64" |
{"TLS -fpic -shared transitions" |
"-shared -melf_x86_64 --no-ld-generated-unwind-info" |
"--64" {tlspic1.s tlspic2.s} |
{{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd} |
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} |
"libtlspic.so"} |
{"TLS descriptor -fpic -shared transitions" "-shared -melf_x86_64" |
{"TLS descriptor -fpic -shared transitions" |
"-shared -melf_x86_64 --no-ld-generated-unwind-info" |
"--64" {tlsdesc.s tlspic2.s} |
{{readelf -WSsrld tlsdesc.rd} {objdump -drj.text tlsdesc.dd} |
{objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td} |
51,17 → 53,20
{"Helper shared library" "-shared -melf_x86_64" |
"--64" {tlslib.s} {} "libtlslib.so"} |
{"TLS -fpic and -fno-pic exec transitions" |
"-melf_x86_64 tmpdir/libtlslib.so" "--64" {tlsbinpic.s tlsbin.s} |
"-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" |
"--64" {tlsbinpic.s tlsbin.s} |
{{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd} |
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} |
"tlsbin"} |
{"TLS descriptor -fpic and -fno-pic exec transitions" |
"-melf_x86_64 tmpdir/libtlslib.so" "--64" {tlsbindesc.s tlsbin.s} |
"-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" |
"--64" {tlsbindesc.s tlsbin.s} |
{{readelf -WSsrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd} |
{objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}} |
"tlsbindesc"} |
{"TLS with global dynamic and descriptors" |
"-shared -melf_x86_64" "--64" {tlsgdesc.s} |
"-shared -melf_x86_64 --no-ld-generated-unwind-info" |
"--64" {tlsgdesc.s} |
{{readelf -WSsrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}} |
"libtlsgdesc.so"} |
{"TLS in debug sections" "-melf_x86_64" |
84,7 → 89,7
"--64" {mixed2a.s} {} "libmixe2a.o"} |
{"Helper 32bit object 2" "-r -melf_i386" |
"--32" {mixed2b.s} {} "libmixe2b.o"} |
{"Split by file with 'l' flag on section." "-split-by-file -r" |
{"Split by file with 'l' flag on section." "-split-by-file -r -melf_x86_64" |
"--64" {split-by-file1.s split-by-file2.s} |
{{readelf -SW split-by-file.rd}} "split-by-file.o"} |
{"TLS X32 IE->LE transition" "-melf32_x86_64" |
156,6 → 161,7
run_dump_test "nogot2" |
run_dump_test "discarded1" |
run_dump_test "pr12718" |
run_dump_test "pr12921" |
|
if { ![istarget "x86_64-*-linux*"] } { |
return |
197,6 → 203,10
run_dump_test "ilp32-3" |
run_dump_test "ilp32-4" |
run_dump_test "ilp32-5" |
run_dump_test "ilp32-6" |
run_dump_test "ilp32-7" |
run_dump_test "ilp32-8" |
run_dump_test "ilp32-9" |
run_dump_test "ia32-1" |
run_dump_test "ia32-2" |
run_dump_test "ia32-3" |
203,6 → 213,18
run_dump_test "lp64-1" |
run_dump_test "lp64-2" |
run_dump_test "lp64-3" |
run_dump_test "pr13082-1a" |
run_dump_test "pr13082-1b" |
run_dump_test "pr13082-2a" |
run_dump_test "pr13082-2b" |
run_dump_test "pr13082-3a" |
run_dump_test "pr13082-3b" |
run_dump_test "pr13082-4a" |
run_dump_test "pr13082-4b" |
run_dump_test "pr13082-5a" |
run_dump_test "pr13082-5b" |
run_dump_test "pr13082-6a" |
run_dump_test "pr13082-6b" |
|
# Must be native with the C compiler |
if { [isnative] && [which $CC] != 0 } { |
/ld-x86-64/tlsbin.dd
1,7 → 1,7
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: x86_64-*-* |
|
/ld-x86-64/tlsgd5.dd
10,5 → 10,5
|
[a-f0-9]+ <_start>: |
[ ]*[a-f0-9]+: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax |
[ ]*[a-f0-9]+: 48 03 05 00 01 20 00 add 0x200100\(%rip\),%rax # 600368 <_DYNAMIC\+0x100> |
[ ]*[a-f0-9]+: 48 03 05 40 01 20 00 add 0x200140\(%rip\),%rax # 6003a8 <_DYNAMIC\+0x100> |
#pass |
/ld-x86-64/tlsbin.td
1,7 → 1,7
#source: tlsbinpic.s |
#source: tlsbin.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -sj.tdata |
#target: x86_64-*-* |
|
/ld-x86-64/pr13082-2a.d
0,0 → 1,9
#source: pr13082-2.s |
#name: PR ld/13082-2 (a) |
#as: --x32 |
#ld: -shared -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +[0-9a-f]+ +_start \+ 0 |
/ld-x86-64/tlsdesc.pd
1,7 → 1,7
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -drj.plt |
#target: x86_64-*-* |
|
/ld-x86-64/protected3-k1om.d
0,0 → 1,16
#source: protected3.s |
#as: --64 -march=k1om |
#ld: -shared -melf_k1om |
#readelf: -h |
|
ELF Header: |
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |
Class: ELF64 |
Data: 2's complement, little endian |
Version: 1 \(current\) |
OS/ABI: UNIX - System V |
ABI Version: 0 |
Type: DYN \(Shared object file\) |
Machine: Intel K1OM |
Version: 0x1 |
#pass |
/ld-x86-64/pr13082-4b.d
0,0 → 1,9
#source: pr13082-4.s |
#name: PR ld/13082-4 (b) |
#as: --x32 |
#ld: -pie -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +[0-9a-f]+ +func \+ 1 |
/ld-x86-64/ilp32-7.d
0,0 → 1,3
#as: --x32 |
#ld: -m elf32_x86_64 -Ttext-segment 0xe0000000 |
#error: .*relocation truncated to fit: R_X86_64_32S.* |
/ld-x86-64/pr13082-4.s
0,0 → 1,10
.text |
.globl _start |
_start: |
lea .Ljmp(%rip), %rax |
jmp *(%rax) |
.section .data.rel.ro.local,"aw",@progbits |
.weak func |
.align 8 |
.Ljmp: |
.quad func + 1 |
/ld-x86-64/tlsbindesc.rd
1,7 → 1,7
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#readelf: -WSsrl |
#target: x86_64-*-* |
|
/ld-x86-64/ilp32-7.s
0,0 → 1,3
.globl _start |
_start: |
mov _start,%rax |
/ld-x86-64/pr12921.d
0,0 → 1,21
#name: PR ld/12921 |
#as: --64 |
#ld: -melf_x86_64 |
#readelf: -S --wide |
|
There are 7 section headers, starting at offset 0x2058: |
|
Section Headers: |
\[Nr\] Name Type Address Off Size ES Flg Lk Inf Al |
\[ 0\] NULL 0000000000000000 000000 000000 00 0 0 0 |
\[ 1\] .text PROGBITS 0000000000401000 001000 000001 00 AX 0 0 4096 |
\[ 2\] .data PROGBITS 0000000000602000 002000 000028 00 WA 0 0 4096 |
\[ 3\] .bss NOBITS 0000000000603000 002028 010000 00 WA 0 0 4096 |
\[ 4\] .shstrtab STRTAB 0000000000000000 002028 00002c 00 0 0 1 |
\[ 5\] .symtab SYMTAB 0000000000000000 002218 000120 18 6 6 8 |
\[ 6\] .strtab STRTAB 0000000000000000 002338 000037 00 0 0 1 |
Key to Flags: |
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\) |
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) |
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) |
#pass |
/ld-x86-64/protected2-k1om.d
0,0 → 1,17
#source: protected2.s |
#as: --64 -march=k1om |
#ld: -shared -melf_k1om |
#objdump: -drw |
|
.*: +file format .* |
|
|
Disassembly of section .text: |
|
0+[a-f0-9]+ <foo>: |
[ ]*[a-f0-9]+: c3 retq |
|
0+[a-f0-9]+ <bar>: |
[ ]*[a-f0-9]+: e8 fa ff ff ff callq [a-f0-9]+ <foo> |
[ ]*[a-f0-9]+: c3 retq |
#pass |
/ld-x86-64/pr13082-5a.d
0,0 → 1,14
#source: pr13082-5.s |
#name: PR ld/13082-5 (a) |
#as: --x32 |
#ld: -shared -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +ifunc\(\)+ +ifunc \+ 0 |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_GLOB_DAT +ifunc\(\)+ +ifunc \+ 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]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +ifunc\(\)+ +ifunc \+ 0 |
/ld-x86-64/tlsgdesc.rd
1,6 → 1,6
#source: tlsgdesc.s |
#as: --64 |
#ld: -shared -melf64_x86_64 |
#ld: -shared -melf64_x86_64 --no-ld-generated-unwind-info |
#readelf: -WSsrl |
#target: x86_64-*-* |
|
/ld-x86-64/pr12921.s
0,0 → 1,25
.text |
.balign 4096 |
vtext: |
.p2align 4,,15 |
.globl _start |
.type _start, @function |
_start: |
ret |
.size _start, .-_start |
.globl vdata |
.data |
.align 4096 |
.type vdata, @object |
.size vdata, 4 |
vdata: |
.long 5 |
.comm vbss,65536,4096 |
.align 16 |
.type local, @object |
.size local, 24 |
local: |
.byte 77 |
.zero 7 |
.dc.a local |
.dc.a 0 |
/ld-x86-64/tlsbindesc.sd
1,7 → 1,7
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -sj.got |
#target: x86_64-*-* |
|
/ld-x86-64/pr13082-2b.d
0,0 → 1,9
#source: pr13082-2.s |
#name: PR ld/13082-2 (b) |
#as: --x32 |
#ld: -pie -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+ |
/ld-x86-64/tlsdesc.rd
1,7 → 1,7
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#readelf: -WSsrld |
#target: x86_64-*-* |
|
15,7 → 15,7
+\[[ 0-9]+\] .dynstr +.* |
+\[[ 0-9]+\] .rela.dyn +.* |
+\[[ 0-9]+\] .rela.plt +.* |
+\[[ 0-9]+\] .plt +PROGBITS +0+450 0+450 0+20 10 +AX +0 +0 +4 |
+\[[ 0-9]+\] .plt +PROGBITS +0+450 0+450 0+20 10 +AX +0 +0 +(4|16) |
+\[[ 0-9]+\] .text +PROGBITS +0+1000 0+1000 0+154 00 +AX +0 +0 4096 |
+\[[ 0-9]+\] .tdata +PROGBITS +0+201154 0+1154 0+60 00 WAT +0 +0 +1 |
+\[[ 0-9]+\] .tbss +NOBITS +0+2011b4 0+11b4 0+20 00 WAT +0 +0 +1 |
/ld-x86-64/ilp32-4.d
1,6 → 1,6
#source: start.s |
#as: --x32 |
#ld: -m elf32_x86_64 -shared |
#ld: -m elf32_x86_64 -shared --no-ld-generated-unwind-info |
#readelf: -d -S --wide |
|
There are 10 section headers, starting at offset 0x22c: |
/ld-x86-64/pr13082-1.s
0,0 → 1,10
.text |
.globl _start |
_start: |
lea .Ljmp(%rip), %rax |
.L1: |
jmp *(%rax) |
.section .data.rel.ro.local,"aw",@progbits |
.align 8 |
.Ljmp: |
.quad .L1 |
/ld-x86-64/tlsbindesc.dd
1,7 → 1,7
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: x86_64-*-* |
|
/ld-x86-64/ilp32-8.d
0,0 → 1,13
#as: --x32 |
#ld: -m elf32_x86_64 -Ttext-segment 0xe0000000 |
#objdump: -dw |
|
.*: +file format elf32-x86-64 |
|
|
Disassembly of section .text: |
|
e0000054 <_start>: |
[ ]*[a-f0-9]+: 48 b8 54 00 00 e0 00 00 00 00 movabs \$0xe0000054,%rax |
[ ]*[a-f0-9]+: 48 a1 54 00 00 e0 00 00 00 00 movabs 0xe0000054,%rax |
#pass |
/ld-x86-64/pr13082-5.s
0,0 → 1,12
.text |
.globl _start |
.globl ifunc |
.type ifunc, @gnu_indirect_function |
_start: |
lea .Ljmp(%rip), %rax |
ifunc: |
jmp *(%rax) |
.section .data.rel.ro.local,"aw",@progbits |
.align 8 |
.Ljmp: |
.quad ifunc |
/ld-x86-64/tlsgd6.dd
10,5 → 10,5
|
[a-f0-9]+ <_start>: |
[ ]*[a-f0-9]+: 64 8b 04 25 00 00 00 00 mov %fs:0x0,%eax |
[ ]*[a-f0-9]+: 48 03 05 81 00 20 00 add 0x200081\(%rip\),%rax # 60022c <_DYNAMIC\+0x80> |
[ ]*[a-f0-9]+: 48 03 05 c5 00 20 00 add 0x2000c5\(%rip\),%rax # 600270 <_DYNAMIC\+0x80> |
#pass |
/ld-x86-64/tlsgdesc.dd
1,6 → 1,6
#source: tlsgdesc.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: x86_64-*-* |
|
20,7 → 20,7
+[0-9a-f]+: 00 00 * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 48 03 0d 5e 02 20 00[ ]+add 0x20025e\(%rip\),%rcx +# 200660 <.*> |
+[0-9a-f]+: 48 03 0d 5e 02 20 00[ ]+add 0x20025e\(%rip\),%rcx +# 200668 <.*> |
# -> R_X86_64_TPOFF64 sG3 |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
31,7 → 31,7
+[0-9a-f]+: 00 00 * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 48 03 0d 68 02 20 00[ ]+add 0x200268\(%rip\),%rcx +# 200680 <.*> |
+[0-9a-f]+: 48 03 0d 68 02 20 00[ ]+add 0x200268\(%rip\),%rcx +# 200688 <.*> |
# -> R_X86_64_TPOFF64 sG4 |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
38,7 → 38,7
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
# GD, gd first |
+[0-9a-f]+: 66 48 8d 3d 6c 02 20[ ]+data32 lea 0x20026c\(%rip\),%rdi +# 200690 <.*> |
+[0-9a-f]+: 66 48 8d 3d 6c 02 20[ ]+data32 lea 0x20026c\(%rip\),%rdi +# 200698 <.*> |
+[0-9a-f]+: 00 * |
# -> R_X86_64_DTPMOD64 sG1 |
+[0-9a-f]+: 66 66 48 e8 9c ff ff[ ]+data32 data32 callq [0-9a-f]+ <.*> |
48,7 → 48,7
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 48 8d 05 a1 02 20 00[ ]+lea 0x2002a1\(%rip\),%rax +# 2006d8 <.*> |
+[0-9a-f]+: 48 8d 05 a1 02 20 00[ ]+lea 0x2002a1\(%rip\),%rax +# 2006e0 <.*> |
# -> R_X86_64_TLSDESC sG1 |
+[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) |
+[0-9a-f]+: 90[ ]+nop * |
56,7 → 56,7
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
# GD, desc first |
+[0-9a-f]+: 48 8d 05 84 02 20 00[ ]+lea 0x200284\(%rip\),%rax +# 2006c8 <.*> |
+[0-9a-f]+: 48 8d 05 84 02 20 00[ ]+lea 0x200284\(%rip\),%rax +# 2006d0 <.*> |
# -> R_X86_64_TLSDESC sG2 |
+[0-9a-f]+: ff 10[ ]+callq \*\(%rax\) |
+[0-9a-f]+: 90[ ]+nop * |
63,7 → 63,7
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 66 48 8d 3d 1e 02 20[ ]+data32 lea 0x20021e\(%rip\),%rdi +# 200670 <.*> |
+[0-9a-f]+: 66 48 8d 3d 1e 02 20[ ]+data32 lea 0x20021e\(%rip\),%rdi +# 200678 <.*> |
+[0-9a-f]+: 00 * |
# -> R_X86_64_DTPMOD64 sG2 |
+[0-9a-f]+: 66 66 48 e8 6e ff ff[ ]+data32 data32 callq [0-9a-f]+ <.*> |
76,13 → 76,13
# GD -> IE, gd first, after IE use |
+[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax |
+[0-9a-f]+: 00 00 * |
+[0-9a-f]+: 48 03 05 f2 01 20 00[ ]+add 0x2001f2\(%rip\),%rax +# 200660 <.*> |
+[0-9a-f]+: 48 03 05 f2 01 20 00[ ]+add 0x2001f2\(%rip\),%rax +# 200668 <.*> |
# -> R_X86_64_TPOFF64 sG3 |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 48 8b 05 e7 01 20 00[ ]+mov 0x2001e7\(%rip\),%rax +# 200660 <.*> |
+[0-9a-f]+: 48 8b 05 e7 01 20 00[ ]+mov 0x2001e7\(%rip\),%rax +# 200668 <.*> |
# -> R_X86_64_TPOFF64 sG3 |
+[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
+[0-9a-f]+: 90[ ]+nop * |
90,7 → 90,7
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
# GD -> IE, desc first, after IE use |
+[0-9a-f]+: 48 8b 05 fa 01 20 00[ ]+mov 0x2001fa\(%rip\),%rax +# 200680 <.*> |
+[0-9a-f]+: 48 8b 05 fa 01 20 00[ ]+mov 0x2001fa\(%rip\),%rax +# 200688 <.*> |
# -> R_X86_64_TPOFF64 sG4 |
+[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
+[0-9a-f]+: 90[ ]+nop * |
99,7 → 99,7
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax |
+[0-9a-f]+: 00 00 * |
+[0-9a-f]+: 48 03 05 e4 01 20 00[ ]+add 0x2001e4\(%rip\),%rax +# 200680 <.*> |
+[0-9a-f]+: 48 03 05 e4 01 20 00[ ]+add 0x2001e4\(%rip\),%rax +# 200688 <.*> |
# -> R_X86_64_TPOFF64 sG4 |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
108,13 → 108,13
# GD -> IE, gd first, before IE use |
+[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax |
+[0-9a-f]+: 00 00 * |
+[0-9a-f]+: 48 03 05 b8 01 20 00[ ]+add 0x2001b8\(%rip\),%rax +# 200668 <.*> |
+[0-9a-f]+: 48 03 05 b8 01 20 00[ ]+add 0x2001b8\(%rip\),%rax +# 200670 <.*> |
# -> R_X86_64_TPOFF64 sG5 |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 48 8b 05 ad 01 20 00[ ]+mov 0x2001ad\(%rip\),%rax +# 200668 <.*> |
+[0-9a-f]+: 48 8b 05 ad 01 20 00[ ]+mov 0x2001ad\(%rip\),%rax +# 200670 <.*> |
# -> R_X86_64_TPOFF64 sG5 |
+[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
+[0-9a-f]+: 90[ ]+nop * |
122,7 → 122,7
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
# GD -> IE, desc first, before IE use |
+[0-9a-f]+: 48 8b 05 c0 01 20 00[ ]+mov 0x2001c0\(%rip\),%rax +# 200688 <.*> |
+[0-9a-f]+: 48 8b 05 c0 01 20 00[ ]+mov 0x2001c0\(%rip\),%rax +# 200690 <.*> |
# -> R_X86_64_TPOFF64 sG6 |
+[0-9a-f]+: 66 90[ ]+xchg %ax,%ax |
+[0-9a-f]+: 90[ ]+nop * |
131,7 → 131,7
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax |
+[0-9a-f]+: 00 00 * |
+[0-9a-f]+: 48 03 05 aa 01 20 00[ ]+add 0x2001aa\(%rip\),%rax +# 200688 <.*> |
+[0-9a-f]+: 48 03 05 aa 01 20 00[ ]+add 0x2001aa\(%rip\),%rax +# 200690 <.*> |
# -> R_X86_64_TPOFF64 sG6 |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
142,7 → 142,7
+[0-9a-f]+: 00 00 * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 48 03 0d 74 01 20 00[ ]+add 0x200174\(%rip\),%rcx +# 200668 <.*> |
+[0-9a-f]+: 48 03 0d 74 01 20 00[ ]+add 0x200174\(%rip\),%rcx +# 200670 <.*> |
# -> R_X86_64_TPOFF64 sG5 |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
153,7 → 153,7
+[0-9a-f]+: 00 00 * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 48 03 0d 7e 01 20 00[ ]+add 0x20017e\(%rip\),%rcx +# 200688 <.*> |
+[0-9a-f]+: 48 03 0d 7e 01 20 00[ ]+add 0x20017e\(%rip\),%rcx +# 200690 <.*> |
# -> R_X86_64_TPOFF64 sG6 |
+[0-9a-f]+: 90[ ]+nop * |
+[0-9a-f]+: 90[ ]+nop * |
/ld-x86-64/ilp32-8.s
0,0 → 1,5
.text |
.globl _start |
_start: |
movabs $_start,%rax |
movabs _start,%rax |
/ld-x86-64/tlsbindesc.td
1,7 → 1,7
#source: tlsbindesc.s |
#source: tlsbin.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -sj.tdata |
#target: x86_64-*-* |
|
/ld-x86-64/pr13082-3a.d
0,0 → 1,9
#source: pr13082-3.s |
#name: PR ld/13082-3 (a) |
#as: --x32 |
#ld: -shared -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +[0-9a-f]+ +func \+ 0 |
/ld-x86-64/tlspic.rd
1,7 → 1,7
#source: tlspic1.s |
#source: tlspic2.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#readelf: -WSsrl |
#target: x86_64-*-* |
|
/ld-x86-64/pr13082-5b.d
0,0 → 1,13
#source: pr13082-5.s |
#name: PR ld/13082-5 (b) |
#as: --x32 |
#ld: -pie -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+ |
|
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]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+ |
/ld-x86-64/tlsdesc.sd
1,7 → 1,7
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -s -j.got -j.got.plt |
#target: x86_64-*-* |
|
/ld-x86-64/tlsdesc.dd
1,7 → 1,7
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: x86_64-*-* |
|
/ld-x86-64/tlspic.sd
1,7 → 1,7
#source: tlspic1.s |
#source: tlspic2.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -sj.got |
#target: x86_64-*-* |
|
/ld-x86-64/pr13082-6a.d
0,0 → 1,13
#source: pr13082-6.s |
#name: PR ld/13082-6 (a) |
#as: --x32 |
#ld: -shared -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+ |
|
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]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+ |
/ld-x86-64/tlsdesc.td
1,7 → 1,7
#source: tlsdesc.s |
#source: tlspic2.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -sj.tdata |
#target: x86_64-*-* |
|
/ld-x86-64/pr13082-2.s
0,0 → 1,9
.text |
.globl _start |
_start: |
lea .Ljmp(%rip), %rax |
jmp *(%rax) |
.section .data.rel.ro.local,"aw",@progbits |
.align 8 |
.Ljmp: |
.quad _start |
/ld-x86-64/ilp32-9.d
0,0 → 1,9
#as: --x32 |
#ld: -m elf32_x86_64 -Ttext-segment 0xe0000000 |
#objdump: -s -j .text |
|
.*: +file format .* |
|
Contents of section .text: |
e0000054 540000e0 00000000 T....... |
#pass |
/ld-x86-64/pr13082-6.s
0,0 → 1,11
.text |
.globl _start |
.type ifunc, @gnu_indirect_function |
_start: |
lea .Ljmp(%rip), %rax |
ifunc: |
jmp *(%rax) |
.section .data.rel.ro.local,"aw",@progbits |
.align 8 |
.Ljmp: |
.quad ifunc |
/ld-x86-64/tlspic.dd
1,7 → 1,7
#source: tlspic1.s |
#source: tlspic2.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -drj.text |
#target: x86_64-*-* |
|
/ld-x86-64/abs-k1om.d
0,0 → 1,11
#name: Absolute non-overflowing relocs |
#source: ../ld-i386/abs.s |
#source: ../ld-i386/zero.s |
#as: --64 -march=k1om |
#ld: -m elf_k1om |
#objdump: -rs -j .text |
|
.*: file format .* |
|
Contents of section \.text: |
[ ][0-9a-f]+ c800fff0 c8000110 c9c3.* |
/ld-x86-64/pcrel16.d
3,7 → 3,7
#ld: -Ttext 0x0 |
#objdump: -drj.text -m i8086 |
|
.*: +file format elf64-x86-64 |
.*: +file format elf.*-x86-64 |
|
Disassembly of section .text: |
|
/ld-x86-64/pr13082-1a.d
0,0 → 1,9
#source: pr13082-1.s |
#name: PR ld/13082-1 (a) |
#as: --x32 |
#ld: -shared -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE64 +[0-9a-f]+ |
/ld-x86-64/ilp32-9.s
0,0 → 1,4
.text |
.globl _start |
_start: |
.quad _start |
/ld-x86-64/pr13082-3b.d
0,0 → 1,9
#source: pr13082-3.s |
#name: PR ld/13082-3 (b) |
#as: --x32 |
#ld: -pie -melf32_x86_64 |
#readelf: -r --wide |
|
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries: |
Offset Info Type Sym. Value Symbol's Name \+ Addend |
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +[0-9a-f]+ +func \+ 0 |
/ld-x86-64/tlspic.td
1,7 → 1,7
#source: tlspic1.s |
#source: tlspic2.s |
#as: --64 |
#ld: -shared -melf_x86_64 |
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info |
#objdump: -sj.tdata |
#target: x86_64-*-* |
|
/ld-elfvsb/elfvsb.exp
302,7 → 302,9
setup_xfail "sparc*-*-linux*" |
} |
} |
setup_xfail "x86_64-*-linux*" |
if { [is_elf64 $tmpdir/mainnp.o] } { |
setup_xfail "x86_64-*-linux*" |
} |
if { ![istarget hppa*64*-*-linux*] } { |
setup_xfail "hppa*-*-linux*" |
} |
343,7 → 345,9
setup_xfail "alpha*-*-linux*" |
setup_xfail "mips*-*-linux*" |
} |
setup_xfail "x86_64-*-linux*" |
if { [is_elf64 $tmpdir/mainnp.o] } { |
setup_xfail "x86_64-*-linux*" |
} |
if { ![istarget hppa*64*-*-linux*] } { |
setup_xfail "hppa*-*-linux*" |
} |
415,7 → 419,9
setup_xfail "sparc*-*-linux*" |
} |
} |
setup_xfail "x86_64-*-linux*" |
if { [is_elf64 $tmpdir/mainp.o] } { |
setup_xfail "x86_64-*-linux*" |
} |
if { ![istarget hppa*64*-*-linux*] } { |
setup_xfail "hppa*-*-linux*" |
} |