* lib/ld-lib.exp (run_ld_link_tests): Add another argument, pass

its contents to ar_simple_create and ld_simple_link after
	objfiles.
	* ld-aarch64/aarch64-elf.exp: Adjust accordingly.
	* ld-alpha/alpha.exp: Likewise.
	* ld-arm/arm-elf.exp: Likewise.
	* ld-arm/export-class.exp: Likewise.
	* ld-elf/comm-data.exp: Likewise.
	* ld-elf/eh-group.exp: Likewise.
	* ld-elf/elf.exp: Likewise.
	* ld-elf/export-class.exp: Likewise.
	* ld-elfvers/vers.exp: Likewise.
	* ld-frv/tls.exp: Likewise.
	* ld-i386/export-class.exp: Likewise.
	* ld-i386/i386.exp: Likewise.
	* ld-ia64/ia64.exp: Likewise.
	* ld-libs/libs.exp: Likewise.
	* ld-m68k/m68k.exp: Likewise.
	* ld-metag/metag.exp: Likewise.
	* ld-mips-elf/comm-data.exp: Likewise.
	* ld-mips-elf/export-class.exp: Likewise.
	* ld-mips-elf/mips-elf.exp: Likewise.
	* ld-mn10300/mn10300.exp: Likewise.
	* ld-pe/pe-compile.exp: Likewise.
	* ld-pe/pe.exp: Likewise.
	* ld-plugin/plugin.exp: Likewise.
	* ld-powerpc/aix52.exp: Likewise.
	* ld-powerpc/export-class.exp: Likewise.
	* ld-powerpc/powerpc.exp: Likewise.
	* ld-s390/s390.exp: Likewise.
	* ld-sh/sh-vxworks.exp: Likewise.
	* ld-sh/sh64/sh64.exp: Likewise.
	* ld-sparc/sparc.exp: Likewise.
	* ld-tic6x/tic6x.exp: Likewise.
	* ld-tilegx/tilegx.exp: Likewise.
	* ld-tilepro/tilepro.exp: Likewise.
	* ld-undefined/entry.exp: Likewise.
	* ld-vax-elf/vax-elf.exp: Likewise.
	* ld-x86-64/dwarfreloc.exp: Likewise.
	* ld-x86-64/export-class.exp: Likewise.
	* ld-x86-64/x86-64.exp: Likewise.
	* ld-xc16x/xc16x.exp: Likewise.
	* ld-xstormy16/xstormy16.exp: Likewise.
	* ld-xtensa/xtensa.exp: Likewise.
This commit is contained in:
Maciej W. Rozycki 2013-02-19 01:10:06 +00:00
parent 11e965c4b6
commit 897aea504d
43 changed files with 613 additions and 560 deletions

View File

@ -1,3 +1,50 @@
2013-02-19 Maciej W. Rozycki <macro@codesourcery.com>
* lib/ld-lib.exp (run_ld_link_tests): Add another argument, pass
its contents to ar_simple_create and ld_simple_link after
objfiles.
* ld-aarch64/aarch64-elf.exp: Adjust accordingly.
* ld-alpha/alpha.exp: Likewise.
* ld-arm/arm-elf.exp: Likewise.
* ld-arm/export-class.exp: Likewise.
* ld-elf/comm-data.exp: Likewise.
* ld-elf/eh-group.exp: Likewise.
* ld-elf/elf.exp: Likewise.
* ld-elf/export-class.exp: Likewise.
* ld-elfvers/vers.exp: Likewise.
* ld-frv/tls.exp: Likewise.
* ld-i386/export-class.exp: Likewise.
* ld-i386/i386.exp: Likewise.
* ld-ia64/ia64.exp: Likewise.
* ld-libs/libs.exp: Likewise.
* ld-m68k/m68k.exp: Likewise.
* ld-metag/metag.exp: Likewise.
* ld-mips-elf/comm-data.exp: Likewise.
* ld-mips-elf/export-class.exp: Likewise.
* ld-mips-elf/mips-elf.exp: Likewise.
* ld-mn10300/mn10300.exp: Likewise.
* ld-pe/pe-compile.exp: Likewise.
* ld-pe/pe.exp: Likewise.
* ld-plugin/plugin.exp: Likewise.
* ld-powerpc/aix52.exp: Likewise.
* ld-powerpc/export-class.exp: Likewise.
* ld-powerpc/powerpc.exp: Likewise.
* ld-s390/s390.exp: Likewise.
* ld-sh/sh-vxworks.exp: Likewise.
* ld-sh/sh64/sh64.exp: Likewise.
* ld-sparc/sparc.exp: Likewise.
* ld-tic6x/tic6x.exp: Likewise.
* ld-tilegx/tilegx.exp: Likewise.
* ld-tilepro/tilepro.exp: Likewise.
* ld-undefined/entry.exp: Likewise.
* ld-vax-elf/vax-elf.exp: Likewise.
* ld-x86-64/dwarfreloc.exp: Likewise.
* ld-x86-64/export-class.exp: Likewise.
* ld-x86-64/x86-64.exp: Likewise.
* ld-xc16x/xc16x.exp: Likewise.
* ld-xstormy16/xstormy16.exp: Likewise.
* ld-xtensa/xtensa.exp: Likewise.
2013-02-18 Maciej W. Rozycki <macro@codesourcery.com>
* ld-mips-elf/jalx-2.ld: Include .rel.plt in output, give .plt a

View File

@ -24,8 +24,8 @@ if { ![is_elf_format] || ![istarget "aarch64*-*-*"] } {
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -33,7 +33,7 @@ if { ![is_elf_format] || ![istarget "aarch64*-*-*"] } {
# readelf: Apply readelf options on result. Compare with regex (last arg).
set aarch64elftests {
{"EH Frame merge" "-Ttext 0x8000" "" {eh-frame-bar.s eh-frame-foo.s}
{"EH Frame merge" "-Ttext 0x8000" "" "" {eh-frame-bar.s eh-frame-foo.s}
{{objdump --dwarf=frames eh-frame.d}} "eh-frame"}
}

View File

@ -28,8 +28,8 @@ if { !([istarget "alpha*-*-elf*"]
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -37,32 +37,33 @@ if { !([istarget "alpha*-*-elf*"]
# readelf: Apply readelf options on result. Compare with regex (last arg).
set alphatests {
{"TLS -fpic -shared" "-shared -melf64alpha"
{"TLS -fpic -shared" "-shared -melf64alpha" ""
"" {align.s 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"}
{"Helper shared library" "-shared -melf64alpha"
{"Helper shared library" "-shared -melf64alpha" ""
"" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec"
"-melf64alpha tmpdir/libtlslib.so" "" {align.s tlsbinpic.s tlsbin.s}
"-melf64alpha tmpdir/libtlslib.so" "" "" {align.s 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 -fpic and -fno-pic exec -relax"
"-relax -melf64alpha tmpdir/libtlslib.so" "" {align.s tlsbinpic.s tlsbin.s}
"-relax -melf64alpha tmpdir/libtlslib.so" ""
"" {align.s tlsbinpic.s tlsbin.s}
{{readelf -WSsrl tlsbinr.rd} {objdump -drj.text tlsbinr.dd}
{objdump -sj.got tlsbinr.sd}}
"tlsbinr"}
{"empty got"
"-melf64alpha" ""
"-melf64alpha" "" ""
{emptygot.s}
{{nm "-n" emptygot.nm}}
"emptygot"}
}
# Not implemented yet
# {"TLS in debug sections" "-melf64alpha"
# {"TLS in debug sections" "-melf64alpha" ""
# "" {tlsg.s}
# {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}

View File

@ -22,23 +22,23 @@
if {[istarget "arm-*-vxworks"]} {
set armvxworkstests {
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld"
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld" ""
"" {vxworks1-lib.s}
{{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
"libvxworks1.so"}
{"VxWorks executable test 1 (dynamic)" \
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic"
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
"" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
"-Tvxworks1.ld -q --force-dynamic"
"-Tvxworks1.ld -q --force-dynamic" ""
"" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
"-Tvxworks1.ld"
"-Tvxworks1.ld" ""
"" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
@ -59,8 +59,8 @@ if { ![is_elf_format] || ![istarget "arm*-*-*"] } {
}
# List contains test-items with 3 items followed by 2 lists and one more item:
# 0:name 1:ld options 2:assembler options
# 3:filenames of assembler files 4: action and options. 5: name of output file
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -68,382 +68,382 @@ if { ![is_elf_format] || ![istarget "arm*-*-*"] } {
# readelf: Apply readelf options on result. Compare with regex (last arg).
set armelftests_common {
{"Group relocations" "-Ttext 0x8000 --section-start zero=0x0 --section-start alpha=0xeef0 --section-start beta=0xffeef0" "" {group-relocs.s}
{"Group relocations" "-Ttext 0x8000 --section-start zero=0x0 --section-start alpha=0xeef0 --section-start beta=0xffeef0" "" "" {group-relocs.s}
{{objdump -dr group-relocs.d}}
"group-relocs"}
{"Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x401000" "" {thumb1-bl.s}
{"Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x401000" "" "" {thumb1-bl.s}
{{objdump -dr thumb1-bl.d}}
"thumb1-bl"}
{"Indirect cross-library function reference (set-up)"
"-shared" "" {arm-lib-plt-2a.s}
"-shared" "" "" {arm-lib-plt-2a.s}
{}
"arm-lib-plt-2a.so"}
{"Indirect cross-library function reference"
"-shared tmpdir/arm-lib-plt-2a.so" "" {arm-lib-plt-2b.s}
"-shared tmpdir/arm-lib-plt-2a.so" "" "" {arm-lib-plt-2b.s}
{{objdump -dr arm-lib-plt-2.dd} {readelf --relocs arm-lib-plt-2.rd}}
"arm-lib-plt-2b.so"}
{"Simple static application" "" "" {arm-static-app.s}
{"Simple static application" "" "" "" {arm-static-app.s}
{{objdump -fdw arm-static-app.d} {objdump -rw arm-static-app.r}}
"arm-static-app"}
{"target1-abs" "-static --target1-abs -T arm.ld" "" {arm-target1.s}
{"target1-abs" "-static --target1-abs -T arm.ld" "" "" {arm-target1.s}
{{objdump -s arm-target1-abs.d}}
"arm-target1-abs"}
{"target1-rel" "-static --target1-rel -T arm.ld" "" {arm-target1.s}
{"target1-rel" "-static --target1-rel -T arm.ld" "" "" {arm-target1.s}
{{objdump -s arm-target1-rel.d}}
"arm-target1-rel"}
{"target2-rel" "-static --target2=rel -T arm.ld" "" {arm-target2.s}
{"target2-rel" "-static --target2=rel -T arm.ld" "" "" {arm-target2.s}
{{objdump -s arm-target2-rel.d}}
"arm-target2-rel"}
{"target2-abs" "-static --target2=abs -T arm.ld" "" {arm-target2.s}
{"target2-abs" "-static --target2=abs -T arm.ld" "" "" {arm-target2.s}
{{objdump -s arm-target2-abs.d}}
"arm-target2-abs"}
{"target2-got-rel" "-static --target2=got-rel -T arm.ld" "" {arm-target2.s}
{"target2-got-rel" "-static --target2=got-rel -T arm.ld" "" "" {arm-target2.s}
{{objdump -s arm-target2-got-rel.d}}
"arm-target2-got-rel"}
{"arm-rel31" "-static -T arm.ld" "" {arm-rel31.s}
{"arm-rel31" "-static -T arm.ld" "" "" {arm-rel31.s}
{{objdump -s arm-rel31.d}}
"arm-rel31"}
{"arm-rel32" "-shared -T arm-dyn.ld" "" {arm-rel32.s}
{"arm-rel32" "-shared -T arm-dyn.ld" "" "" {arm-rel32.s}
{{objdump -Rsj.data arm-rel32.d}}
"arm-rel32"}
{"arm-call" "--no-fix-arm1176 -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}
{"TLS shared library" "-shared -T arm-lib.ld" "" "" {tls-lib.s}
{{objdump -fdw tls-lib.d} {objdump -Rw tls-lib.r}}
"tls-lib.so"}
{"TLS dynamic application" "-T arm-dyn.ld tmpdir/tls-lib.so" "" {tls-app.s}
{"TLS dynamic application" "-T arm-dyn.ld tmpdir/tls-lib.so" "" "" {tls-app.s}
{{objdump -fdw tls-app.d} {objdump -Rw tls-app.r}}
"tls-app"}
{"TLS gnu shared library got" "-shared -T arm-dyn.ld" "" {tls-gdesc-got.s}
{"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 GD to IE relaxation" "-static -T arm-dyn.ld" "" {tls-gdierelax.s}
{"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" "--no-fix-arm1176 -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}
{"TLS gnu GD to LE relaxation" "-T arm-dyn.ld" "" "" {tls-gdlerelax.s}
{{objdump -fdw tls-gdlerelax.d}}
"tls-app-rel-le"}
{"TLS mixed models shared lib" "-shared -T arm-dyn.ld" "" {tls-mixed.s}
{"TLS mixed models shared lib" "-shared -T arm-dyn.ld" "" "" {tls-mixed.s}
{{objdump -Rw tls-mixed.r}}
"tls-mixed.so"}
{"TLS descseq relaxation" "-T arm-dyn.ld" "" {tls-descrelax.s}
{"TLS descseq relaxation" "-T arm-dyn.ld" "" "" {tls-descrelax.s}
{{objdump -fdw tls-descrelax.d}}
"tls-descrelax"}
{"TLS descseq relaxation v7" "-T arm-dyn.ld" "" {tls-descrelax-v7.s}
{"TLS descseq relaxation v7" "-T arm-dyn.ld" "" "" {tls-descrelax-v7.s}
{{objdump -fdw tls-descrelax-v7.d}}
"tls-descrelax-v7"}
{"TLS descseq relaxation BE8" "-T arm-dyn.ld -EB --be8" "-mbig-endian" {tls-descrelax-be8.s}
{"TLS descseq relaxation BE8" "-T arm-dyn.ld -EB --be8" "" "-mbig-endian" {tls-descrelax-be8.s}
{{objdump -fdw tls-descrelax-be8.d}}
"tls-descrelax-be8"}
{"TLS descseq relaxation BE32" "-T arm-dyn.ld -EB" "-mbig-endian" {tls-descrelax-be32.s}
{"TLS descseq relaxation BE32" "-T arm-dyn.ld -EB" "" "-mbig-endian" {tls-descrelax-be32.s}
{{objdump -fdw tls-descrelax-be32.d}}
"tls-descrelax-be32"}
{"Thumb entry point" "-T arm.ld" "" {thumb-entry.s}
{"Thumb entry point" "-T arm.ld" "" "" {thumb-entry.s}
{{readelf -h thumb-entry.d}}
"thumb-entry"}
{"thumb-rel32" "-static -T arm.ld" "" {thumb-rel32.s}
{"thumb-rel32" "-static -T arm.ld" "" "" {thumb-rel32.s}
{{objdump -s thumb-rel32.d}}
"thumb-rel32"}
{"MOVW/MOVT" "-static -T arm.ld" "" {arm-movwt.s}
{"MOVW/MOVT" "-static -T arm.ld" "" "" {arm-movwt.s}
{{objdump -dw arm-movwt.d}}
"arm-movwt"}
{"BE8 Mapping Symbols" "-static -T arm.ld -EB --be8" "-EB" {arm-be8.s}
{"BE8 Mapping Symbols" "-static -T arm.ld -EB --be8" "" "-EB" {arm-be8.s}
{{objdump -d arm-be8.d}}
"arm-be8"}
{"VFP11 denorm erratum fix, scalar operation"
"-EL --vfp11-denorm-fix=scalar -Ttext=0x8000" "-EL -mfpu=vfpxd" {vfp11-fix-scalar.s}
"-EL --vfp11-denorm-fix=scalar -Ttext=0x8000" "" "-EL -mfpu=vfpxd" {vfp11-fix-scalar.s}
{{objdump -dr vfp11-fix-scalar.d}}
"vfp11-fix-scalar"}
{"VFP11 denorm erratum fix, vector operation"
"-EB --vfp11-denorm-fix=vector -Ttext=0x8000" "-EB -mfpu=vfpxd" {vfp11-fix-vector.s}
"-EB --vfp11-denorm-fix=vector -Ttext=0x8000" "" "-EB -mfpu=vfpxd" {vfp11-fix-vector.s}
{{objdump -dr vfp11-fix-vector.d}}
"vfp11-fix-vector"}
{"VFP11 denorm erratum fix, embedded code-like data"
"-EL --vfp11-denorm-fix=scalar -Ttext=0x8000" "-EL -mfpu=vfpxd" {vfp11-fix-none.s}
"-EL --vfp11-denorm-fix=scalar -Ttext=0x8000" "" "-EL -mfpu=vfpxd" {vfp11-fix-none.s}
{{objdump -dr vfp11-fix-none.d}}
"vfp11-fix-none"}
{"Cortex-A8 erratum fix, b.w"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-b.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-b.s}
{{objdump -dr cortex-a8-fix-b.d}}
"cortex-a8-fix-b"}
{"Cortex-A8 erratum fix, bl.w"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-bl.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-bl.s}
{{objdump -dr cortex-a8-fix-bl.d}}
"cortex-a8-fix-bl"}
{"Cortex-A8 erratum fix, bcc.w"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-bcc.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-bcc.s}
{{objdump -dr cortex-a8-fix-bcc.d}}
"cortex-a8-fix-bcc"}
{"Cortex-A8 erratum fix, blx.w"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-blx.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-blx.s}
{{objdump -dr cortex-a8-fix-blx.d}}
"cortex-a8-fix-blx"}
{"Cortex-A8 erratum fix, relocate b.w to ARM"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-b-rel.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-b-rel.s}
{{objdump -dr cortex-a8-fix-b-rel-arm.d}}
"cortex-a8-fix-b-rel-arm"}
{"Cortex-A8 erratum fix, relocate b.w to Thumb"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-b-rel.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-b-rel.s}
{{objdump -dr cortex-a8-fix-b-rel-thumb.d}}
"cortex-a8-fix-b-rel-thumb"}
{"Cortex-A8 erratum fix, relocate bl.w to ARM"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-bl-rel.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-bl-rel.s}
{{objdump -dr cortex-a8-fix-bl-rel-arm.d}}
"cortex-a8-fix-bl-rel-arm"}
{"Cortex-A8 erratum fix, relocate bl.w to Thumb"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s}
{{objdump -dr cortex-a8-fix-bl-rel-thumb.d}}
"cortex-a8-fix-bl-rel-thumb"}
{"Cortex-A8 erratum fix, relocate b<cond>.w to Thumb"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bcc-rel.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bcc-rel.s}
{{objdump -dr cortex-a8-fix-bcc-rel-thumb.d}}
"cortex-a8-fix-bcc-rel-thumb"}
{"Cortex-A8 erratum fix, relocate blx.w to ARM"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-blx-rel.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-blx-rel.s}
{{objdump -dr cortex-a8-fix-blx-rel-arm.d}}
"cortex-a8-fix-blx-rel-arm"}
{"Cortex-A8 erratum fix, relocate blx.w to Thumb"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-blx-rel.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-blx-rel.s}
{{objdump -dr cortex-a8-fix-blx-rel-thumb.d}}
"cortex-a8-fix-blx-rel-thumb"}
{"Cortex-A8 erratum fix, relocate bl.w and far call"
"-EL -Ttext=0x00 --fix-cortex-a8 --defsym _start=0"
"-EL -Ttext=0x00 --fix-cortex-a8 --defsym _start=0" ""
"-EL -mcpu=cortex-a8" {cortex-a8-far-1.s cortex-a8-far-2.s cortex-a8-far-3.s}
{{objdump -dr cortex-a8-far.d}}
"cortex-a8-far"}
{"Cortex-A8 erratum fix, headers"
"-EL --fix-cortex-a8 -T cortex-a8-fix-hdr.t"
"-EL --fix-cortex-a8 -T cortex-a8-fix-hdr.t" ""
"-EL -mcpu=cortex-a8" {cortex-a8-fix-hdr.s}
{{objdump -dr cortex-a8-fix-hdr.d}}
"cortex-a8-fix-hdr"}
{"Cortex-A8 erratum fix, blx.w and b<cond>.w together"
"-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-blx-bcond.s}
"-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-blx-bcond.s}
{{objdump -dr cortex-a8-fix-blx-bcond.d}}
"cortex-a8-fix-blx-bcond"}
{"Unwinding and -gc-sections" "-gc-sections" "" {gc-unwind.s}
{"Unwinding and -gc-sections" "-gc-sections" "" "" {gc-unwind.s}
{{objdump -sj.data gc-unwind.d}}
"gc-unwind"}
{"Thumb and -gc-sections" "-shared -T arm-dyn.ld" "" {gc-thumb-lib.s}
{"Thumb and -gc-sections" "-shared -T arm-dyn.ld" "" "" {gc-thumb-lib.s}
{}
"gc-thumb-lib.so"}
{"Thumb and -gc-sections" "-pie -T arm.ld -gc-sections tmpdir/gc-thumb-lib.so" "" {gc-thumb.s}
{"Thumb and -gc-sections" "-pie -T arm.ld -gc-sections tmpdir/gc-thumb-lib.so" "" "" {gc-thumb.s}
{{readelf --relocs gc-thumb.d}}
"gc-thumb"}
{"arm-pic-veneer" "-static -T arm.ld --pic-veneer" "" {arm-pic-veneer.s}
{"arm-pic-veneer" "-static -T arm.ld --pic-veneer" "" "" {arm-pic-veneer.s}
{{objdump -d arm-pic-veneer.d}}
"arm-pic-veneer"}
{"jump19" "-static -T arm.ld" "" {jump19.s}
{"jump19" "-static -T arm.ld" "" "" {jump19.s}
{{objdump -dr jump19.d}}
"jump19"}
{"script-type" "-static -T script-type.ld" "" {script-type.s}
{"script-type" "-static -T script-type.ld" "" "" {script-type.s}
{{readelf -s script-type.sym}}
"script-type"}
{"callweak" "-static -T arm.ld" "" {callweak.s}
{"callweak" "-static -T arm.ld" "" "" {callweak.s}
{{objdump -dr callweak.d}}
"callweak"}
{"callweak-2" "-static -T arm.ld" "" {callweak-2.s}
{"callweak-2" "-static -T arm.ld" "" "" {callweak-2.s}
{{objdump -dr callweak-2.d}}
"callweak-2"}
{"Relocation boundaries" "-defsym x=0 -defsym y=0 -defsym _start=0" "" {reloc-boundaries.s}
{"Relocation boundaries" "-defsym x=0 -defsym y=0 -defsym _start=0" "" "" {reloc-boundaries.s}
{{objdump -s reloc-boundaries.d}}
"reloc-boundaries"}
{"Data only mapping symbols" "-T data-only-map.ld -Map map" "" {data-only-map.s}
{"Data only mapping symbols" "-T data-only-map.ld -Map map" "" "" {data-only-map.s}
{{objdump -dr data-only-map.d}}
"data-only-map"}
{"Data only mapping symbols for merged sections" "-T rodata-merge-map.ld" "" {rodata-merge-map1.s rodata-merge-map2.s rodata-merge-map3.s}
{"Data only mapping symbols for merged sections" "-T rodata-merge-map.ld" "" "" {rodata-merge-map1.s rodata-merge-map2.s rodata-merge-map3.s}
{{readelf -s rodata-merge-map.sym}}
"rodata-merge-map"}
{"GOT relocations in executables (setup)" "-shared"
{"GOT relocations in executables (setup)" "-shared" ""
"" {exec-got-1a.s}
{}
"exec-got-1.so"}
{"GOT relocations in executables" "tmpdir/exec-got-1.so"
{"GOT relocations in executables" "tmpdir/exec-got-1.so" ""
"" {exec-got-1b.s}
{{readelf --relocs exec-got-1.d}}
"exec-got-1"}
{"abs call" "-T arm.ld" "" {abs-call-1.s}
{"abs call" "-T arm.ld" "" "" {abs-call-1.s}
{{objdump -d abs-call-1.d}}
"abs-call-1"}
{"Simple non-PIC shared library (no PLT check)" "-shared" "" {arm-lib.s}
{"Simple non-PIC shared library (no PLT check)" "-shared" "" "" {arm-lib.s}
{{objdump -Rw arm-lib.r}}
"arm-lib.so"}
{"EABI soft-float ET_EXEC ABI flag" "-T arm.ld" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s}
{"EABI soft-float ET_EXEC ABI flag" "-T arm.ld" "" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s}
{{readelf -h eabi-soft-float.d}}
"eabi-soft-float"}
{"EABI hard-float ET_EXEC ABI flag" "-T arm.ld" "-mfloat-abi=hard -meabi=5" {eabi-hard-float.s}
{"EABI hard-float ET_EXEC ABI flag" "-T arm.ld" "" "-mfloat-abi=hard -meabi=5" {eabi-hard-float.s}
{{readelf -h eabi-hard-float.d}}
"eabi-hard-float"}
{"EABI hard-float ET_DYN ABI flag" "-shared" "-mfloat-abi=hard -meabi=5" {eabi-hard-float.s}
{"EABI hard-float ET_DYN ABI flag" "-shared" "" "-mfloat-abi=hard -meabi=5" {eabi-hard-float.s}
{{readelf -h eabi-hard-float.d}}
"eabi-hard-float.so"}
{"EABI ABI flags wrong ABI version" "-T arm.ld" "-mfloat-abi=soft -meabi=4" {eabi-soft-float.s}
{"EABI ABI flags wrong ABI version" "-T arm.ld" "" "-mfloat-abi=soft -meabi=4" {eabi-soft-float.s}
{{readelf -h eabi-soft-float-ABI4.d}}
"eabi-soft-float-no-flags"}
{"EABI ABI flags ld -r" "-r" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s}
{"EABI ABI flags ld -r" "-r" "" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s}
{{readelf -h eabi-soft-float-r.d}}
"eabi-soft-float-r.o"}
}
set armelftests_nonacl {
{"Simple non-PIC shared library" "-shared" "" {arm-lib.s}
{"Simple non-PIC shared library" "-shared" "" "" {arm-lib.s}
{{objdump -fdw arm-lib.d} {objdump -Rw arm-lib.r}}
"arm-lib.so"}
{"Simple PIC shared library" "-shared" "" {arm-lib-plt32.s}
{"Simple PIC shared library" "-shared" "" "" {arm-lib-plt32.s}
{{objdump -fdw arm-lib-plt32.d} {objdump -Rw arm-lib-plt32.r}}
"arm-lib-plt32.so"}
{"Simple dynamic application" "tmpdir/arm-lib.so" "" {arm-app.s}
{"Simple dynamic application" "tmpdir/arm-lib.so" "" "" {arm-app.s}
{{objdump -fdw arm-app.d} {objdump -Rw arm-app.r}}
"arm-app"}
{"Simple static application without .rel.plt in linker script"
"-T arm-no-rel-plt.ld" "" {arm-static-app.s}
"-T arm-no-rel-plt.ld" "" "" {arm-static-app.s}
{{objdump -fdw arm-static-app.d} {objdump -rw arm-static-app.r}}
"arm-static-app"}
{"Simple dynamic application without .rel.plt in linker script"
"tmpdir/arm-lib.so -T arm-no-rel-plt.ld" "" {arm-app.s}
"tmpdir/arm-lib.so -T arm-no-rel-plt.ld" "" "" {arm-app.s}
{{ld arm-no-rel-plt.out}}
"arm-app"}
{"Non-pcrel function reference" "tmpdir/arm-lib.so" "" {arm-app-abs32.s}
{"Non-pcrel function reference" "tmpdir/arm-lib.so" "" "" {arm-app-abs32.s}
{{objdump -fdw arm-app-abs32.d} {objdump -Rw arm-app-abs32.r}}
"arm-app-abs32"}
{"Thumb shared library with ARM entry points" "-shared -T arm-lib.ld" "-mthumb-interwork"
{"Thumb shared library with ARM entry points" "-shared -T arm-lib.ld" "" "-mthumb-interwork"
{mixed-lib.s}
{{objdump -fdw armthumb-lib.d} {readelf -Ds armthumb-lib.sym}}
"armthumb-lib.so"}
{"Mixed ARM/Thumb shared library" "-shared -T arm-lib.ld -use-blx" ""
{"Mixed ARM/Thumb shared library" "-shared -T arm-lib.ld -use-blx" "" ""
{mixed-lib.s}
{{objdump -fdw mixed-lib.d} {objdump -Rw mixed-lib.r}
{readelf -Ds mixed-lib.sym}}
"mixed-lib.so"}
{"Mixed ARM/Thumb dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld" ""
{"Mixed ARM/Thumb dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld" "" ""
{mixed-app.s}
{{objdump -fdw mixed-app.d} {objdump -Rw mixed-app.r}
{readelf -Ds mixed-app.sym}}
"mixed-app"}
{"Mixed ARM/Thumb arch5 dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" ""
{"Mixed ARM/Thumb arch5 dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" ""
{mixed-app.s}
{{objdump -fdw mixed-app-v5.d} {objdump -Rw mixed-app.r}
{readelf -Ds mixed-app.sym}}
"mixed-app-v5"}
{"Using Thumb lib by another lib" "-shared tmpdir/mixed-lib.so" "" {use-thumb-lib.s}
{"Using Thumb lib by another lib" "-shared tmpdir/mixed-lib.so" "" "" {use-thumb-lib.s}
{{readelf -Ds use-thumb-lib.sym}}
"use-thumb-lib.so"}
{"Preempt Thumb symbol" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" ""
{"Preempt Thumb symbol" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" ""
{preempt-app.s}
{{readelf -Ds preempt-app.sym}}
"preempt-app"}
{"TLS gnu shared library inlined trampoline" "--no-fix-arm1176 -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" "--no-fix-arm1176 -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"}
{"Cortex-A8 erratum fix, b.w to PLT"
"-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "-EL"
"-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
{cortex-a8-fix-b-plt.s}
{{objdump -dr cortex-a8-fix-b-plt.d}}
"cortex-a8-fix-b-plt"}
{"Cortex-A8 erratum fix, bl.w to PLT"
"-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "-EL"
"-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
{cortex-a8-fix-bl-plt.s}
{{objdump -dr cortex-a8-fix-bl-plt.d}}
"cortex-a8-fix-bl-plt"}
{"Cortex-A8 erratum fix, bcc.w to PLT"
"-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "-EL"
"-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
{cortex-a8-fix-bcc-plt.s}
{{objdump -dr cortex-a8-fix-bcc-plt.d}}
"cortex-a8-fix-bcc-plt"}
{"Cortex-A8 erratum fix, blx.w to PLT"
"-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "-EL"
"-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
{cortex-a8-fix-blx-plt.s}
{{objdump -dr cortex-a8-fix-blx-plt.d}}
"cortex-a8-fix-blx-plt"}
{"Cortex-A8 erratum fix, relocate bl.w to PLT"
"-EL --section-start=.plt=0x8e00 -Ttext=0x8f00 --fix-cortex-a8 -shared"
"-EL --section-start=.plt=0x8e00 -Ttext=0x8f00 --fix-cortex-a8 -shared" ""
"-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s}
{{objdump -dr cortex-a8-fix-bl-rel-plt.d}}
"cortex-a8-fix-bl-rel-thumb"}
{"IFUNC test 1" "-T ifunc-static.ld" "" {ifunc-1.s}
{"IFUNC test 1" "-T ifunc-static.ld" "" "" {ifunc-1.s}
{{objdump -d ifunc-1.dd}
{objdump {-s -j.data -j.got} ifunc-1.gd}
{readelf -dr ifunc-1.rd}}
"ifunc-1"}
{"IFUNC test 2" "-T ifunc-static.ld" "" {ifunc-2.s}
{"IFUNC test 2" "-T ifunc-static.ld" "" "" {ifunc-2.s}
{{objdump -d ifunc-2.dd}
{objdump {-s -j.data -j.got} ifunc-2.gd}
{readelf -dr ifunc-2.rd}}
"ifunc-2"}
{"IFUNC test 3" "-T ifunc-dynamic.ld -shared" "" {ifunc-3.s}
{"IFUNC test 3" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-3.s}
{{objdump -d ifunc-3.dd}
{objdump {-s -j.data -j.got} ifunc-3.gd}
{readelf -r ifunc-3.rd}}
"ifunc-3.so"}
{"IFUNC test 4" "-T ifunc-dynamic.ld -shared" "" {ifunc-4.s}
{"IFUNC test 4" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-4.s}
{{objdump -d ifunc-4.dd}
{objdump {-s -j.data -j.got} ifunc-4.gd}
{readelf -r ifunc-4.rd}}
"ifunc-4.so"}
{"IFUNC test 5" "-T ifunc-static.ld" "" {ifunc-5.s}
{"IFUNC test 5" "-T ifunc-static.ld" "" "" {ifunc-5.s}
{{objdump -d ifunc-5.dd}
{objdump {-s -j.data -j.got} ifunc-5.gd}
{readelf -dr ifunc-5.rd}}
"ifunc-5"}
{"IFUNC test 6" "-T ifunc-static.ld" "" {ifunc-6.s}
{"IFUNC test 6" "-T ifunc-static.ld" "" "" {ifunc-6.s}
{{objdump -d ifunc-6.dd}
{objdump {-s -j.data -j.got} ifunc-6.gd}
{readelf -dr ifunc-6.rd}}
"ifunc-6"}
{"IFUNC test 7" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so -shared"
{"IFUNC test 7" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so -shared" ""
"" {ifunc-7.s}
{{objdump -d ifunc-7.dd}
{objdump {-s -j.data -j.got} ifunc-7.gd}
{readelf -r ifunc-7.rd}}
"ifunc-7.so"}
{"IFUNC test 8" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so -shared"
{"IFUNC test 8" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so -shared" ""
"" {ifunc-8.s}
{{objdump -d ifunc-8.dd}
{objdump {-s -j.data -j.got} ifunc-8.gd}
{readelf -r ifunc-8.rd}}
"ifunc-8.so"}
{"IFUNC test 9" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so" "" {ifunc-9.s}
{"IFUNC test 9" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so" "" "" {ifunc-9.s}
{{objdump -d ifunc-9.dd}
{objdump {-s -j.data -j.got} ifunc-9.gd}
{readelf -r ifunc-9.rd}}
"ifunc-9"}
{"IFUNC test 10" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so" "" {ifunc-10.s}
{"IFUNC test 10" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so" "" "" {ifunc-10.s}
{{objdump -d ifunc-10.dd}
{objdump {-s -j.data -j.got} ifunc-10.gd}
{readelf -r ifunc-10.rd}}
"ifunc-10"}
{"IFUNC test 11" "-T ifunc-static.ld" "" {ifunc-11.s}
{"IFUNC test 11" "-T ifunc-static.ld" "" "" {ifunc-11.s}
{{objdump -d ifunc-11.dd}
{objdump {-s -j.data -j.got} ifunc-11.gd}
{readelf -dr ifunc-11.rd}}
"ifunc-11"}
{"IFUNC test 12" "-T ifunc-dynamic.ld -shared" "" {ifunc-12.s}
{"IFUNC test 12" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-12.s}
{{objdump -d ifunc-12.dd}
{objdump {-s -j.data -j.got} ifunc-12.gd}
{readelf -r ifunc-12.rd}}
"ifunc-12.so"}
{"IFUNC test 13" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" {ifunc-13.s}
{"IFUNC test 13" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-13.s}
{{objdump -d ifunc-13.dd}
{objdump {-s -j.data -j.got} ifunc-13.gd}
{readelf -r ifunc-13.rd}}
"ifunc-13"}
{"IFUNC test 14" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" {ifunc-14.s}
{"IFUNC test 14" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-14.s}
{{objdump -d ifunc-14.dd}
{objdump {-s -j.data -j.got} ifunc-14.gd}
{readelf -r ifunc-14.rd}}
"ifunc-14"}
{"IFUNC test 15" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" {ifunc-15.s}
{"IFUNC test 15" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-15.s}
{{objdump -d ifunc-15.dd}
{objdump {-s -j.data -j.got} ifunc-15.gd}
{readelf -r ifunc-15.rd}}
"ifunc-15"}
{"IFUNC test 16" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" {ifunc-16.s}
{"IFUNC test 16" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-16.s}
{{objdump -d ifunc-16.dd}
{objdump {-s -j.data -j.got} ifunc-16.gd}
{readelf -r ifunc-16.rd}}
@ -475,10 +475,10 @@ if { ![istarget "arm*-*-*eabi"] && ![istarget "arm*-*-nacl*"] } {
# there are no attributes to indicate that blx can be used.
set arm_noeabi_tests {
{"Thumb-2-as-Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-as-thumb1-bad.s}
{"Thumb-2-as-Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-as-thumb1-bad.s}
{{objdump -d thumb2-bl-as-thumb1-bad-noeabi.d}}
"thumb2-bl-as-thumb1-bad"}
{"Thumb-2 BL bad" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-bad.s}
{"Thumb-2 BL bad" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-bad.s}
{{objdump -d thumb2-bl-bad-noeabi.d}}
"thumb2-bl-bad"}
}
@ -489,238 +489,238 @@ if { ![istarget "arm*-*-*eabi"] && ![istarget "arm*-*-nacl*"] } {
# Farcalls stubs are fully supported for ARM-EABI only
set armeabitests_common {
{"EABI attribute merging" "-r" "" {attr-merge.s attr-merge.s}
{"EABI attribute merging" "-r" "" "" {attr-merge.s attr-merge.s}
{{readelf -A attr-merge.attr}}
"attr-merge"}
{"EABI attribute merging 2" "-r" "" {attr-merge-2a.s attr-merge-2b.s}
{"EABI attribute merging 2" "-r" "" "" {attr-merge-2a.s attr-merge-2b.s}
{{readelf -A attr-merge-2.attr}}
"attr-merge-2"}
{"EABI attribute merging 3" "-r" "" {attr-merge-3a.s attr-merge-3b.s}
{"EABI attribute merging 3" "-r" "" "" {attr-merge-3a.s attr-merge-3b.s}
{{readelf -A attr-merge-3.attr}}
"attr-merge-3"}
{"EABI attribute merging 4" "-r" "" {attr-merge-4a.s attr-merge-4b.s}
{"EABI attribute merging 4" "-r" "" "" {attr-merge-4a.s attr-merge-4b.s}
{{readelf -A attr-merge-4.attr}}
"attr-merge-4"}
{"EABI attribute merging 5" "-r" "" {attr-merge-5.s attr-merge-5.s}
{"EABI attribute merging 5" "-r" "" "" {attr-merge-5.s attr-merge-5.s}
{{readelf -A attr-merge-5.attr}}
"attr-merge-5"}
{"EABI attribute merging 6" "-r" "" {attr-merge-6a.s attr-merge-6b.s}
{"EABI attribute merging 6" "-r" "" "" {attr-merge-6a.s attr-merge-6b.s}
{{readelf -A attr-merge-6.attr}}
"attr-merge-6"}
{"EABI attribute merging 6 reversed" "-r" "" {attr-merge-6b.s attr-merge-6a.s}
{"EABI attribute merging 6 reversed" "-r" "" "" {attr-merge-6b.s attr-merge-6a.s}
{{readelf -A attr-merge-6.attr}}
"attr-merge-6r"}
{"EABI attribute merging 7" "-r" "" {attr-merge-7a.s attr-merge-7b.s}
{"EABI attribute merging 7" "-r" "" "" {attr-merge-7a.s attr-merge-7b.s}
{{readelf -A attr-merge-7.attr}}
"attr-merge-7"}
{"EABI attribute arch merging 1" "-r" "" {arch-v6k.s arch-v6t2.s}
{"EABI attribute arch merging 1" "-r" "" "" {arch-v6k.s arch-v6t2.s}
{{readelf -A attr-merge-arch-1.attr}}
"attr-merge-arch-1"}
{"EABI attribute arch merging 1 reversed" "-r" "" {arch-v6t2.s arch-v6k.s}
{"EABI attribute arch merging 1 reversed" "-r" "" "" {arch-v6t2.s arch-v6k.s}
{{readelf -A attr-merge-arch-1.attr}}
"attr-merge-arch-1r"}
{"EABI attribute arch merging 2" "-r" "" {arch-v6k.s arch-v6.s}
{"EABI attribute arch merging 2" "-r" "" "" {arch-v6k.s arch-v6.s}
{{readelf -A attr-merge-arch-2.attr}}
"attr-merge-arch-2"}
{"EABI attribute arch merging 2 reversed" "-r" "" {arch-v6.s arch-v6k.s}
{"EABI attribute arch merging 2 reversed" "-r" "" "" {arch-v6.s arch-v6k.s}
{{readelf -A attr-merge-arch-2.attr}}
"attr-merge-arch-2r"}
{"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x1001000" "" {thumb2-bl.s}
{"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x1001000" "" "" {thumb2-bl.s}
{{objdump -dr thumb2-bl.d}}
"thumb2-bl"}
{"Thumb-2 Interworked branch" "-T arm.ld" "" {thumb2-b-interwork.s}
{"Thumb-2 Interworked branch" "-T arm.ld" "" "" {thumb2-b-interwork.s}
{{objdump -dr thumb2-b-interwork.d}}
"thumb2-b-interwork"}
{"BL/BLX interworking" "-T arm.ld" "" {thumb2-bl-blx-interwork.s}
{"BL/BLX interworking" "-T arm.ld" "" "" {thumb2-bl-blx-interwork.s}
{{objdump -dr thumb2-bl-blx-interwork.d}}
"thumb2-bl-blx-interwork"}
{"ARMv4 interworking" "-static -T arm.ld --fix-v4bx-interworking" "--fix-v4bx -meabi=4" {armv4-bx.s}
{"ARMv4 interworking" "-static -T arm.ld --fix-v4bx-interworking" "" "--fix-v4bx -meabi=4" {armv4-bx.s}
{{objdump -d armv4-bx.d}}
"armv4-bx"}
{"MOVW/MOVT and merged sections" "-T arm.ld" "" {movw-merge.s}
{"MOVW/MOVT and merged sections" "-T arm.ld" "" "" {movw-merge.s}
{{objdump -dw movw-merge.d}}
"movw-merge"}
{"MOVW/MOVT against shared libraries" "tmpdir/arm-lib.so" "" {arm-app-movw.s}
{"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" "--no-fix-arm1176 -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}
{"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-bad.s}
{{objdump -d thumb2-bl-bad.d}}
"thumb2-bl-bad"}
{"ARM-ARM farcall" "-Ttext 0x1000 --section-start .foo=0x2001020" "" {farcall-arm-arm.s}
{"ARM-ARM farcall" "-Ttext 0x1000 --section-start .foo=0x2001020" "" "" {farcall-arm-arm.s}
{{objdump -d farcall-arm-arm.d}}
"farcall-arm-arm"}
{"ARM-ARM farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001020 --pic-veneer" "" {farcall-arm-arm.s}
{"ARM-ARM farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001020 --pic-veneer" "" "" {farcall-arm-arm.s}
{{objdump -d farcall-arm-arm-pic-veneer.d}}
"farcall-arm-arm-pic-veneer"}
{"ARM-ARM farcall (BE8)" "-Ttext 0x1000 --section-start .foo=0x2001020 -EB --be8" "-EB" {farcall-arm-arm.s}
{"ARM-ARM farcall (BE8)" "-Ttext 0x1000 --section-start .foo=0x2001020 -EB --be8" "" "-EB" {farcall-arm-arm.s}
{{objdump -d farcall-arm-arm.d}}
"farcall-arm-arm-be8"}
{"ARM-ARM farcall (BE)" "-Ttext 0x1000 --section-start .foo=0x2001020 -EB" "-EB" {farcall-arm-arm.s}
{"ARM-ARM farcall (BE)" "-Ttext 0x1000 --section-start .foo=0x2001020 -EB" "" "-EB" {farcall-arm-arm.s}
{{objdump -d farcall-arm-arm.d}}
"farcall-arm-arm-be"}
{"Multiple farcalls" "-Ttext 0x1000 --section-start .foo=0x2002020" "" {farcall-mix.s}
{"Multiple farcalls" "-Ttext 0x1000 --section-start .foo=0x2002020" "" "" {farcall-mix.s}
{{objdump -d farcall-mix.d}}
"farcall-mix"}
{"Multiple farcalls from several sections" "-Ttext 0x1000 --section-start .mytext=0x2000 --section-start .foo=0x2003020" "" {farcall-mix2.s}
{"Multiple farcalls from several sections" "-Ttext 0x1000 --section-start .mytext=0x2000 --section-start .foo=0x2003020" "" "" {farcall-mix2.s}
{{objdump -d farcall-mix2.d}}
"farcall-mix2"}
{"Default group size" "-Ttext 0x1000 --section-start .foo=0x2003020" "" {farcall-group.s farcall-group2.s}
{"Default group size" "-Ttext 0x1000 --section-start .foo=0x2003020" "" "" {farcall-group.s farcall-group2.s}
{{objdump -d farcall-group.d}}
"farcall-group-default"}
{"Group size=2" "-Ttext 0x1000 --section-start .foo=0x2003020 --stub-group-size=2" "" {farcall-group.s farcall-group2.s}
{"Group size=2" "-Ttext 0x1000 --section-start .foo=0x2003020 --stub-group-size=2" "" "" {farcall-group.s farcall-group2.s}
{{objdump -d farcall-group-size2.d}}
"farcall-group-size2"}
{"Group size limit" "-Ttext 0x1000 --section-start .far=0x2003020" "" {farcall-group3.s farcall-group4.s}
{"Group size limit" "-Ttext 0x1000 --section-start .far=0x2003020" "" "" {farcall-group3.s farcall-group4.s}
{{objdump -d farcall-group-limit.d}}
"farcall-group-limit"}
{"Long branch with mixed text and data" "-T arm.ld" "" {farcall-data.s}
{"Long branch with mixed text and data" "-T arm.ld" "" "" {farcall-data.s}
{{objdump -dr farcall-data.d}}
"farcall-data"}
{"R_ARM_THM_JUMP24 Relocation veneers: Short 1"
"--no-fix-arm1176 --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"
"--no-fix-arm1176 --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"
"--no-fix-arm1176 --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"}
{"erratum 760522 fix (default for v6z)" "--section-start=.foo=0x2001014"
{"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"
{"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"
{"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 "
{"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 "
{"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 "
{"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"}
}
set armeabitests_nonacl {
{"ARM-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "" {farcall-arm-thumb.s}
{"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" "--no-fix-arm1176 -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}
{"ARM-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" "" {farcall-arm-thumb.s}
{{objdump -d farcall-arm-thumb-pic-veneer.d}}
"farcall-arm-thumb-pic-veneer"}
{"ARM-Thumb farcall with BLX (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv5t" {farcall-arm-thumb.s}
{"ARM-Thumb farcall with BLX (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" "-march=armv5t" {farcall-arm-thumb.s}
{{objdump -d farcall-arm-thumb-blx-pic-veneer.d}}
"farcall-arm-thumb-blx-pic-veneer"}
{"Thumb-Thumb farcall with BLX" "--no-fix-arm1176 -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}
{"Thumb-Thumb farcall M profile" "-Ttext 0x1000 --section-start .foo=0x2001014" "" "-march=armv7-m" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb-m.d}}
"farcall-thumb-thumb-m"}
{"Thumb-Thumb farcall v6-M" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv6-m" {farcall-thumb-thumb.s}
{"Thumb-Thumb farcall v6-M" "-Ttext 0x1000 --section-start .foo=0x2001014" "" "-march=armv6-m" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb-m.d}}
"farcall-thumb-thumb-v6-m"}
{"Thumb-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv4t" {farcall-thumb-thumb.s}
{"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)" "--no-fix-arm1176 -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}
{"Thumb-Thumb farcall M profile (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" "-march=armv7-m" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb-m-pic-veneer.d}}
"farcall-thumb-thumb-m-pic-veneer"}
{"Thumb-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv4t" {farcall-thumb-thumb.s}
{"Thumb-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" "-march=armv4t" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb-pic-veneer.d}}
"farcall-thumb-thumb-pic-veneer"}
{"Thumb-ARM farcall" "-Ttext 0x1c01010 --section-start .foo=0x2001014" "-W" {farcall-thumb-arm.s}
{"Thumb-ARM farcall" "-Ttext 0x1c01010 --section-start .foo=0x2001014" "" "-W" {farcall-thumb-arm.s}
{{objdump -d farcall-thumb-arm.d}}
"farcall-thumb-arm"}
{"Thumb-ARM farcall (BE8)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 -EB --be8" "-W -EB" {farcall-thumb-arm.s}
{"Thumb-ARM farcall (BE8)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 -EB --be8" "" "-W -EB" {farcall-thumb-arm.s}
{{objdump -d farcall-thumb-arm.d}}
"farcall-thumb-arm-be8"}
{"Thumb-ARM farcall (BE)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 -EB" "-W -EB" {farcall-thumb-arm.s}
{"Thumb-ARM farcall (BE)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 -EB" "" "-W -EB" {farcall-thumb-arm.s}
{{objdump -d farcall-thumb-arm.d}}
"farcall-thumb-arm-be"}
{"Thumb-ARM (short) call" "-Ttext 0x1000 --section-start .foo=0x0002014" "-W" {farcall-thumb-arm-short.s}
{"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" "--no-fix-arm1176 -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)" "--no-fix-arm1176 -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}
{"Thumb-ARM farcall (PIC veneer)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "" "-W" {farcall-thumb-arm.s}
{{objdump -d farcall-thumb-arm-pic-veneer.d}}
"farcall-thumb-arm-pic-veneer"}
{"Mixed ARM/Thumb dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" ""
{"Mixed ARM/Thumb dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" ""
{farcall-mixed-app.s}
{{objdump -fdw farcall-mixed-app.d} {objdump -Rw farcall-mixed-app.r}
{readelf -Ds farcall-mixed-app.sym}}
"farcall-mixed-app"}
{"Mixed ARM/Thumb arch5 dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" ""
{"Mixed ARM/Thumb arch5 dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" ""
{farcall-mixed-app.s}
{{objdump -fdw farcall-mixed-app-v5.d} {objdump -Rw farcall-mixed-app.r}
{readelf -Ds farcall-mixed-app.sym}}
"farcall-mixed-app-v5"}
{"Mixed ARM/Thumb shared library with long branches (v4t)" "-shared -T arm-lib.ld" "-march=armv4t"
{"Mixed ARM/Thumb shared library with long branches (v4t)" "-shared -T arm-lib.ld" "" "-march=armv4t"
{farcall-mixed-lib1.s farcall-mixed-lib2.s}
{{objdump -fdw farcall-mixed-lib-v4t.d}}
"farcall-mixed-lib.so"}
{"Mixed ARM/Thumb shared library with long branches (v5t)" "--no-fix-arm1176 -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"}
{"TLS gnu shared library" "--no-fix-arm1176 -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}
{"TLS gnu shared library non-lazy" "-z now -shared -T arm-dyn.ld" "" "" {tls-gdesc.s}
{{readelf "-x .got" tls-gdesc-nlazy.g}}
"tls-lib2-nlazy.so"}
{"TLS long plt library" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" {tls-longplt-lib.s}
{"TLS long plt library" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" "" {tls-longplt-lib.s}
{{objdump -fdw tls-longplt-lib.d}}
"tls-longplt-lib.so"}
{"TLS long plt" "-T arm-dyn.ld --section-start .foo=0x4001000 tmpdir/tls-longplt-lib.so" "" {tls-longplt.s}
{"TLS long plt" "-T arm-dyn.ld --section-start .foo=0x4001000 tmpdir/tls-longplt-lib.so" "" "" {tls-longplt.s}
{{objdump -fdw tls-longplt.d}}
"tls-longplt"}
{"TLS thumb1" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" {tls-thumb1.s}
{"TLS thumb1" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" "" {tls-thumb1.s}
{{objdump -fdw tls-thumb1.d}}
"tls-thumb1"}
}

View File

@ -37,7 +37,7 @@ set testname "ARM symbol export class test"
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object)" \
"-marmelf_linux_eabi -shared -version-script ../ld-elf/export-class-lib.ver" \
"-marmelf_linux_eabi -shared -version-script ../ld-elf/export-class-lib.ver" "" \
"-EL" \
{ ../ld-elf/export-class-lib.s } \
{} \
@ -51,7 +51,7 @@ run_ld_link_tests [list \
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
"-marmelf_linux_eabi -r" \
"-marmelf_linux_eabi -r" "" \
"-EL" \
{ ../ld-elf/export-class-ref.s } \
{} \
@ -68,7 +68,7 @@ run_ld_link_tests [list \
run_ld_link_tests [list \
[list \
"$testname (final shared object)" \
"-marmelf_linux_eabi -shared -Tdata=0x12340000 tmpdir/arm-export-class-ref-r.o tmpdir/arm-export-class-lib.so" \
"-marmelf_linux_eabi -shared -Tdata=0x12340000 tmpdir/arm-export-class-ref-r.o tmpdir/arm-export-class-lib.so" "" \
"-EL" \
{ ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
{ \

View File

@ -43,7 +43,7 @@ set testname "Common symbol override test"
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object build)" \
"-shared" \
"-shared" "" \
"" \
{ comm-data1.s } \
{ \
@ -67,7 +67,7 @@ setup_xfail "arm*-*-*" "ld/13802"
run_ld_link_tests [list \
[list \
"$testname" \
"-Ltmpdir -lcomm-data" \
"-Ltmpdir -lcomm-data" "" \
"$AFLAGS" \
{ comm-data2.s } \
{ \
@ -79,7 +79,7 @@ run_ld_link_tests [list \
] \
[list \
"$testname 3a" \
"-static" \
"-static" "" \
"" \
{ comm-data3a.s comm-data3b.s } \
{ \
@ -89,7 +89,7 @@ run_ld_link_tests [list \
] \
[list \
"$testname 3b" \
"-static" \
"-static" "" \
"" \
{ comm-data3b.s comm-data3a.s } \
{ \

View File

@ -58,7 +58,7 @@ if [is_elf64 "tmpdir/eh-group1size.o"] {
set build_tests_ld [list \
[list "Build eh-group1.o" \
"-r" "$as_options" \
"-r" "" "$as_options" \
{eh-group1.s eh-group2.s} {} "eh-group.o"] \
]

View File

@ -56,23 +56,23 @@ if { [is_remote host] } then {
if { ![istarget hppa64*-hpux*] } {
run_ld_link_tests {
{"Build symbol3.a"
"" ""
"" "" ""
{symbol3.s} {} "symbol3.a"}
{"Build symbol3w.a"
"" ""
"" "" ""
{symbol3w.s} {} "symbol3w.a"}
}
if { [check_shared_lib_support] } then {
run_ld_link_tests {
{"Build pr14170a.o" "" "" "pr14170a.s" {} "pr14170.a" }
{"Build pr14170a.o" "" "" "" "pr14170a.s" {} "pr14170.a" }
}
setup_xfail "tic6x-*-*"
run_ld_link_tests {
{"Build shared library for pr14170"
"-shared" "" "pr14170b.s" {} "pr14170.so" }
"-shared" "" "" "pr14170b.s" {} "pr14170.so" }
{"PR ld/14170"
"tmpdir/pr14170a.o tmpdir/pr14170.so" "" "pr14170c.s"
"tmpdir/pr14170a.o tmpdir/pr14170.so" "" "" "pr14170c.s"
{ } "pr14170" }
}
}
@ -88,9 +88,9 @@ if { [check_shared_lib_support] } then {
setup_xfail "tic6x-*-*"
run_ld_link_tests {
{"Build shared library for next test"
"-shared" "" "note-3.s" {} "note-3.so" }
"-shared" "" "" "note-3.s" {} "note-3.so" }
{"Link using broken linker script"
"--script note-3.t tmpdir/note-3.so" "" ""
"--script note-3.t tmpdir/note-3.so" "" "" ""
{ { ld "note-3.l" } }
"a.out" }
}
@ -108,11 +108,11 @@ if { [istarget *-*-linux*]
|| [istarget *-*-gnu*] } {
run_ld_link_tests {
{"Weak symbols in dynamic objects 1 (support)"
"-shared" "" {weak-dyn-1a.s}
"-shared" "" "" {weak-dyn-1a.s}
{}
"libweakdyn1a.so"}
{"Weak symbols in dynamic objects 1 (main test)"
"-shared tmpdir/libweakdyn1a.so -Tweak-dyn-1.ld" "" {weak-dyn-1b.s}
"-shared tmpdir/libweakdyn1a.so -Tweak-dyn-1.ld" "" "" {weak-dyn-1b.s}
{{readelf {--relocs --wide} weak-dyn-1.rd}}
"libweakdyn1b.so"}
}
@ -122,7 +122,7 @@ if { [istarget *-*-linux*]
if { [check_gc_sections_available] && ![istarget "v850-*-*"] } {
run_ld_link_tests {
{"--gc-sections on tls variable"
"--gc-section" "" {tls_gc.s} {} "tls_gc"}
"--gc-section" "" "" {tls_gc.s} {} "tls_gc"}
}
}
@ -130,9 +130,9 @@ if { [istarget *-*-*linux*]
|| [istarget *-*-nacl*]
|| [istarget *-*-gnu*] } {
run_ld_link_tests {
{"stack exec" "-z execstack" "" {stack.s}
{"stack exec" "-z execstack" "" "" {stack.s}
{{readelf {-Wl} stack-exec.rd}} "stack-exec.exe"}
{"stack size" "-z stack-size=0x123400" "" {stack.s}
{"stack size" "-z stack-size=0x123400" "" "" {stack.s}
{{readelf {-Wl} stack-size.rd}} "stack-size.exe"}
}
}

View File

@ -44,7 +44,7 @@ set testname "Symbol export class test"
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object)" \
"-shared -version-script export-class-lib.ver" \
"-shared -version-script export-class-lib.ver" "" \
"" \
{ export-class-lib.s } \
{} \
@ -58,7 +58,7 @@ run_ld_link_tests [list \
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
"-r" \
"-r" "" \
"" \
{ export-class-ref.s } \
{} \
@ -75,7 +75,7 @@ run_ld_link_tests [list \
run_ld_link_tests [list \
[list \
"$testname (final shared object)" \
"-shared -Tdata=0x12340000 tmpdir/export-class-ref-r.o tmpdir/export-class-lib.so" \
"-shared -Tdata=0x12340000 tmpdir/export-class-ref-r.o tmpdir/export-class-lib.so" "" \
"" \
{ export-class-dep.s export-class-def.s } \
{ \

View File

@ -934,15 +934,15 @@ if [istarget sparc*-*-*] {
set as_pic_flags "-K PIC"
}
run_ld_link_tests [list "\"vers24a\"
\"-shared --version-script $srcdir/$subdir/vers24.map\"
\"-shared --version-script $srcdir/$subdir/vers24.map\" \"\"
\"$as_pic_flags $as_options\" {vers24a.c vers24b.c} { { readelf -Wrs vers24.rd } }
\"libvers24a.so\" \"-fpic\""]
run_ld_link_tests [list "\"vers24b\"
\"-shared --version-script $srcdir/$subdir/vers24.map\"
\"-shared --version-script $srcdir/$subdir/vers24.map\" \"\"
\"$as_pic_flags $as_options\" {vers24b.c vers24a.c} { { readelf -Wrs vers24.rd } }
\"libvers24b.so\" \"-fpic\""]
run_ld_link_tests [list "\"vers24c\"
\"-shared --version-script $srcdir/$subdir/vers24.map\"
\"-shared --version-script $srcdir/$subdir/vers24.map\" \"\"
\"$as_pic_flags $as_options\" {vers24c.c} { { readelf -Wrs vers24.rd } }
\"libvers24c.so\" \"-fpic\""]

View File

@ -31,7 +31,7 @@ global LDFLAGS
set saved_LDFLAGS "$LDFLAGS"
set LDFLAGS "$LDFLAGS -melf32frvfd"
run_ld_link_tests [list [list "tls-1-dep" "$LDFLAGS -shared" "" "tls-1-dep.s" [list] "tls-1-dep.so" ""]]
run_ld_link_tests [list [list "tls-1-dep" "$LDFLAGS -shared" "" "" "tls-1-dep.s" [list] "tls-1-dep.so" ""]]
run_dump_test "tls-static-1"
run_dump_test "tls-dynamic-1"
run_dump_test "tls-pie-1"

View File

@ -44,7 +44,7 @@ set testname "i386 symbol export class test"
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object)" \
"-shared -version-script ../ld-elf/export-class-lib.ver" \
"-shared -version-script ../ld-elf/export-class-lib.ver" "" \
"" \
{ ../ld-elf/export-class-lib.s } \
{} \
@ -58,7 +58,7 @@ run_ld_link_tests [list \
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
"-r" \
"-r" "" \
"" \
{ ../ld-elf/export-class-ref.s } \
{} \
@ -75,7 +75,7 @@ run_ld_link_tests [list \
run_ld_link_tests [list \
[list \
"$testname (final shared object)" \
"-shared -Tdata=0x12340000 tmpdir/i386-export-class-ref-r.o tmpdir/i386-export-class-lib.so" \
"-shared -Tdata=0x12340000 tmpdir/i386-export-class-ref-r.o tmpdir/i386-export-class-lib.so" "" \
"" \
{ ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
{ \

View File

@ -25,23 +25,23 @@
if {[istarget "i?86-*-vxworks"]} {
set i386tests {
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld"
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld" ""
"" {vxworks1-lib.s}
{{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
"libvxworks1.so"}
{"VxWorks executable test 1 (dynamic)" \
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic"
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
"" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
"-Tvxworks1.ld -q --force-dynamic"
"-Tvxworks1.ld -q --force-dynamic" ""
"" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
"-Tvxworks1.ld"
"-Tvxworks1.ld" ""
"" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
@ -51,7 +51,7 @@ if {[istarget "i?86-*-vxworks"]} {
}
if [istarget "*-*-go32*"] {
run_ld_link_tests {{"go32 stub" "" "" {zero.s} {} "go32stub"}}
run_ld_link_tests {{"go32 stub" "" "" "" {zero.s} {} "go32stub"}}
set src "tmpdir/go32stub"
set dest "tmpdir/go32stub-copy"
@ -111,8 +111,8 @@ if { !([istarget "i?86-*-elf*"]
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -121,66 +121,67 @@ if { !([istarget "i?86-*-elf*"]
set i386tests {
{"Helper shared library (basic PLT test)"
"-shared -melf_i386" "--32" {pltlib.s} {} "libpltlib.so"}
"-shared -melf_i386" "" "--32" {pltlib.s} {} "libpltlib.so"}
{"basic PLT generation (non-PIC)"
"-melf_i386 tmpdir/libpltlib.so" "--32" {plt.s}
"-melf_i386 tmpdir/libpltlib.so" "" "--32" {plt.s}
{{objdump -drj.plt plt.pd}} "plt"}
{"basic PLT generation (PIC)"
"-shared -melf_i386 tmpdir/libpltlib.so" "--32" {plt-pic.s}
"-shared -melf_i386 tmpdir/libpltlib.so" "" "--32" {plt-pic.s}
{{objdump -drj.plt plt-pic.pd}} "libplt-pic.so"}
{"TLS -fpic -shared transitions"
"-shared -melf_i386 --no-ld-generated-unwind-info"
"-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 --no-ld-generated-unwind-info"
"-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}}
"libtlsdesc.so"}
{"Helper shared library" "-shared -melf_i386"
{"Helper shared library" "-shared -melf_i386" ""
"--32" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec transitions"
"-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info"
"-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 --no-ld-generated-unwind-info"
"-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 --no-ld-generated-unwind-info"
{"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 --no-ld-generated-unwind-info"
"-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"
{"TLS in debug sections" "-melf_i386" ""
"--32" {tlsg.s}
{{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}
{"TLS @indntpoff with %eax" "-melf_i386" "--32" {tlsindntpoff.s}
{"TLS @indntpoff with %eax" "-melf_i386" "" "--32" {tlsindntpoff.s}
{{objdump -drj.text tlsindntpoff.dd}} "tlsindntpoff"}
{"Reloc section order" "-shared -melf_i386 -z nocombreloc" "--32"
{"Reloc section order" "-shared -melf_i386 -z nocombreloc" "" "--32"
{reloc.s} {{objdump -hw reloc.d}} "reloc.so"}
{"Basic --emit-relocs support" "-shared -melf_i386 --emit-relocs" "--32"
{"Basic --emit-relocs support" "-shared -melf_i386 --emit-relocs" "" "--32"
{emit-relocs.s} {{readelf --relocs emit-relocs.rd}} "emit-relocs.so"}
{"-z combreloc relocation sections" "-shared -melf_i386 -z combreloc"
{"-z combreloc relocation sections" "-shared -melf_i386 -z combreloc" ""
"--32" {combreloc.s} {{readelf -r combreloc.d}} "combreloc.so"}
{"TLS GD->LE transition" "-melf_i386"
{"TLS GD->LE transition" "-melf_i386" ""
"--32" {tlsgd1.s}
{{objdump -dwr tlsgd1.dd}} "tlsgd1"}
{"TLS LD->LE transition" "-melf_i386"
{"TLS LD->LE transition" "-melf_i386" ""
"--32" {tlsld1.s}
{{objdump -dwr tlsld1.dd}} "tlsld1"}
{"TLS IE->LE transition" "-melf_i386"
{"TLS IE->LE transition" "-melf_i386" ""
"--32" {tlsie1.s}
{{objdump -dwr tlsie1.dd}} "tlsie1"}
}

View File

@ -28,8 +28,8 @@ if { !([istarget "ia64-*-elf*"]
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -37,19 +37,19 @@ if { !([istarget "ia64-*-elf*"]
# readelf: Apply readelf options on result. Compare with regex (last arg).
set ia64tests {
{"TLS -fpic -shared" "-shared"
{"TLS -fpic -shared" "-shared" ""
"-mtune=itanium1" {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"}
{"Helper shared library" "-shared"
{"Helper shared library" "-shared" ""
"" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec"
"tmpdir/libtlslib.so" "-mtune=itanium1" {tlsbinpic.s tlsbin.s}
"tmpdir/libtlslib.so" "" "-mtune=itanium1" {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 in debug sections" ""
{"TLS in debug sections" "" ""
"" {tlsg.s}
{{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}
}

View File

@ -24,7 +24,7 @@ file mkdir tmpdir/libtmp
# Check that -l: works. The first "test" just creates an object file
# for the second one.
run_ld_link_tests {
{"-l: test (preparation)" "-r" "" {lib-1.s} {} "libtmp/anobject"}
{"-l: test" "-r -Ltmpdir/libtmp -l:anobject" "" {lib-2.s}
{"-l: test (preparation)" "-r" "" "" {lib-1.s} {} "libtmp/anobject"}
{"-l: test" "-r -Ltmpdir/libtmp -l:anobject" "" "" {lib-2.s}
{{nm -C lib-2.d}} "lib-2"}
}

View File

@ -25,8 +25,8 @@ if { ![is_elf_format] || ![istarget m68k-*-*] } {
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -34,17 +34,17 @@ if { ![is_elf_format] || ![istarget m68k-*-*] } {
# readelf: Apply readelf options on result. Compare with regex (last arg).
set m68k_mergeok_tests {
{"merge isa-a isa-a:nodiv" "-T merge.ld" ""
{"merge isa-a isa-a:nodiv" "-T merge.ld" "" ""
{isaa.s isaa-nodiv.s} {{objdump -p isaa.d}} "isaa-nodiv"}
{"merge isa-a isa-b" "-T merge.ld" ""
{"merge isa-a isa-b" "-T merge.ld" "" ""
{isaa.s isab.s} {{objdump -p isab.d}} "isab"}
{"merge isa-a isa-aplus" "-T merge.ld" ""
{"merge isa-a isa-aplus" "-T merge.ld" "" ""
{isaa.s isaaplus.s} {{objdump -p isaaplus.d}} "isaplus"}
{"merge isa-b isa-b:nousp" "-T merge.ld" ""
{"merge isa-b isa-b:nousp" "-T merge.ld" "" ""
{isab.s isab-nousp.s} {{objdump -p isab.d}} "isab"}
{"merge isa-a isa-a:mac" "-T merge.ld" ""
{"merge isa-a isa-a:mac" "-T merge.ld" "" ""
{isaa.s isaa-mac.s} {{objdump -p isaa-mac.d}} "isaa-mac"}
{"merge isa-b isa-b:float" "-T merge.ld" ""
{"merge isa-b isa-b:float" "-T merge.ld" "" ""
{isab.s isab-float.s} {{objdump -p isab-float.d}} "isab-float"}}
run_ld_link_tests $m68k_mergeok_tests
@ -61,7 +61,7 @@ run_dump_test "merge-ok-1c"
foreach { id sources } { a { plt1.s } b { plt1-empty.s plt1.s } } {
foreach arch { 68020 cpu32 isab isac } {
run_ld_link_tests [list \
[list "PLT 1$id ($arch)" "-shared -T plt1.ld" "-m$arch" \
[list "PLT 1$id ($arch)" "-shared -T plt1.ld" "" "-m$arch" \
$sources [list [list objdump -dr plt1-$arch.d]] \
plt1-${id}-${arch}.so]]
}
@ -77,15 +77,15 @@ if { [istarget m68k-*-linux*] } then {
set m68k_tls_tests {
{"TLS definition"
"-shared" "" {tls-def-1.s}
"-shared" "" "" {tls-def-1.s}
{{nm -ngD tls-def-1.d}}
"tls-def-1.so"}
{"TLS direct symbol use"
"-shared tmpdir/tls-def-1.so" "" {tls-gd-1.s}
"-shared tmpdir/tls-def-1.so" "" "" {tls-gd-1.s}
{{nm -ngD tls-gd-1.d2} {readelf -d tls-gd-1.d3}}
"tls-gd-1.so"}
{"TLS indirect symbol use"
"--copy-dt-needed-entries tmpdir/tls-gd-1.so -rpath-link ./" "" {tls-main-1.s}
"--copy-dt-needed-entries tmpdir/tls-gd-1.so -rpath-link ./" "" "" {tls-main-1.s}
{{readelf -d tls-main-1.d}}
"tls-main-1"}}

View File

@ -26,32 +26,32 @@ if {!([istarget "metag-*-*"]) } {
# Set up a list as described in ld-lib.exp
set metag_tests {
{"Meta pc-relative relocs linker test" "" ""
{"Meta pc-relative relocs linker test" "" "" ""
{ "pcrel.s" "external.s" }
{ {objdump -Dz pcrel.d} }
"pcrel"
}
{"Simple PIC shared library" "-shared" ""
{"Simple PIC shared library" "-shared" "" ""
{shared.s}
{ {objdump -fdw shared.d} {objdump -Rw shared.r} }
"shared.so"
}
{"Long branch stub" "" ""
{"Long branch stub" "" "" ""
{stub.s}
{ {objdump -fdw stub.d} }
"stub"
}
{"Shared library for stub tests" "-shared" ""
{"Shared library for stub tests" "-shared" "" ""
{stub_shared.s}
{ {objdump -fdw stub_shared.d} {objdump -Rw stub_shared.r} }
"stub_shared.so"
}
{"Long branch stub (PIC, app)" "tmpdir/stub_shared.so" ""
{"Long branch stub (PIC, app)" "tmpdir/stub_shared.so" "" ""
{stub_pic_app.s}
{ {objdump -fdw stub_pic_app.d} {objdump -Rw stub_pic_app.r} }
"stub_pic_app"
}
{"Long branch stub (PIC, shared)" "-shared" ""
{"Long branch stub (PIC, shared)" "-shared" "" ""
{stub_pic_shared.s}
{ {objdump -fdw stub_pic_shared.d} }
"stub_pic_shared.so"

View File

@ -43,7 +43,7 @@ proc mips_comm_data_test { abi flag emul reloc } {
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object build)" \
"$LDFLAGS -shared" \
"$LDFLAGS -shared" "" \
"$AFLAGS -call_shared" \
{ ../ld-elf/comm-data1.s } \
{ \
@ -64,7 +64,7 @@ proc mips_comm_data_test { abi flag emul reloc } {
run_ld_link_tests [list \
[list \
"$testname" \
"$LDFLAGS $ZFLAG -Ltmpdir -lmips-$abi-$reloc-comm-data" \
"$LDFLAGS $ZFLAG -Ltmpdir -lmips-$abi-$reloc-comm-data" "" \
"$AFLAGS -call_nonpic" \
{ ../ld-elf/comm-data2.s } \
{ \

View File

@ -44,7 +44,7 @@ proc mips_export_class_test { abi flag emul } {
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object)" \
"$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" \
"$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-lib.s } \
{} \
@ -58,7 +58,7 @@ proc mips_export_class_test { abi flag emul } {
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
"$LDFLAGS -r" \
"$LDFLAGS -r" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-ref.s } \
{} \
@ -75,7 +75,7 @@ proc mips_export_class_test { abi flag emul } {
run_ld_link_tests [list \
[list \
"$testname (final shared object)" \
"$LDFLAGS -shared -Tdata=0x12340000 tmpdir/mips-$abi-export-class-ref-r.o tmpdir/mips-$abi-export-class-lib.so" \
"$LDFLAGS -shared -Tdata=0x12340000 tmpdir/mips-$abi-export-class-ref-r.o tmpdir/mips-$abi-export-class-lib.so" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
[list \

View File

@ -22,23 +22,23 @@
if {[istarget "mips*-*-vxworks"]} {
set mipsvxtests {
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld"
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld" ""
"-mips2" {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"
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
"-mips2" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
"-Tvxworks1.ld -q --force-dynamic"
"-Tvxworks1.ld -q --force-dynamic" ""
"-mips2" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
"-Tvxworks1.ld"
"-Tvxworks1.ld" ""
"-mips2" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
@ -89,20 +89,20 @@ if { [istarget mips*-*-linux*] || [istarget mips*-sde-elf*] } {
if { $linux_gnu } {
run_ld_link_tests [list \
[list "Dummy shared library for MIPS16 PIC test 1" \
"-shared -melf32btsmip" \
"-shared -melf32btsmip" "" \
"-EB -32 -mips1" \
{ mips16-pic-1-dummy.s } \
{} \
"mips16-pic-1-dummy.so"] \
[list "MIPS16 PIC test 1" \
"-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-1-dummy.so" \
"-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-1-dummy.so" "" \
"-EB -32 -mips1 -I $srcdir/$subdir" \
{ mips16-pic-1a.s mips16-pic-1b.s } \
{ { objdump { -dr -j.text } mips16-pic-1.dd }
{ readelf -A mips16-pic-1.gd } } \
"mips16-pic-1"] \
[list "MIPS16 PIC test 2" \
"-melf32btsmip -T mips16-pic-1.ld -shared" \
"-melf32btsmip -T mips16-pic-1.ld -shared" "" \
"-EB -32 -mips1 -I $srcdir/$subdir" \
{ mips16-pic-2a.s mips16-pic-2b.s } \
{ { objdump { -dr -j.text } mips16-pic-2.dd } \
@ -112,7 +112,7 @@ if { $linux_gnu } {
{ readelf -d mips16-pic-2.ad } } \
"mips16-pic-2"] \
[list "MIPS16 PIC test 3" \
"-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-1-dummy.so" \
"-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-1-dummy.so" "" \
"-EB -32 -mips1 -I $srcdir/$subdir" \
{ mips16-pic-3a.s mips16-pic-3b.s } \
{ { objdump -dr mips16-pic-3.dd } \
@ -120,7 +120,7 @@ if { $linux_gnu } {
{ readelf -A mips16-pic-3.gd } } \
"mips16-pic-3"] \
[list "MIPS16 PIC test 4 (shared library)" \
"-shared -melf32btsmip -T mips16-pic-1.ld --version-script mips16-pic-4.ver" \
"-shared -melf32btsmip -T mips16-pic-1.ld --version-script mips16-pic-4.ver" "" \
"-EB -32 -mips1" \
{ mips16-pic-4a.s mips16-pic-4b.s } \
{ { objdump -dr mips16-pic-4a.dd } \
@ -128,7 +128,7 @@ if { $linux_gnu } {
{ readelf -A mips16-pic-4a.gd } } \
"mips16-pic-4.so"] \
[list "MIPS16 PIC test 4 (executable)" \
"-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-4.so" \
"-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-4.so" "" \
"-EB -32 -mips1" \
{ mips16-pic-4c.s } \
{ { objdump -dr mips16-pic-4b.dd } } \
@ -147,19 +147,19 @@ run_dump_test "jalx-1"
if { $linux_gnu } {
run_ld_link_tests [list \
[list "Dummy shared library for JALX test 2" \
"-shared -nostdlib -melf32btsmip" \
"-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" \
"-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" \
"-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 } } \
@ -232,19 +232,19 @@ if { $linux_gnu } {
# The third test checks that we do the same when linking the
# result of the first link (with no other source files).
run_ld_link_tests {
{"PIC and non-PIC test 1 (relocatable)" "-r -melf32btsmip"
{"PIC and non-PIC test 1 (relocatable)" "-r -melf32btsmip" ""
"-32 -EB -mips2" {pic-and-nonpic-1a.s pic-and-nonpic-1b.s}
{{objdump -dr pic-and-nonpic-1-rel.dd}
{readelf --symbols pic-and-nonpic-1-rel.nd}}
"pic-and-nonpic-1-rel.o"}
{"PIC and non-PIC test 1 (static 1)"
"-melf32btsmip -Tpic-and-nonpic-1.ld"
"-melf32btsmip -Tpic-and-nonpic-1.ld" ""
"-32 -EB -mips2" {pic-and-nonpic-1a.s pic-and-nonpic-1b.s}
{{objdump -dr pic-and-nonpic-1.dd}
{readelf --symbols pic-and-nonpic-1.nd}}
"pic-and-nonpic-1-static1.o"}
{"PIC and non-PIC test 1 (static 2)"
"-melf32btsmip -Tpic-and-nonpic-1.ld tmpdir/pic-and-nonpic-1-rel.o"
"-melf32btsmip -Tpic-and-nonpic-1.ld tmpdir/pic-and-nonpic-1-rel.o" ""
"" {}
{{objdump -dr pic-and-nonpic-1.dd}
{readelf --symbols pic-and-nonpic-1.nd}}
@ -253,14 +253,14 @@ if { $linux_gnu } {
run_dump_test "pic-and-nonpic-2"
run_ld_link_tests {
{"PIC and non-PIC test 3 (shared library)"
"-melf32btsmip -shared -Tpic-and-nonpic-3a.ld"
"-melf32btsmip -shared -Tpic-and-nonpic-3a.ld" ""
"-32 -EB -mips2" {pic-and-nonpic-3a.s}
{{readelf --segments pic-and-nonpic-3a.sd}
{readelf -A pic-and-nonpic-3a.gd}
{objdump -dr pic-and-nonpic-3a.dd}}
"pic-and-nonpic-3a.so"}
{"PIC and non-PIC test 3 (executable)"
"-melf32btsmip -Tpic-and-nonpic-3b.ld tmpdir/pic-and-nonpic-3a.so"
"-melf32btsmip -Tpic-and-nonpic-3b.ld tmpdir/pic-and-nonpic-3a.so" ""
"-32 -EB -mips2" {pic-and-nonpic-3b.s}
{{readelf --segments pic-and-nonpic-3b.sd}
{objdump -dr pic-and-nonpic-3b.dd}
@ -274,12 +274,12 @@ if { $linux_gnu } {
run_dump_test "pic-and-nonpic-3-error"
run_ld_link_tests {
{"PIC and non-PIC test 4 (shared library)"
"-melf32btsmip -shared -Tpic-and-nonpic-3a.ld"
"-melf32btsmip -shared -Tpic-and-nonpic-3a.ld" ""
"-32 -EB -mips2" {pic-and-nonpic-4a.s}
{}
"pic-and-nonpic-4a.so"}
{"PIC and non-PIC test 4 (executable)"
"-melf32btsmip -Tpic-and-nonpic-4b.ld tmpdir/pic-and-nonpic-4a.so"
"-melf32btsmip -Tpic-and-nonpic-4b.ld tmpdir/pic-and-nonpic-4a.so" ""
"-32 -EB -mips2" {pic-and-nonpic-4b.s}
{{readelf --segments pic-and-nonpic-4b.sd}
{objdump -dr pic-and-nonpic-4b.dd}
@ -292,7 +292,7 @@ if { $linux_gnu } {
run_dump_test "pic-and-nonpic-4-error"
run_ld_link_tests {
{"PIC and non-PIC test 5 (executable)"
"-melf32btsmip -Tpic-and-nonpic-5b.ld tmpdir/pic-and-nonpic-3a.so tmpdir/pic-and-nonpic-4a.so"
"-melf32btsmip -Tpic-and-nonpic-5b.ld tmpdir/pic-and-nonpic-3a.so tmpdir/pic-and-nonpic-4a.so" ""
"-32 -EB -mips2" {pic-and-nonpic-5a.s pic-and-nonpic-5b.s}
{{readelf --segments pic-and-nonpic-5b.sd}
{objdump -dr pic-and-nonpic-5b.dd}
@ -311,12 +311,12 @@ if { $linux_gnu } {
foreach { abi flag emul } $abis {
run_ld_link_tests [list \
[list "PIC and non-PIC test 6 ($abi shared library)" \
"-m$emul -shared -Tpic-and-nonpic-3a.ld" \
"-m$emul -shared -Tpic-and-nonpic-3a.ld" "" \
"$flag -EB -mips3" \
[list "pic-and-nonpic-6-${abi}a.s"] {} \
"pic-and-nonpic-6-${abi}.so"] \
[list "PIC and non-PIC test 6 ($abi executable)" \
"-m$emul -Tpic-and-nonpic-6.ld tmpdir/pic-and-nonpic-6-${abi}.so" \
"-m$emul -Tpic-and-nonpic-6.ld tmpdir/pic-and-nonpic-6-${abi}.so" "" \
"$flag -EB -mips3" \
[list "pic-and-nonpic-6-${abi}b.s" \
"pic-and-nonpic-6-${abi}c.s"] \
@ -341,7 +341,7 @@ if { $linux_gnu } {
run_ld_link_tests [list \
[list \
"_gp scope test ($abi shared library)" \
"$abi_ldflags($abi) -shared" \
"$abi_ldflags($abi) -shared" "" \
"$abi_asflags($abi) -KPIC" \
{ gp-hidden-lib.s } \
[list \
@ -350,7 +350,7 @@ if { $linux_gnu } {
"gp-hidden-lib-${abi}.so"] \
[list \
"_gp scope test ($abi versioned library)" \
"$abi_ldflags($abi) -shared -version-script gp-hidden-ver.ver tmpdir/gp-hidden-lib-${abi}.so" \
"$abi_ldflags($abi) -shared -version-script gp-hidden-ver.ver tmpdir/gp-hidden-lib-${abi}.so" "" \
"$abi_asflags($abi) -KPIC" \
{ gp-hidden-ver.s } \
[list \
@ -359,7 +359,7 @@ if { $linux_gnu } {
"gp-hidden-ver-${abi}.so"] \
[list \
"_gp scope test ($abi executable)" \
"$abi_ldflags($abi) -e 0 -rpath-link . tmpdir/gp-hidden-ver-${abi}.so" \
"$abi_ldflags($abi) -e 0 -rpath-link . tmpdir/gp-hidden-ver-${abi}.so" "" \
"$abi_asflags($abi) -call_nonpic" \
{ gp-hidden.s } \
[list \
@ -394,14 +394,14 @@ if { $has_newabi } {
run_ld_link_tests [list \
[list \
"reloc test 6a" \
"-shared $abi_ldflags(n32)" \
"-shared $abi_ldflags(n32)" "" \
"$abi_asflags(n32)" \
"reloc-6a.s" \
{} \
"reloc-6a.so"] \
[list \
"reloc test 6b" \
"$abi_ldflags(n32) tmpdir/reloc-6a.so" \
"$abi_ldflags(n32) tmpdir/reloc-6a.so" "" \
"$abi_asflags(n32)" \
"reloc-6b.s" \
{} \
@ -421,7 +421,7 @@ if {$embedded_elf} {
if {$linux_gnu} {
set eh_frame5_test {
{"MIPS eh-frame 5"
"-melf32btsmip -shared -Teh-frame5.ld"
"-melf32btsmip -shared -Teh-frame5.ld" ""
"-32 -EB"
{eh-frame5.s}
{{readelf {--relocs -wf} eh-frame5.d}}
@ -455,12 +455,12 @@ if { $linux_gnu } {
run_dump_test "got-page-3"
run_ld_link_tests [subst {
{"GOT page 4 (one file)" "-shared $abi_ldflags(o32) -T got-page-1.ld"
"$abi_asflags(o32) -mips2" {got-page-4b.s}
"" "$abi_asflags(o32) -mips2" {got-page-4b.s}
{{objdump -dr got-page-4a.d}
{readelf -A got-page-4a.got}}
"got-page-4a.so"}
{"GOT page 4 (two files)" "-shared $abi_ldflags(o32) -T got-page-1.ld"
"$abi_asflags(o32) -mips2" {got-page-4a.s got-page-4b.s}
"" "$abi_asflags(o32) -mips2" {got-page-4a.s got-page-4b.s}
{{objdump -dr got-page-4b.d}
{readelf -A got-page-4b.got}}
"got-page-4b.so"}
@ -468,24 +468,24 @@ if { $linux_gnu } {
if $has_newabi {
run_ld_link_tests [subst {
{"GOT page 5" "-shared $abi_ldflags(n32) -T got-page-1.ld"
"$abi_asflags(n32)" {got-page-5.s}
"" "$abi_asflags(n32)" {got-page-5.s}
{{objdump -dr got-page-5.d}
{readelf -A got-page-5.got}}
"got-page-5.so"}
{"GOT page 6" "-shared $abi_ldflags(n32) -T got-page-1.ld"
"$abi_asflags(n32)" {got-page-6.s}
"" "$abi_asflags(n32)" {got-page-6.s}
{{objdump -dr got-page-6.d}
{readelf -A got-page-6.got}}
"got-page-6.so"}
{"GOT page 7 (order 1)" "-shared $abi_ldflags(n32) -T got-page-1.ld"
"$abi_asflags(n32)"
"" "$abi_asflags(n32)"
{got-page-7a.s got-page-7b.s got-page-7c.s got-page-7d.s
got-page-7e.s}
{{objdump -dr got-page-7.d}
{readelf -A got-page-7.got}}
"got-page-7a.so"}
{"GOT page 7 (order 2)" "-shared $abi_ldflags(n32) -T got-page-1.ld"
"$abi_asflags(n32)"
"" "$abi_asflags(n32)"
{got-page-7e.s got-page-7a.s got-page-7b.s got-page-7c.s
got-page-7d.s}
{{objdump -dr got-page-7.d}
@ -520,7 +520,7 @@ if {[istarget mips*-*-linux*]} {
run_ld_link_tests \
[list [list \
"Stub for dynsym 0x$dynsym" \
"-shared -melf32btsmip -T stub-dynsym-1.ld" \
"-shared -melf32btsmip -T stub-dynsym-1.ld" "" \
[concat \
"-EB -march=mips1 -32 -KPIC" \
"--defsym base_syms=$base_syms" \
@ -536,8 +536,8 @@ if {[istarget mips*-*-linux*]} {
# For tests which may involve multiple files, use run_ld_link_tests.
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -545,64 +545,64 @@ if {[istarget mips*-*-linux*]} {
# readelf: Apply readelf options on result. Compare with regex (last arg).
set mips_tls_tests {
{"Static executable with TLS" "-static -melf32btsmip -T mips-dyn.ld"
{"Static executable with TLS" "-static -melf32btsmip -T mips-dyn.ld" ""
"-EB -march=mips1 -32 -KPIC" {tlsbin-o32.s}
{{objdump {-dr -m mips:isa32r2} tlsbin-o32.d} {objdump -srj.got tlsbin-o32.got}}
"tls-static-o32"}
{"Shared library with TLS" "-shared -melf32btsmip -T mips-lib.ld"
{"Shared library with TLS" "-shared -melf32btsmip -T mips-lib.ld" ""
"-EB -march=mips1 -32 -KPIC" {tlslib-o32.s}
{{objdump {-dr -m mips:isa32r2} tlslib-o32.d} {objdump -Rsj.got tlslib-o32.got}}
"tlslib-o32.so"}
{"Dynamic executable with TLS"
"-melf32btsmip -T mips-dyn.ld tmpdir/tlslib-o32.so"
"-melf32btsmip -T mips-dyn.ld tmpdir/tlslib-o32.so" ""
"-EB -march=mips1 -32 -KPIC" {tlsdyn-o32.s}
{{objdump {-dr -m mips:isa32r2} tlsdyn-o32.d} {objdump -Rsj.got tlsdyn-o32.got}}
"tls-dynamic-o32"}
{"Shared library with multiple GOTs and TLS"
"-shared -melf32btsmip -T mips-lib.ld"
"-shared -melf32btsmip -T mips-lib.ld" ""
"-EB -march=mips1 -32 -KPIC" {tls-multi-got-1-1.s tls-multi-got-1-2.s}
{{readelf {-d -r} tls-multi-got-1.r}
{objdump {-dr -m mips:isa32r2} tls-multi-got-1.d}
{objdump -Rsj.got tls-multi-got-1.got}}
"tlslib-multi.so"}
{"Shared library with TLS and versioning"
"-shared -melf32btsmip -T mips-lib.ld --version-script tlslib.ver"
"-shared -melf32btsmip -T mips-lib.ld --version-script tlslib.ver" ""
"-EB -march=mips1 -32 -KPIC" {tlslib-o32.s}
{{objdump {-dr -m mips:isa32r2} tlslib-o32.d} {objdump -Rsj.got tlslib-o32-ver.got}}
"tlslib-o32-ver.so"}
{"Dynamic executable with TLS and versioning"
"-melf32btsmip -T mips-dyn.ld tmpdir/tlslib-o32-ver.so"
"-melf32btsmip -T mips-dyn.ld tmpdir/tlslib-o32-ver.so" ""
"-EB -march=mips1 -32 -KPIC" {tlsdyn-o32.s tlsdyn-o32-2.s}
{{objdump {-dr -m mips:isa32r2} tlsdyn-o32-1.d} {objdump -Rsj.got tlsdyn-o32-1.got}}
"tls-dynamic-o32-ver"}
{"Dynamic executable with TLS and versioning (order 2)"
"-melf32btsmip -T mips-dyn.ld tmpdir/tlsdyn-o32.o tmpdir/tlslib-o32-ver.so tmpdir/tlsdyn-o32-2.o"
"-melf32btsmip -T mips-dyn.ld tmpdir/tlsdyn-o32.o tmpdir/tlslib-o32-ver.so tmpdir/tlsdyn-o32-2.o" ""
"-EB -march=mips1 -32 -KPIC" {}
{{objdump {-dr -m mips:isa32r2} tlsdyn-o32-2.d} {objdump -Rsj.got tlsdyn-o32-2.got}}
"tls-dynamic-o32-ver-2"}
{"Dynamic executable with TLS and versioning (order 3)"
"-melf32btsmip -T mips-dyn.ld tmpdir/tlsdyn-o32-2.o tmpdir/tlslib-o32-ver.so tmpdir/tlsdyn-o32.o"
"-melf32btsmip -T mips-dyn.ld tmpdir/tlsdyn-o32-2.o tmpdir/tlslib-o32-ver.so tmpdir/tlsdyn-o32.o" ""
"-EB -march=mips1 -32 -KPIC" {}
{{objdump {-dr -m mips:isa32r2} tlsdyn-o32-3.d} {objdump -Rsj.got tlsdyn-o32-3.got}}
"tls-dynamic-o32-ver-3"}
{"Shared library with TLS and hidden symbols"
"-shared -melf32btsmip -T mips-lib.ld --version-script tlslib-hidden.ver"
"-shared -melf32btsmip -T mips-lib.ld --version-script tlslib-hidden.ver" ""
"-EB -march=mips1 -32 -KPIC" {tlslib-o32.s}
{{objdump {-dr -m mips:isa32r2} tlslib-o32.d} {objdump -Rsj.got tlslib-o32-hidden.got}}
"tlslib-o32-hidden.so"}
{"Shared library with TLS and hidden symbols (2)"
"-shared -melf32btsmip -T mips-lib.ld"
"-shared -melf32btsmip -T mips-lib.ld" ""
"-EB -march=mips1 -32 -KPIC" {tls-hidden2a.s tls-hidden2b.s}
{{objdump -drj.text tls-hidden2.d} {objdump -sj.got tls-hidden2-got.d}}
"tls-hidden2.so"}
{"Shared library with TLS and hidden symbols (3)"
"-shared -melf32btsmip -T tls-hidden3.ld"
"-shared -melf32btsmip -T tls-hidden3.ld" ""
"-EB -march=mips2 -32 -KPIC" {tls-hidden3a.s tls-hidden3b.s}
{{objdump -dj.text tls-hidden3.d} {objdump -sj.got tls-hidden3.got}
{readelf --relocs tls-hidden3.r}}
"tls-hidden3.so"}
{"Shared library with TLS and hidden symbols (4)"
"-shared -melf32btsmip -T tls-hidden3.ld"
"-shared -melf32btsmip -T tls-hidden3.ld" ""
"-EB -march=mips2 -32 -KPIC" {tls-hidden4a.s tls-hidden4b.s}
{{objdump -sj.got tls-hidden4.got} {readelf --relocs tls-hidden4.r}}
"tls-hidden4.so"}
@ -614,7 +614,7 @@ if {[istarget mips*-*-linux*]} {
set mips16_call_global_test [list \
[list "Global calls from mips16" \
"$abi_ldflags(o32) -T no-shared-1.ld" \
"$abi_ldflags(o32) -T no-shared-1.ld" "" \
"$abi_asflags(o32) -mips32r2" \
{mips16-call-global-1.s mips16-call-global-2.s mips16-call-global-3.s} \
{{objdump -dr mips16-call-global.d}} \
@ -624,7 +624,7 @@ run_ld_link_tests $mips16_call_global_test
set mips16_intermix_test [list \
[list "Intermixing mips32 and mips16 functions" \
"$abi_ldflags(o32)" \
"$abi_ldflags(o32)" "" \
"$abi_asflags(o32) -mips32r2" \
{mips16-intermix-1.s mips16-intermix-2.s} \
{{objdump -t mips16-intermix.d}} \
@ -669,7 +669,7 @@ run_dump_test "attr-gnu-4-51"
if { $linux_gnu } {
run_ld_link_tests {
{"GOT and versioning 1"
"-shared -melf32btsmip --version-script got-vers-1.ver"
"-shared -melf32btsmip --version-script got-vers-1.ver" ""
"-EB -mips2 -32" {got-vers-1a.s got-vers-1b.s}
{{readelf -d got-vers-1.dd}
{readelf --symbols got-vers-1.sd}
@ -701,7 +701,7 @@ foreach { abi } $abis {
run_ld_link_tests [list \
[list \
"MIPS export class call relocation test ($abi)" \
"$abi_ldflags($abi) -shared -Ttext $loadaddr -T export-class-call16.ld" \
"$abi_ldflags($abi) -shared -Ttext $loadaddr -T export-class-call16.ld" "" \
"$abi_asflags($abi) -mips3 -KPIC" \
[list export-class-call16-${abi}.s export-class-call16-def.s] \
[list \

View File

@ -25,7 +25,7 @@ if {!([istarget "am3*-*-*"]) && !([istarget "mn10300*-*-*"]) } {
set mn10300_tests {
{
"am33 string merging"
"-relax -Ttext 0x8000074"
"-relax -Ttext 0x8000074" ""
""
{ "i36434.s" "i36434-2.s" }
{ {objdump -dz i36434.d} }
@ -33,7 +33,7 @@ set mn10300_tests {
}
{
"difference of two same-section symbols"
"-Ttext 0"
"-Ttext 0" ""
""
{ "i112045-1.s" }
{ {objdump -d i112045-1.d} }
@ -41,7 +41,7 @@ set mn10300_tests {
}
{
"difference of two same-section symbols where the difference is held in another section"
"-relax -Ttext 100"
"-relax -Ttext 100" ""
""
{ "i112045-3.s" }
{ {objdump -D i112045-3.d} }
@ -49,7 +49,7 @@ set mn10300_tests {
}
{
"relaxation and alignment directives"
"-relax -Ttext 100 -Tbss 300"
"-relax -Ttext 100 -Tbss 300" ""
""
{ "i127740.s" }
{ {objdump -d i127740.d} }
@ -57,7 +57,7 @@ set mn10300_tests {
}
{
"adjustment of symbols due to relaxation"
"-Tdata 1f -Ttext 0 -relax"
"-Tdata 1f -Ttext 0 -relax" ""
""
{ "i135409-1.s" }
{ {readelf --syms i135409-1.d} }
@ -65,7 +65,7 @@ set mn10300_tests {
}
{
"adjustment of symbols due to relaxation (with alignment directives)"
"-Tdata 1f -Ttext 0 -relax"
"-Tdata 1f -Ttext 0 -relax" ""
""
{ "i135409-2.s" }
{ {readelf --syms i135409-2.d} }
@ -73,7 +73,7 @@ set mn10300_tests {
}
{
"adjustment of symbols due to relaxation (with a symbol in the deleted region)"
"-Tdata 1f -Ttext 0 -relax"
"-Tdata 1f -Ttext 0 -relax" ""
""
{ "i135409-3.s" }
{ {objdump -d i135409-3.d} }
@ -81,7 +81,7 @@ set mn10300_tests {
}
{
"adjusting a 16-bit forward branch"
"-Ti135409-4.t -relax"
"-Ti135409-4.t -relax" ""
""
{ "i135409-4.s" }
{ {objdump -d i135409-4.d} }
@ -89,7 +89,7 @@ set mn10300_tests {
}
{
"adjusting a 16-bit backward branch"
"-Ti135409-5.t -relax"
"-Ti135409-5.t -relax" ""
""
{ "i135409-5.s" }
{ {objdump -d i135409-5.d} }
@ -97,7 +97,7 @@ set mn10300_tests {
}
{
"relaxing offsets into a merged string section"
"-Ti143317.t -shared -relax"
"-Ti143317.t -shared -relax" ""
""
{ "i143317.s" }
{ {objdump -d i143317.d} }
@ -114,7 +114,7 @@ if {!([istarget "am3*-*-*"])} {
set am33_tests {
{
"difference of two same-section symbols (in a shared library)"
"-shared"
"-shared" ""
""
{ "i112045-2.s" }
{ {objdump -R i112045-2.d} }

View File

@ -130,13 +130,13 @@ if {[istarget i*86-*-cygwin*]
}
set align_tests {
{"aligned common 1" "" "" {aligncomm-1.c}
{"aligned common 1" "" "" "" {aligncomm-1.c}
{{nm -C aligncomm.d}} "aligncomm-1.x"}
{"aligned common 2" "" "" {aligncomm-2.c}
{"aligned common 2" "" "" "" {aligncomm-2.c}
{{nm -C aligncomm.d}} "aligncomm-2.x"}
{"aligned common 3" "" "" {aligncomm-3.c}
{"aligned common 3" "" "" "" {aligncomm-3.c}
{{nm -C aligncomm.d}} "aligncomm-3.x"}
{"aligned common 4" "" "" {aligncomm-4.c}
{"aligned common 4" "" "" "" {aligncomm-4.c}
{{nm -C aligncomm.d}} "aligncomm-4.x"}
}

View File

@ -34,29 +34,29 @@ if {[istarget i*86-*-cygwin*]
if {[istarget x86_64-*-mingw*] } {
set pe_tests {
{".secrel32" "" "" {secrel1.s secrel2.s}
{".secrel32" "" "" "" {secrel1.s secrel2.s}
{{objdump -s secrel_64.d}} "secrel.x"}
{"Empty export table" "" "" "exports.s"
{"Empty export table" "" "" "" "exports.s"
{{objdump -p exports64.d}} "exports.dll"}
{"TLS directory entry" "" "" "tlssec.s"
{"TLS directory entry" "" "" "" "tlssec.s"
{{objdump -p tlssec64.d}} "tlssec.dll"}
}
} elseif {[istarget i*86-*-cygwin*] } {
set pe_tests {
{".secrel32" "--disable-auto-import" "" {secrel1.s secrel2.s}
{".secrel32" "--disable-auto-import" "" "" {secrel1.s secrel2.s}
{{objdump -s secrel.d}} "secrel.x"}
{"Empty export table" "" "" "exports.s"
{"Empty export table" "" "" "" "exports.s"
{{objdump -p exports.d}} "exports.dll"}
{"TLS directory entry" "" "" "tlssec.s"
{"TLS directory entry" "" "" "" "tlssec.s"
{{objdump -p tlssec32.d}} "tlssec.dll"}
}
} else {
set pe_tests {
{".secrel32" "" "" {secrel1.s secrel2.s}
{".secrel32" "" "" "" {secrel1.s secrel2.s}
{{objdump -s secrel.d}} "secrel.x"}
{"Empty export table" "" "" "exports.s"
{"Empty export table" "" "" "" "exports.s"
{{objdump -p exports.d}} "exports.dll"}
{"TLS directory entry" "" "" "tlssec.s"
{"TLS directory entry" "" "" "" "tlssec.s"
{{objdump -p tlssec32.d}} "tlssec.dll"}
}
}
@ -84,7 +84,7 @@ if {[istarget x86_64-*-mingw*] } {
}
set foreign_sym_test {
{"non-C aligned common" "" "" {non-c-lang-syms.s}
{"non-C aligned common" "" "" "" {non-c-lang-syms.s}
{{nm -C non-c-lang-syms.d}} "non-c-lang-syms.x"}
}

View File

@ -95,37 +95,37 @@ set libs "[ld_simple_link_defsyms] --defsym ${_}printf=${_}main --defsym ${_}put
set plugin_tests [list \
[list "load plugin" "-plugin $plugin_path \
$testobjfiles $libs" "" "" {{ld plugin-1.d}} "main.x" ] \
$testobjfiles $libs" "" "" "" {{ld plugin-1.d}} "main.x" ] \
[list "fail plugin onload" "-plugin $plugin_path -plugin-opt failonload \
$testobjfiles $libs" "" "" {{ld plugin-2.d}} "main.x" ] \
$testobjfiles $libs" "" "" "" {{ld plugin-2.d}} "main.x" ] \
[list "fail plugin allsymbolsread" "-plugin $plugin_path $regas \
-plugin-opt failallsymbolsread \
$testobjfiles $libs" "" "" {{ld plugin-3.d}} "main.x" ] \
$testobjfiles $libs" "" "" "" {{ld plugin-3.d}} "main.x" ] \
[list "fail plugin cleanup" "-plugin $plugin_path -plugin-opt failcleanup \
$regcln \
$testobjfiles $libs" "" "" {{ld plugin-4.d}} "main.x" ] \
$testobjfiles $libs" "" "" "" {{ld plugin-4.d}} "main.x" ] \
[list "plugin all hooks" "-plugin $plugin_path $regclm $regas $regcln \
$testobjfiles $libs" "" "" {{ld plugin-5.d}} "main.x" ] \
$testobjfiles $libs" "" "" "" {{ld plugin-5.d}} "main.x" ] \
[list "plugin claimfile lost symbol" "-plugin $plugin_path $regclm \
$regas $regcln -plugin-opt claim:tmpdir/func.o \
$testobjfiles $libs" "" "" {{ld plugin-6.d}} "main.x" ] \
$testobjfiles $libs" "" "" "" {{ld plugin-6.d}} "main.x" ] \
[list "plugin claimfile replace symbol" "-plugin $plugin_path $regclm \
$regas $regcln -plugin-opt claim:tmpdir/func.o \
-plugin-opt sym:${_}func::0:0:0 \
$testobjfiles $libs" "" "" {{ld plugin-7.d}} "main.x" ] \
$testobjfiles $libs" "" "" "" {{ld plugin-7.d}} "main.x" ] \
[list "plugin claimfile resolve symbol" "-plugin $plugin_path $regclm \
$regas $regcln -plugin-opt claim:tmpdir/func.o \
-plugin-opt sym:${_}func::0:0:0 \
-plugin-opt sym:${_}func2::0:0:0 \
-plugin-opt dumpresolutions \
$testobjfiles $libs" "" "" {{ld plugin-8.d}} "main.x" ] \
$testobjfiles $libs" "" "" "" {{ld plugin-8.d}} "main.x" ] \
[list "plugin claimfile replace file" "-plugin $plugin_path $regclm \
$regas $regcln -plugin-opt claim:tmpdir/func.o \
-plugin-opt sym:${_}func::0:0:0 \
-plugin-opt sym:${_}func2::0:0:0 \
-plugin-opt dumpresolutions \
-plugin-opt add:tmpdir/func.o \
$testobjfiles $libs" "" "" {{ld plugin-9.d}} "main.x" ] \
$testobjfiles $libs" "" "" "" {{ld plugin-9.d}} "main.x" ] \
]
set plugin_lib_tests [list \
@ -135,7 +135,7 @@ set plugin_lib_tests [list \
-plugin-opt sym:${_}func2::0:0:0 \
-plugin-opt dumpresolutions \
-plugin-opt add:tmpdir/func.o \
$testobjfiles_notext -Ltmpdir -ltext $libs" "" "" {{ld plugin-10.d}} "main.x" ] \
$testobjfiles_notext -Ltmpdir -ltext $libs" "" "" "" {{ld plugin-10.d}} "main.x" ] \
[list "plugin claimfile replace lib" "-plugin $plugin_path $regclm \
$regas $regcln -plugin-opt claim:tmpdir/func.o \
-plugin-opt sym:${_}func::0:0:0 \
@ -145,7 +145,7 @@ set plugin_lib_tests [list \
-plugin-opt claim:tmpdir/libtext.a \
-plugin-opt sym:${_}text::0:0:0 \
-plugin-opt add:tmpdir/text.o \
$testobjfiles_notext -Ltmpdir -ltext $libs" "" "" {{ld plugin-11.d}} "main.x" ] \
$testobjfiles_notext -Ltmpdir -ltext $libs" "" "" "" {{ld plugin-11.d}} "main.x" ] \
]
set plugin_extra_elf_tests [list \
@ -160,7 +160,7 @@ set plugin_extra_elf_tests [list \
-plugin-opt add:tmpdir/func1p.o \
-plugin-opt add:tmpdir/func2i.o \
-plugin-opt add:tmpdir/func3h.o \
$testobjfiles $libs --verbose=2" "" "" {{ld plugin-12.d} \
$testobjfiles $libs --verbose=2" "" "" "" {{ld plugin-12.d} \
{readelf -s plugin-vis-1.d}} "main.x" ] \
]

View File

@ -57,7 +57,7 @@ proc run_aix_test { size name ldopts asopts sources tools output } {
}
regsub -all {SIZE} $tools $size tools
run_ld_link_tests [list [list "$name ($size-bit)" \
$ldopts \
$ldopts "" \
"$asopts -a$size --defsym size=$size" \
$sources \
$tools \

View File

@ -53,7 +53,7 @@ proc powerpc_export_class_test { abi emul } {
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object)" \
"$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" \
"$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-lib.s } \
{} \
@ -67,7 +67,7 @@ proc powerpc_export_class_test { abi emul } {
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
"$LDFLAGS -r" \
"$LDFLAGS -r" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-ref.s } \
{} \
@ -84,7 +84,7 @@ proc powerpc_export_class_test { abi emul } {
run_ld_link_tests [list \
[list \
"$testname (final shared object)" \
"$LDFLAGS -shared -Tdata=0x12340000 tmpdir/powerpc-$abi-export-class-ref-r.o tmpdir/powerpc-$abi-export-class-lib.so" \
"$LDFLAGS -shared -Tdata=0x12340000 tmpdir/powerpc-$abi-export-class-ref-r.o tmpdir/powerpc-$abi-export-class-lib.so" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
[list \

View File

@ -26,37 +26,37 @@ if { ![istarget "powerpc*-*-*"] } {
if {[istarget "*-*-vxworks"]} {
set ppcvxtests {
{"VxWorks shared library test 1 (default script)" "-shared"
{"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"
{"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"
"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"
"-Tvxworks1.ld -q --force-dynamic" ""
"-mregnames" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
"-Tvxworks1.ld"
"-Tvxworks1.ld" ""
"-mregnames" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
{"VxWorks relax test"
"-Tvxworks1.ld --relax -q"
"-Tvxworks1.ld --relax -q" ""
"-mregnames" {vxworks-relax.s}
{{readelf --relocs vxworks-relax.rd}}
"vxworks-relax"}
{"VxWorks relocatable relax test"
"-Tvxworks1.ld -r --relax -q"
"-Tvxworks1.ld -r --relax -q" ""
"-mregnames" {vxworks-relax-2.s}
{{readelf --relocs vxworks-relax-2.rd}}
"vxworks-relax-2"}
@ -90,8 +90,8 @@ proc supports_ppc64 { } {
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -99,145 +99,145 @@ proc supports_ppc64 { } {
# readelf: Apply readelf options on result. Compare with regex (last arg).
set ppcelftests {
{"Reloc section order" "-melf32ppc -shared -z nocombreloc" "-a32" {reloc.s}
{"Reloc section order" "-melf32ppc -shared -z nocombreloc" "" "-a32" {reloc.s}
{{objdump -hw reloc.d}} "reloc.so"}
{"APUinfo section processing" "-melf32ppc"
{"APUinfo section processing" "-melf32ppc" ""
"-a32 -me500" {apuinfo1.s apuinfo-nul.s apuinfo2.s}
{{readelf -x2 apuinfo.rd}} "apuinfo"}
{"APUinfo NULL section processing" "-melf32ppc"
{"APUinfo NULL section processing" "-melf32ppc" ""
"-a32 -me500" {apuinfo-nul1.s apuinfo-nul.s}
{{readelf -x2 apuinfo-nul.rd}} "apuinfo"}
{"TLS32 static exec" "-melf32ppc" "-a32" {tls32.s tlslib32.s}
{"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" "" {}
{"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" "" {}
{} "libtlslib32.so"}
{"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info 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 --no-ld-generated-unwind-info 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"}
{"TLS32 markers" "-melf32ppc" "-a32" {tlsmark32.s tlslib32.s}
{"TLS32 markers" "-melf32ppc" "" "-a32" {tlsmark32.s tlslib32.s}
{{objdump -dr tlsmark32.d}}
"tlsmark32"}
{"TLS32 opt 1" "-melf32ppc" "-a32" {tlsopt1_32.s tlslib32.s}
{"TLS32 opt 1" "-melf32ppc" "" "-a32" {tlsopt1_32.s tlslib32.s}
{{objdump -dr tlsopt1_32.d}}
"tlsopt1_32"}
{"TLS32 opt 2" "-melf32ppc" "-a32" {tlsopt2_32.s tlslib32.s}
{"TLS32 opt 2" "-melf32ppc" "" "-a32" {tlsopt2_32.s tlslib32.s}
{{objdump -dr tlsopt2_32.d}}
"tlsopt2_32"}
{"TLS32 opt 3" "-melf32ppc" "-a32" {tlsopt3_32.s tlslib32.s}
{"TLS32 opt 3" "-melf32ppc" "" "-a32" {tlsopt3_32.s tlslib32.s}
{{objdump -dr tlsopt3_32.d}}
"tlsopt3_32"}
{"TLS32 opt 4" "-melf32ppc" "-a32" {tlsopt4_32.s tlslib32.s}
{"TLS32 opt 4" "-melf32ppc" "" "-a32" {tlsopt4_32.s tlslib32.s}
{{objdump -dr tlsopt4_32.d}}
"tlsopt4_32"}
{"Shared library with global symbol" "-shared -melf32ppc" "-a32" {sdalib.s}
{"Shared library with global symbol" "-shared -melf32ppc" "" "-a32" {sdalib.s}
{} "sdalib.so"}
{"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "-a32" {sdadyn.s}
{"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "" "-a32" {sdadyn.s}
{{objdump -R sdadyn.d}} "sdadyn"}
{"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "-a32" "relax.s"
{"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "" "-a32" "relax.s"
{{objdump -dr relax.d}}
"relax"}
{"relocatable relaxing" "-melf32ppc -r --relax" "-a32" "relax.s"
{"relocatable relaxing" "-melf32ppc -r --relax" "" "-a32" "relax.s"
{{objdump -dr relaxr.d}}
"relax"}
}
set ppc64elftests {
{"TLS static exec" "-melf64ppc" "-a64" {tls.s tlslib.s}
{"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" "" {}
{"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" "" {}
{} "libtlslib.so"}
{"TLS helper old shared lib" "-shared -melf64ppc" "-a64" {oldtlslib.s}
{"TLS helper old shared lib" "-shared -melf64ppc" "" "-a64" {oldtlslib.s}
{} "liboldlib.so"}
{"TLS dynamic exec" "-melf64ppc --no-ld-generated-unwind-info 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 --no-ld-generated-unwind-info 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 --no-ld-generated-unwind-info 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"}
{"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "-a64" {tlstoc.s}
{"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 --no-ld-generated-unwind-info 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 --no-ld-generated-unwind-info 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 --no-ld-generated-unwind-info 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"}
{"TLS markers" "-melf64ppc" "-a64" {tlsmark.s tlslib.s}
{"TLS markers" "-melf64ppc" "" "-a64" {tlsmark.s tlslib.s}
{{objdump -dr tlsmark.d}}
"tlsmark"}
{"TLS opt 1" "-melf64ppc" "-a64" {tlsopt1.s tlslib.s}
{"TLS opt 1" "-melf64ppc" "" "-a64" {tlsopt1.s tlslib.s}
{{objdump -dr tlsopt1.d}}
"tlsopt1"}
{"TLS opt 2" "-melf64ppc" "-a64" {tlsopt2.s tlslib.s}
{"TLS opt 2" "-melf64ppc" "" "-a64" {tlsopt2.s tlslib.s}
{{objdump -dr tlsopt2.d}}
"tlsopt2"}
{"TLS opt 3" "-melf64ppc" "-a64" {tlsopt3.s tlslib.s}
{"TLS opt 3" "-melf64ppc" "" "-a64" {tlsopt3.s tlslib.s}
{{objdump -dr tlsopt3.d}}
"tlsopt3"}
{"TLS opt 4" "-melf64ppc" "-a64" {tlsopt4.s tlslib.s}
{"TLS opt 4" "-melf64ppc" "" "-a64" {tlsopt4.s tlslib.s}
{{objdump -dr tlsopt4.d}}
"tlsopt4"}
{"sym@tocbase" "-shared -melf64ppc" "-a64" {symtocbase-1.s symtocbase-2.s}
{"sym@tocbase" "-shared -melf64ppc" "" "-a64" {symtocbase-1.s symtocbase-2.s}
{{objdump -dj.data symtocbase.d}} "symtocbase.so"}
{"TOC opt" "-melf64ppc" "-a64" {tocopt.s}
{"TOC opt" "-melf64ppc" "" "-a64" {tocopt.s}
{{ld tocopt.out} {objdump -s tocopt.d}} "tocopt"}
{"TOC opt2" "-melf64ppc --defsym x=2" "-a64" {tocopt2.s}
{"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}
{"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"
{"TOC opt4" "-melf64ppc -no-keep-memory --defsym x=2" "" "-a64"
{tocopt4a.s tocopt4b.s} {{objdump -s tocopt4.d}} "tocopt4"}
{"TOC opt5" "-melf64ppc" "-a64" {tocopt5.s}
{"TOC opt5" "-melf64ppc" "" "-a64" {tocopt5.s}
{{objdump -s tocopt5.d}} "tocopt5"}
}
set ppceabitests {
{"VLE multiple segments 1" "-T vle-multiseg-1.ld"
{"VLE multiple segments 1" "-T vle-multiseg-1.ld" ""
"-mregnames -mvle" {vle-multiseg.s}
{{readelf "-l" vle-multiseg-1.d}} "vle-multiseg-1"}
{"VLE multiple segments 2" "-T vle-multiseg-2.ld"
{"VLE multiple segments 2" "-T vle-multiseg-2.ld" ""
"-mregnames -mvle" {vle-multiseg.s}
{{readelf "-l" vle-multiseg-2.d}} "vle-multiseg-2"}
{"VLE multiple segments 3" "-T vle-multiseg-3.ld"
{"VLE multiple segments 3" "-T vle-multiseg-3.ld" ""
"-mregnames -mvle" {vle-multiseg.s}
{{readelf "-l" vle-multiseg-3.d}} "vle-multiseg-3"}
{"VLE multiple segments 4" "-T vle-multiseg-4.ld"
{"VLE multiple segments 4" "-T vle-multiseg-4.ld" ""
"-mregnames -mvle" {vle-multiseg.s}
{{readelf "-l" vle-multiseg-4.d}} "vle-multiseg-4"}
{"VLE multiple segments 5" "-T vle-multiseg-5.ld"
{"VLE multiple segments 5" "-T vle-multiseg-5.ld" ""
"-mregnames -mvle" {vle-multiseg.s}
{{readelf "-l" vle-multiseg-5.d}} "vle-multiseg-5"}
{"VLE relocations 1" "-T vle.ld"
{"VLE relocations 1" "-T vle.ld" ""
"-mvle" {vle-reloc-1.s vle-reloc-def-1.s}
{{objdump "-Mvle -d" vle-reloc-1.d}} "vle-reloc-1"}
{"VLE relocations 2" "-T vle.ld"
{"VLE relocations 2" "-T vle.ld" ""
"-mvle" {vle-reloc-2.s vle-reloc-def-2.s}
{{objdump "-Mvle -d" vle-reloc-2.d}} "vle-reloc-2"}
{"VLE relocations 3" "-T vle.ld"
{"VLE relocations 3" "-T vle.ld" ""
"-mvle" {vle-reloc-3.s vle-reloc-def-3.s}
{{objdump "-Mvle -d" vle-reloc-3.d}} "vle-reloc-3"}
}

View File

@ -27,8 +27,8 @@ if { !([istarget "s390-*-*"] || [istarget "s390x-*-*"]) } {
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -36,30 +36,30 @@ if { !([istarget "s390-*-*"] || [istarget "s390x-*-*"]) } {
# readelf: Apply readelf options on result. Compare with regex (last arg).
set s390tests {
{"TLS -fpic -shared transitions" "-shared -melf_s390"
{"TLS -fpic -shared transitions" "-shared -melf_s390" ""
"-m31" {tlspic1.s tlspic2.s}
{{readelf -Ssrl tlspic.rd} {objdump -dzrj.text tlspic.dd}
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
"libtlspic.so"}
{"Helper shared library" "-shared -melf_s390"
{"Helper shared library" "-shared -melf_s390" ""
"-m31" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec transitions"
"-melf_s390 tmpdir/libtlslib.so" "-m31" {tlsbinpic.s tlsbin.s}
"-melf_s390 tmpdir/libtlslib.so" "" "-m31" {tlsbinpic.s tlsbin.s}
{{readelf -Ssrl tlsbin.rd} {objdump -dzrj.text tlsbin.dd}
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
"tlsbin"}
}
set s390xtests {
{"TLS -fpic -shared transitions" "-shared -melf64_s390"
{"TLS -fpic -shared transitions" "-shared -melf64_s390" ""
"-m64 -Aesame" {tlspic1_64.s tlspic2_64.s}
{{readelf -WSsrl tlspic_64.rd} {objdump -dzrj.text tlspic_64.dd}
{objdump -sj.got tlspic_64.sd} {objdump -sj.tdata tlspic_64.td}}
"libtlspic_64.so"}
{"Helper shared library" "-shared -melf64_s390"
{"Helper shared library" "-shared -melf64_s390" ""
"-m64 -Aesame" {tlslib_64.s} {} "libtlslib_64.so"}
{"TLS -fpic and -fno-pic exec transitions"
"-melf64_s390 tmpdir/libtlslib_64.so" "-m64 -Aesame"
"-melf64_s390 tmpdir/libtlslib_64.so" "" "-m64 -Aesame"
{tlsbinpic_64.s tlsbin_64.s}
{{readelf -WSsrl tlsbin_64.rd} {objdump -dzrj.text tlsbin_64.dd}
{objdump -sj.got tlsbin_64.sd} {objdump -sj.tdata tlsbin_64.td}}

View File

@ -26,33 +26,33 @@ set endians { "--big" "-EB" "" "--little" "-EL" "-le" }
foreach { gas_option ld_option suffix } $endians {
set vxworkstests {
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld $ld_option"
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld $ld_option" ""
"$gas_option" {vxworks1-lib.s}
{{readelf --relocs vxworks1-lib.rd}
{objdump -dr vxworks1-lib$suffix.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 $ld_option"
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic $ld_option" ""
"$gas_option" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1$suffix.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
"-Tvxworks1.ld -q --force-dynamic $ld_option"
"-Tvxworks1.ld -q --force-dynamic $ld_option" ""
"$gas_option" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
"-Tvxworks1.ld $ld_option"
"-Tvxworks1.ld $ld_option" ""
"$gas_option" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
{"VxWorks shared library test 3" "-shared -Tvxworks1.ld $ld_option"
{"VxWorks shared library test 3" "-shared -Tvxworks1.ld $ld_option" ""
"$gas_option" {vxworks3-lib.s}
{{objdump -dr vxworks3-lib$suffix.dd}}
"libvxworks3.so"}
{"VxWorks executable test 3 (dynamic)" \
"tmpdir/libvxworks3.so -Tvxworks1.ld -q --force-dynamic $ld_option"
"tmpdir/libvxworks3.so -Tvxworks1.ld -q --force-dynamic $ld_option" ""
"$gas_option" {vxworks3.s}
{{objdump -d vxworks3$suffix.dd}}
"vxworks3"}

View File

@ -35,8 +35,8 @@ if { [istarget sh64*-*-netbsd*] || [istarget sh5*-*-netbsd*] } then {
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -47,89 +47,89 @@ if { [istarget sh64*-*-netbsd*] || [istarget sh5*-*-netbsd*] } then {
# references, 64-bit ABI" as for 32-bit ABI and ELF so we re-use it.
set sh64tests {
{"SH64 linking, 64-bit ABI" "-mshelf64"
{"SH64 linking, 64-bit ABI" "-mshelf64" ""
"--abi=64" {sh64-1.s sh64-2.s}
{{objdump -sr abi64.sd} {objdump -x abi64.xd}} "abi64.bin" }
{"SH64 linking, 64-bit ABI, -no-expand" "-mshelf64"
{"SH64 linking, 64-bit ABI, -no-expand" "-mshelf64" ""
"--abi=64 -no-expand" {sh64-1.s sh64-2.s}
{{objdump -sr abixx-noexp.sd}} "abi64-noexp.bin" }
{"SH64 linking, 32-bit ABI" "-mshelf32"
{"SH64 linking, 32-bit ABI" "-mshelf32" ""
"--abi=32" {sh64-1.s sh64-2.s}
{{objdump -sr abi32.sd} {objdump -x abi32.xd}} "abi32.bin" }
{"SH64 linking, 32-bit ABI, -no-expand" "-mshelf32"
{"SH64 linking, 32-bit ABI, -no-expand" "-mshelf32" ""
"--abi=32 -no-expand" {sh64-1.s sh64-2.s}
{{objdump -sr abixx-noexp.sd}} "abi32-noexp.bin" }
{"SH64 linking, single multi-ISA object" "-mshelf32"
{"SH64 linking, single multi-ISA object" "-mshelf32" ""
"--abi=32" {shmix-1.s}
{{objdump -sr mix1.sd} {objdump -x mix1.xd}} "mix1.bin" }
{"SH64 linking, single multi-ISA object, -no-expand" "-mshelf32"
{"SH64 linking, single multi-ISA object, -no-expand" "-mshelf32" ""
"--abi=32 -no-expand" {shmix-1.s}
{{objdump -sr mix1-noexp.sd}} "mix1-noexp.bin" }
{"SH64 linking, two different-ISA objects" "-mshelf32"
{"SH64 linking, two different-ISA objects" "-mshelf32" ""
"--abi=32" {shmix-2.s shmix-3.s}
{{objdump -sr mix2.sd} {objdump -x mix2.xd}} "mix2.bin" }
{"SH64 linking, two different-ISA objects, -no-expand" "-mshelf32"
{"SH64 linking, two different-ISA objects, -no-expand" "-mshelf32" ""
"--abi=32 -no-expand" {shmix-2.s shmix-3.s}
{{objdump -sr mix2-noexp.sd}} "mix2-noexp.bin" }
{"SH64 linking, single SHcompact" "-mshelf32"
{"SH64 linking, single SHcompact" "-mshelf32" ""
"--isa=SHcompact" {shcmp-1.s}
{{objdump -sr cmpct1.sd} {objdump -x cmpct1.xd}} "cmpct1.bin" }
{"SH64 inter-file datalabel references, 64-bit ABI" "-mshelf64"
{"SH64 inter-file datalabel references, 64-bit ABI" "-mshelf64" ""
"--abi=64" {shdl-1.s shdl-2.s}
{{objdump -sr shdl64.sd} {objdump -x shdl64.xd}} "shdl64.bin" }
{"SH64 inter-file datalabel references, 32-bit ABI" "-mshelf32"
{"SH64 inter-file datalabel references, 32-bit ABI" "-mshelf32" ""
"--abi=32" {shdl-1.s shdl-2.s}
{{objdump -sr shdl64.sd} {objdump -x shdl32.xd}} "shdl32.bin" }
{"SH64 inter-file datalabel references and gc-sections, 32-bit ABI" "-mshelf32 --gc-sections"
{"SH64 inter-file datalabel references and gc-sections, 32-bit ABI" "-mshelf32 --gc-sections" ""
"--abi=32" {dlsection-1.s }
{{objdump -sr dlsection.sd}} "dlsection32.bin" }
{"SH64 inter-file datalabel references and gc-sections, 64-bit ABI" "-mshelf64 --gc-sections"
{"SH64 inter-file datalabel references and gc-sections, 64-bit ABI" "-mshelf64 --gc-sections" ""
"--abi=64" {dlsection-1.s }
{{objdump -sr dlsection.sd}} "dlsection64.bin" }
{"SH64 simple partial linking, 32-bit ABI" "-mshelf32 -r"
{"SH64 simple partial linking, 32-bit ABI" "-mshelf32 -r" ""
"--abi=32" {rel-1.s rel-2.s}
{{objdump -sx rel32.xd}} "rel32.bin" }
{"SH64 simple partial linking, 64-bit ABI" "-mshelf64 -r"
{"SH64 simple partial linking, 64-bit ABI" "-mshelf64 -r" ""
"--abi=64" {rel-1.s rel-2.s}
{{objdump -sx rel64.xd}} "rel64.bin" }
{"SH64 partial linking with datalabel references, 32-bit ABI" "-mshelf32 -r"
{"SH64 partial linking with datalabel references, 32-bit ABI" "-mshelf32 -r" ""
"--abi=32" {reldl-1.s reldl-2.s}
{{readelf {-s -r -x 1 -x 3} reldl32.rd}} "reldl32.bin" }
{"SH64 partial linking with datalabel references, 64-bit ABI" "-mshelf64 -r"
{"SH64 partial linking with datalabel references, 64-bit ABI" "-mshelf64 -r" ""
"--abi=64" {reldl-1.s reldl-2.s}
{{readelf {-s -r -x 1 -x 3} reldl64.rd}} "reldl64.bin" }
{"Handling SH64 assembler-generated .cranges" "-mshelf32"
{"Handling SH64 assembler-generated .cranges" "-mshelf32" ""
"--abi=32" {crange-2a.s crange-1.s}
{{readelf {-S -s -r -x 1 -x 2 -x 4} crange1.rd}} "crange1.bin" }
{"Handling SH64 assembler-generated .cranges, partial linking" "-mshelf32 -r"
{"Handling SH64 assembler-generated .cranges, partial linking" "-mshelf32 -r" ""
"--abi=32" {crange-2a.s}
{{readelf {-S -s -r -x 2 -x 6} crangerel1.rd}} "crangerel1.bin" }
{"Mixing SH64 assembler-generated with linker-generated .cranges" "-mshelf32"
{"Mixing SH64 assembler-generated with linker-generated .cranges" "-mshelf32" ""
"--abi=32" {crange-2a.s crange-2b.s crange-1.s}
{{readelf {-S -s -r -x 2 -x 4} crange2.rd}} "crange2.bin" }
{"Mixing SH64 assembler-generated with linker-generated .cranges, partial linking"
"-mshelf32 -r"
"-mshelf32 -r" ""
"--abi=32" {crange-2a.s crange-2c.s crange-2d.s crange-2e.s}
{{readelf {-S -s -r -x 2 -x 6} crangerel2.rd}} "crangerel2.bin" }
{"Merge and use of SH64 .cranges, some not originally in order" "-mshelf32"
{"Merge and use of SH64 .cranges, some not originally in order" "-mshelf32" ""
"--abi=32"
{crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s
crange-2h.s crange-1.s}
{{readelf {-S -s -x 2 -x 4} crange3.rd} {objdump -d crange3.dd}} "crange3.bin" }
{"Sorted SH64 .cranges, entry at SHcompact code" "-mshelf32 --entry diversion"
{"Sorted SH64 .cranges, entry at SHcompact code" "-mshelf32 --entry diversion" ""
"--abi=32"
{crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s
crange-2h.s crange-1.s}
{{readelf {-h -S -s -x 2 -x 4} crange3-cmpct.rd}} "crange3-cmpct.bin" }
{"Sorted SH64 .cranges, entry at SHmedia code" "-mshelf32 --entry diversion2"
{"Sorted SH64 .cranges, entry at SHmedia code" "-mshelf32 --entry diversion2" ""
"--abi=32"
{crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s
crange-2h.s crange-1.s}
{{readelf {-h -S -s -x 2 -x 4} crange3-media.rd}} "crange3-media.bin" }
{"SH64 Big Endianness" "-mshelf64 -Tendian.ld"
{"SH64 Big Endianness" "-mshelf64 -Tendian.ld" ""
"--abi=64" {endian.s}
{{objdump -s endian.sbd} {objdump -d endian.dbd}} "endianb.bin" }
{"SH64 Little Endianness" "-mshlelf64 -Tendian.ld"
{"SH64 Little Endianness" "-mshlelf64 -Tendian.ld" ""
"--abi=64 --little" {endian.s}
{{objdump -s endian.sld} {objdump -d endian.dld}} "endinanl.bin" }
}

View File

@ -24,23 +24,23 @@
if {[istarget "sparc-*-vxworks"]} {
set sparcvxworkstests {
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld"
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld" ""
"-KPIC" {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"
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
"" {vxworks1.s}
{{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
"vxworks1"}
{"VxWorks executable test 2 (dynamic)" \
"-Tvxworks1.ld -q --force-dynamic"
"-Tvxworks1.ld -q --force-dynamic" ""
"" {vxworks2.s}
{{readelf --segments vxworks2.sd}}
"vxworks2"}
{"VxWorks executable test 2 (static)"
"-Tvxworks1.ld"
"-Tvxworks1.ld" ""
"" {vxworks2.s}
{{readelf --segments vxworks2-static.sd}}
"vxworks2"}
@ -58,8 +58,8 @@ if { !([istarget "sparc*-*-elf*"]
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -67,58 +67,58 @@ if { !([istarget "sparc*-*-elf*"]
# readelf: Apply readelf options on result. Compare with regex (last arg).
set sparctests {
{"32-bit: TLS -fpic -shared transitions" "-shared -melf32_sparc"
{"32-bit: TLS -fpic -shared transitions" "-shared -melf32_sparc" ""
"--32 -K PIC" {tlssunpic32.s tlspic.s}
{{readelf -WSsrl tlssunpic32.rd} {objdump -drj.text tlssunpic32.dd}
{objdump -sj.got tlssunpic32.sd} {objdump -sj.tdata tlssunpic32.td}}
"libtlssunpic32.so"}
{"32-bit: Helper shared library" "-shared -melf32_sparc"
{"32-bit: Helper shared library" "-shared -melf32_sparc" ""
"--32 -K PIC" {tlslib.s} {} "libtlslib32.so"}
{"32-bit: Another helper shared library" "-shared -melf32_sparc"
{"32-bit: Another helper shared library" "-shared -melf32_sparc" ""
"--32 -K PIC" {tlssunbinpic32.s} {} "libtlssunbinpic32.so"}
{"32-bit: TLS -fpic and -fno-pic exec transitions"
"-melf32_sparc tmpdir/libtlslib32.so tmpdir/tlssunbinpic32.o"
"-melf32_sparc tmpdir/libtlslib32.so tmpdir/tlssunbinpic32.o" ""
"--32" {tlssunbin32.s}
{{readelf -WSsrl tlssunbin32.rd} {objdump -drj.text tlssunbin32.dd}
{objdump -sj.got tlssunbin32.sd} {objdump -sj.tdata tlssunbin32.td}}
"tlssunbin32"}
{"32-bit: TLS -fno-pic -shared" "-shared -melf32_sparc"
{"32-bit: TLS -fno-pic -shared" "-shared -melf32_sparc" ""
"--32" {tlssunnopic32.s tlsnopic.s}
{{readelf -WSsrl tlssunnopic32.rd} {objdump -drj.text tlssunnopic32.dd}
{objdump -sj.got tlssunnopic32.sd}} "libtlssunnopic32.so"}
{"32-bit: TLS in debug sections" "-melf32_sparc"
{"32-bit: TLS in debug sections" "-melf32_sparc" ""
"--32" {tlsg32.s}
{{objdump -sj.debug_foobar tlsg32.sd}} "tlsg32"}
{"32-bit: GOTDATA relocations" "-shared -melf32_sparc"
{"32-bit: GOTDATA relocations" "-shared -melf32_sparc" ""
"--32 -K PIC" {gotop32.s}
{{readelf -WSsrl gotop32.rd} {objdump -drj.text gotop32.dd}
{objdump -sj.got gotop32.sd} {objdump -sj.data gotop32.td}}
"libgotop32.so"}
}
set sparc64tests {
{"64-bit: TLS -fpic -shared transitions" "-shared -melf64_sparc"
{"64-bit: TLS -fpic -shared transitions" "-shared -melf64_sparc" ""
"--64 -Av9 -K PIC" {tlssunpic64.s tlspic.s}
{{readelf -WSsrl tlssunpic64.rd} {objdump -drj.text tlssunpic64.dd}
{objdump -sj.got tlssunpic64.sd} {objdump -sj.tdata tlssunpic64.td}}
"libtlssunpic64.so"}
{"64-bit: Helper shared library" "-shared -melf64_sparc"
{"64-bit: Helper shared library" "-shared -melf64_sparc" ""
"--64 -Av9 -K PIC" {tlslib.s} {} "libtlslib64.so"}
{"64-bit: Another helper shared library" "-shared -melf64_sparc"
{"64-bit: Another helper shared library" "-shared -melf64_sparc" ""
"--64 -Av9 -K PIC" {tlssunbinpic64.s} {} "libtlssunbinpic64.so"}
{"64-bit: TLS -fpic and -fno-pic exec transitions"
"-melf64_sparc tmpdir/libtlslib64.so tmpdir/tlssunbinpic64.o"
"-melf64_sparc tmpdir/libtlslib64.so tmpdir/tlssunbinpic64.o" ""
"--64 -Av9" {tlssunbin64.s}
{{readelf -WSsrl tlssunbin64.rd} {objdump -drj.text tlssunbin64.dd}
{objdump -sj.got tlssunbin64.sd} {objdump -sj.tdata tlssunbin64.td}}
"tlssunbin64"}
{"64-bit: TLS -fno-pic -shared" "-shared -melf64_sparc"
{"64-bit: TLS -fno-pic -shared" "-shared -melf64_sparc" ""
"--64 -Av9" {tlssunnopic64.s tlsnopic.s}
{{readelf -WSsrl tlssunnopic64.rd} {objdump -drj.text tlssunnopic64.dd}
{objdump -sj.got tlssunnopic64.sd}} "libtlssunnopic64.so"}
{"64-bit: TLS in debug sections" "-melf64_sparc"
{"64-bit: TLS in debug sections" "-melf64_sparc" ""
"--64 -Av9" {tlsg64.s}
{{objdump -sj.debug_foobar tlsg64.sd}} "tlsg64"}
{"64-bit: GOTDATA relocations" "-shared -melf64_sparc"
{"64-bit: GOTDATA relocations" "-shared -melf64_sparc" ""
"--64 -K PIC" {gotop64.s}
{{readelf -WSsrl gotop64.rd} {objdump -drj.text gotop64.dd}
{objdump -sj.got gotop64.sd} {objdump -sj.data gotop64.td}}

View File

@ -31,21 +31,21 @@ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.d]] {
set shlibtests {
{"C6X shared library without --dsbt-index"
"-shared -Tdsbt.ld --dsbt-size=3"
"-shared -Tdsbt.ld --dsbt-size=3" ""
"-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s}
{{readelf -WSsrld shlib-noindex.rd}
{objdump "-drj.plt -j.text" shlib-noindex.dd}
{objdump -sj.got shlib-noindex.sd}}
"libtestn.so"}
{"C6X shared library, LE, RELA"
"-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3"
"-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" ""
"-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s}
{{readelf -WSsrld shlib-1.rd}
{objdump "-drj.plt -j.text" shlib-1.dd}
{objdump -sj.got shlib-1.sd}}
"libtest.so"}
{"C6X nonstatic app using shared library, LE, RELA"
"-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtest.so"
"-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtest.so" ""
"-mdsbt -mpic -mpid=near" {shlib-app-1.s}
{{readelf -WSsrld shlib-app-1.rd}
{objdump "-drj.plt -j.text" shlib-app-1.dd}
@ -53,14 +53,14 @@ set shlibtests {
{objdump -R shlib-app-1.od}}
"shlib-dynapp-1"}
{"C6X shared library, LE, REL"
"-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3"
"-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" ""
"-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s}
{{readelf -WSsrld shlib-1r.rd}
{objdump "-drj.plt -j.text" shlib-1r.dd}
{objdump -sj.got shlib-1r.sd}}
"libtestr.so"}
{"C6X nonstatic app using shared library, LE, REL"
"-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestr.so"
"-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestr.so" ""
"-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-app-1r.s}
{{readelf -WSsrld shlib-app-1r.rd}
{objdump "-drj.plt -j.text" shlib-app-1r.dd}
@ -68,14 +68,14 @@ set shlibtests {
{objdump -R shlib-app-1r.od}}
"shlib-dynapp-1r"}
{"C6X shared library, BE, RELA"
"-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3"
"-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" ""
"-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s}
{{readelf -WSsrld shlib-1b.rd}
{objdump "-drj.plt -j.text" shlib-1b.dd}
{objdump -sj.got shlib-1b.sd}}
"libtestb.so"}
{"C6X nonstatic app using shared library, BE, RELA"
"-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestb.so"
"-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestb.so" ""
"-mdsbt -mpic -mpid=near -mbig-endian" {shlib-app-1.s}
{{readelf -WSsrld shlib-app-1b.rd}
{objdump "-drj.plt -j.text" shlib-app-1b.dd}
@ -83,14 +83,14 @@ set shlibtests {
{objdump -R shlib-app-1b.od}}
"shlib-dynapp-1b"}
{"C6X shared library, BE, REL"
"-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3"
"-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" ""
"-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-1.s shlib-2.s}
{{readelf -WSsrld shlib-1rb.rd}
{objdump "-drj.plt -j.text" shlib-1rb.dd}
{objdump -sj.got shlib-1rb.sd}}
"libtestrb.so"}
{"C6X nonstatic app using shared library, BE, REL"
"-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestrb.so"
"-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestrb.so" ""
"-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-app-1r.s}
{{readelf -WSsrld shlib-app-1rb.rd}
{objdump "-drj.plt -j.text" shlib-app-1rb.dd}
@ -99,7 +99,7 @@ set shlibtests {
"shlib-dynapp-1rb"}
{"C6X static app, LE, RELA"
"-Tdsbt.ld --dsbt-index 0 --dsbt-size=3"
"-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" ""
"-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s shlib-app-1.s}
{{readelf -WSsrld static-app-1.rd}
{objdump "-drj.plt -j.text" static-app-1.dd}
@ -107,7 +107,7 @@ set shlibtests {
{objdump -R static-app-1.od}}
"static-app-1"}
{"C6X static app, LE, REL"
"-Tdsbt.ld --dsbt-index 0 --dsbt-size=3"
"-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" ""
"-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s}
{{readelf -WSsrld static-app-1r.rd}
{objdump "-drj.plt -j.text" static-app-1r.dd}
@ -115,7 +115,7 @@ set shlibtests {
{objdump -R static-app-1r.od}}
"static-app-1r"}
{"C6X static app, BE, RELA"
"-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3"
"-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" ""
"-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s shlib-app-1.s}
{{readelf -WSsrld static-app-1b.rd}
{objdump "-drj.plt -j.text" static-app-1b.dd}
@ -123,7 +123,7 @@ set shlibtests {
{objdump -R static-app-1b.od}}
"static-app-1b"}
{"C6X static app, BE, REL"
"-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3"
"-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" ""
"-mdsbt -mpic -mpid=near -mbig-endian -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s}
{{readelf -WSsrld static-app-1rb.rd}
{objdump "-drj.plt -j.text" static-app-1rb.dd}

View File

@ -26,14 +26,14 @@ if {!([istarget "tilegx-*-*"]) } {
set tilegx_tests {
{ "tilegx little-endian relocation resolution linker test"
"-EL"
"-EL" ""
"-EL"
{ "reloc.s" "external.s" }
{ {objdump -ds reloc-le.d} }
"reloc"
}
{ "tilegx big-endian relocation resolution linker test"
"-EB"
"-EB" ""
"-EB"
{ "reloc.s" "external.s" }
{ {objdump -ds reloc-be.d} }

View File

@ -26,7 +26,7 @@ if {!([istarget "tilepro-*-*"]) } {
set tilepro_tests {
{ "tilepro relocation resolution linker test"
""
"" ""
""
{ "reloc.s" "external.s" }
{ {objdump -ds reloc.d} }

View File

@ -21,7 +21,7 @@
set build_tests {
{"Build libentry.a"
"" ""
"" "" ""
{entry.s} {} "libentry.a"}
}

View File

@ -25,25 +25,25 @@ if { ![istarget vax-*-*] || ![is_elf_format] } {
run_ld_link_tests [list \
[list "PLT test (shared library)" \
"-shared -T plt-local-lib.ld" \
"-shared -T plt-local-lib.ld" "" \
"-k" \
{ plt-local-lib.s } \
{ { objdump -d plt-local-lib.dd } } \
"plt-local-lib.so"] \
[list "PLT test (object 1)" \
"-r" \
"-r" "" \
"-k" \
{ plt-local-hidden-pic.s } \
{} \
"plt-local-hidden-pic-r.o"] \
[list "PLT test (object 2)" \
"-r" \
"-r" "" \
"-k" \
{ plt-local-rehidden-pic.s } \
{} \
"plt-local-rehidden-pic-r.o"] \
[list "PLT test (executable)" \
"-T plt-local.ld tmpdir/plt-local-hidden-pic-r.o tmpdir/plt-local-rehidden-pic-r.o tmpdir/plt-local-lib.so" \
"-T plt-local.ld tmpdir/plt-local-hidden-pic-r.o tmpdir/plt-local-rehidden-pic-r.o tmpdir/plt-local-lib.so" "" \
"" \
{ plt-local.s } \
{ { objdump -d plt-local.dd } } \

View File

@ -42,10 +42,10 @@ if { !([istarget "x86_64-*-elf*"]
set build_tests_ld {
{"Build dwarfreloc1x.o"
"-r" ""
"-r" "" ""
{dwarfreloc1.s} {} "dwarfreloc1x.o"}
{"Build dwarfreloc2.o"
"-r" ""
"-r" "" ""
{dwarfreloc2.s} {} "dwarfreloc2x.o"}
}

View File

@ -44,7 +44,7 @@ proc x86_64_export_class_test { abi flag emul } {
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object)" \
"$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" \
"$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-lib.s } \
{} \
@ -58,7 +58,7 @@ proc x86_64_export_class_test { abi flag emul } {
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
"$LDFLAGS -r" \
"$LDFLAGS -r" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-ref.s } \
{} \
@ -75,7 +75,7 @@ proc x86_64_export_class_test { abi flag emul } {
run_ld_link_tests [list \
[list \
"$testname (final shared object)" \
"$LDFLAGS -shared -Tdata=0x12340000 tmpdir/x86-64-$abi-export-class-ref-r.o tmpdir/x86-64-$abi-export-class-lib.so" \
"$LDFLAGS -shared -Tdata=0x12340000 tmpdir/x86-64-$abi-export-class-ref-r.o tmpdir/x86-64-$abi-export-class-lib.so" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
[list \

View File

@ -36,8 +36,8 @@ if [istarget "*-*-nacl*"] {
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -46,87 +46,88 @@ if [istarget "*-*-nacl*"] {
set x86_64tests {
{"Helper shared library (basic PLT test)"
"-shared -melf_x86_64" "--64" {pltlib.s} {} "libpltlib.so"}
"-shared -melf_x86_64" "" "--64" {pltlib.s} {} "libpltlib.so"}
{"basic PLT generation"
"-melf_x86_64 tmpdir/libpltlib.so" "--64" {plt.s}
"-melf_x86_64 tmpdir/libpltlib.so" "" "--64" {plt.s}
{{objdump -drj.plt plt.pd}} "plt"}
{"TLS -fpic -shared transitions"
"-shared -melf_x86_64 --no-ld-generated-unwind-info"
"-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 --no-ld-generated-unwind-info"
"-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}
{objdump -drj.plt tlsdesc.pd}} "libtlsdesc.so"}
{"Helper shared library" "-shared -melf_x86_64"
{"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 --no-ld-generated-unwind-info"
"-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 --no-ld-generated-unwind-info"
"-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 --no-ld-generated-unwind-info"
"-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"
{"TLS in debug sections" "-melf_x86_64" ""
"--64" {tlsg.s}
{{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}
{"TLS GD->LE transition" "-melf_x86_64"
{"TLS GD->LE transition" "-melf_x86_64" ""
"--64" {tlsgd1.s}
{{objdump -dwr tlsgd1.dd}} "tlsgd1"}
{"TLS LD->LE transition" "-melf_x86_64"
{"TLS LD->LE transition" "-melf_x86_64" ""
"--64" {tlsld1.s}
{{objdump -dwr tlsld1.dd}} "tlsld1"}
{"TLS IE->LE transition" "-melf_x86_64"
{"TLS IE->LE transition" "-melf_x86_64" ""
"--64" {tlsie1.s}
{{objdump -dwr tlsie1.dd}} "tlsie1"}
{"Helper 64bit object 1" "-r -melf_x86_64"
{"Helper 64bit object 1" "-r -melf_x86_64" ""
"--64" {mixed1a.s} {} "libmixe1a.o"}
{"Helper 32bit object 1" "-r -melf_i386"
{"Helper 32bit object 1" "-r -melf_i386" ""
"--32" {mixed1b.s} {} "libmixe1b.o"}
{"Helper 64bit object 2" "-r -melf_x86_64"
{"Helper 64bit object 2" "-r -melf_x86_64" ""
"--64" {mixed2a.s} {} "libmixe2a.o"}
{"Helper 32bit object 2" "-r -melf_i386"
{"Helper 32bit object 2" "-r -melf_i386" ""
"--32" {mixed2b.s} {} "libmixe2b.o"}
{"Split by file with 'l' flag on section." "-split-by-file -r -melf_x86_64"
{"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"
{"TLS X32 IE->LE transition" "-melf32_x86_64" ""
"--x32" {tlsie4.s}
{{objdump -dwr tlsie4.dd}} "tlsie4"}
{"TLS X32 GD->LE transition" "-melf32_x86_64"
{"TLS X32 GD->LE transition" "-melf32_x86_64" ""
"--x32" {tlsgd4.s}
{{objdump -dwr tlsgd4.dd}} "tlsgd4"}
{"Helper TLS GD->IE transition DSO" "-shared -melf_x86_64"
{"Helper TLS GD->IE transition DSO" "-shared -melf_x86_64" ""
"--64" {tlsgd5b.s} {} "libtlsgd5.so"}
{"TLS GD->IE transition" "-melf_x86_64 tmpdir/libtlsgd5.so"
{"TLS GD->IE transition" "-melf_x86_64 tmpdir/libtlsgd5.so" ""
"--64" {tlsgd5a.s}
{{objdump -dwr tlsgd5.dd}} "tlsgd5"}
{"Helper TLS X32 GD->IE transition DSO" "-shared -melf32_x86_64"
{"Helper TLS X32 GD->IE transition DSO" "-shared -melf32_x86_64" ""
"--x32" {tlsgd6b.s} {} "libtlsgd6.so"}
{"TLS X32 GD->IE transition" "-melf32_x86_64 tmpdir/libtlsgd6.so"
{"TLS X32 GD->IE transition" "-melf32_x86_64 tmpdir/libtlsgd6.so" ""
"--x32" {tlsgd6a.s}
{{objdump -dwr tlsgd6.dd}} "tlsgd6"}
{"TLS X32 LD->LE transition" "-melf32_x86_64"
{"TLS X32 LD->LE transition" "-melf32_x86_64" ""
"--x32" {tlsld2.s}
{{objdump -dwr tlsld2.dd}} "tlsld2"}
{"build 32-bit object with 33 locals" "-melf_x86_64 -e 0" "--32" {32bit.s} {{ ld incompatible.l }} "dummy" }
{"build 64-bit object" "-melf_x86_64 -e 0 --defsym foo=1" "--64" {64bit.s} {} "dummy" }
{"link mixed objects" "-melf_x86_64 -e 0 tmpdir/32bit.o tmpdir/64bit.o" "" {} { { ld incompatible.l } } "mixed"}
{"build 32-bit object with 33 locals" "-melf_x86_64 -e 0" "" "--32" {32bit.s} {{ ld incompatible.l }} "dummy" }
{"build 64-bit object" "-melf_x86_64 -e 0 --defsym foo=1" "" "--64" {64bit.s} {} "dummy" }
{"link mixed objects" "-melf_x86_64 -e 0 tmpdir/32bit.o tmpdir/64bit.o" "" "" {} { { ld incompatible.l } } "mixed"}
}
# So as to avoid rewriting every last test case here in a nacl variant,
@ -311,7 +312,7 @@ if { [isnative] && [which $CC] != 0 } {
run_ld_link_tests {
{"X32 DSO from x86-64 object"
"-shared -melf32_x86_64 tmpdir/simple-x32.o" "--x32"
"-shared -melf32_x86_64 tmpdir/simple-x32.o" "" "--x32"
{dummy.s} {{readelf {-s --wide} x86-64-x32.rd}} "x86-64-x32"}
}
}

View File

@ -31,7 +31,7 @@ if {!([istarget "xc16x*-*-*"]) } {
set xc16x_tests {
{
"xc16x pc-relative relocs linker test"
""
"" ""
""
{ "pcreloc.s" }
{ {objdump -Dz pcreloc.d} }
@ -42,7 +42,7 @@ set xc16x_tests {
set xc16xabs_tests {
{
"xc16x absolute relative address linker test"
""
"" ""
""
{ "absrel.s" }
{ {objdump -Dz absrel.d} }
@ -53,7 +53,7 @@ set xc16xabs_tests {
set xc16xoffset_tests {
{
"xc16x offset linker test"
""
"" ""
""
{ "offset.s" }
{ {objdump -Dz offset.d} }

View File

@ -30,7 +30,7 @@ if {!([istarget "xstormy16*-*-*"]) } {
set xstormy16_tests {
{ "xstormy16 pc-relative relocs linker test"
""
"" ""
""
{ "pcrel.s" "external.s" }
{ {objdump -Dz pcrel.d} }

View File

@ -24,8 +24,8 @@ if { !([istarget "xtensa*-*-linux*"]) } {
}
# 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
# 0:name 1:ld early options 2:ld late options 3:assembler options
# 4:filenames of assembler files 5: action and options. 6: name of output file
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@ -34,16 +34,16 @@ if { !([istarget "xtensa*-*-linux*"]) } {
set xtensatests {
{"TLS -shared transitions"
"-shared -melf32xtensa" "" {tlspic1.s tlspic2.s}
"-shared -melf32xtensa" "" "" {tlspic1.s tlspic2.s}
{{readelf -WSsrl tlspic.rd}
{objdump "-drj.text --start-address=0x350" tlspic.dd}
{objdump "-sj.text --stop-address=0x350" tlspic.sd}
{objdump -sj.tdata tlspic.td}}
"libtlspic.so"}
{"Helper shared library" "-shared -melf32xtensa"
{"Helper shared library" "-shared -melf32xtensa" ""
"" {tlslib.s} {} "libtlslib.so"}
{"TLS exec transitions"
"-melf32xtensa tmpdir/libtlslib.so" "" {tlsbin.s}
"-melf32xtensa tmpdir/libtlslib.so" "" "" {tlsbin.s}
{{readelf -WSsrl tlsbin.rd}
{objdump "-drj.text --start-address=0x400238" tlsbin.dd}
{objdump "-sj.text --stop-address=0x400238" tlsbin.sd}

View File

@ -1000,12 +1000,13 @@ proc ar_simple_create { ar aropts target objects } {
# List contains test-items with 3 items followed by 2 lists, one item and
# one optional item:
# 0:name
# 1:ld/ar options
# 2:assembler options
# 3:filenames of assembler files
# 4:list of actions, options and expected outputs.
# 5:name of output file
# 6:compiler flags (optional)
# 1:ld/ar leading options, placed before object files
# 2:ld/ar trailing options, placed after object files
# 3:assembler options
# 4:filenames of assembler files
# 5:list of actions, options and expected outputs.
# 6:name of output file
# 7:compiler flags (optional)
#
# Actions: { command command-line-options file-containg-expected-output-regexps }
# Commands:
@ -1041,11 +1042,12 @@ proc run_ld_link_tests { ldtests } {
}
set ld_options [lindex $testitem 1]
set as_options [lindex $testitem 2]
set src_files [lindex $testitem 3]
set actions [lindex $testitem 4]
set binfile tmpdir/[lindex $testitem 5]
set cflags [lindex $testitem 6]
set ld_after [lindex $testitem 2]
set as_options [lindex $testitem 3]
set src_files [lindex $testitem 4]
set actions [lindex $testitem 5]
set binfile tmpdir/[lindex $testitem 6]
set cflags [lindex $testitem 7]
set objfiles {}
set is_unresolved 0
set failed 0
@ -1054,6 +1056,7 @@ proc run_ld_link_tests { ldtests } {
# verbose -log "Testname is $testname"
# verbose -log "ld_options is $ld_options"
# verbose -log "ld_after is $ld_after"
# verbose -log "as_options is $as_options"
# verbose -log "src_files is $src_files"
# verbose -log "actions is $actions"
@ -1087,10 +1090,10 @@ proc run_ld_link_tests { ldtests } {
}
if { [regexp ".*\\.a$" $binfile] } {
if { ![ar_simple_create $ar $ld_options $binfile "$objfiles"] } {
if { ![ar_simple_create $ar $ld_options $binfile "$objfiles $ld_after"] } {
set failed 1
}
} elseif { ![ld_simple_link $ld $binfile "-L$srcdir/$subdir $ld_options $objfiles"] } {
} elseif { ![ld_simple_link $ld $binfile "-L$srcdir/$subdir $ld_options $objfiles $ld_after"] } {
set maybe_failed 1
set ld_output "$exec_output"
}