+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
}
# 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).
# 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"}
}
}
# 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).
# 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"}
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"}
}
# 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).
# 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}}
# 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"}
}
# 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"}
}
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 } \
{} \
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 } \
{} \
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 } \
{ \
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object build)" \
- "-shared" \
+ "-shared" "" \
"" \
{ comm-data1.s } \
{ \
run_ld_link_tests [list \
[list \
"$testname" \
- "-Ltmpdir -lcomm-data" \
+ "-Ltmpdir -lcomm-data" "" \
"$AFLAGS" \
{ comm-data2.s } \
{ \
] \
[list \
"$testname 3a" \
- "-static" \
+ "-static" "" \
"" \
{ comm-data3a.s comm-data3b.s } \
{ \
] \
[list \
"$testname 3b" \
- "-static" \
+ "-static" "" \
"" \
{ comm-data3b.s comm-data3a.s } \
{ \
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"] \
]
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" }
}
}
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" }
}
|| [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"}
}
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"}
}
}
|| [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"}
}
}
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 } \
{} \
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
- "-r" \
+ "-r" "" \
"" \
{ export-class-ref.s } \
{} \
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 } \
{ \
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\""]
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"
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 } \
{} \
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
- "-r" \
+ "-r" "" \
"" \
{ ../ld-elf/export-class-ref.s } \
{} \
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 } \
{ \
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"}
}
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"
}
# 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).
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"}
}
}
# 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).
# 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"}
}
# 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"}
}
}
# 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).
# 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
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]]
}
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"}}
# 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"
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object build)" \
- "$LDFLAGS -shared" \
+ "$LDFLAGS -shared" "" \
"$AFLAGS -call_shared" \
{ ../ld-elf/comm-data1.s } \
{ \
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 } \
{ \
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 } \
{} \
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
- "$LDFLAGS -r" \
+ "$LDFLAGS -r" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-ref.s } \
{} \
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 \
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"}
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 } \
{ 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 } \
{ 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 } \
{ 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 } } \
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 } } \
# 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}}
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}
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}
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}
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"] \
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 \
"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 \
"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 \
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" \
{} \
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}}
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"}
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}
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" \
# 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).
# 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"}
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}} \
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}} \
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}
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 \
set mn10300_tests {
{
"am33 string merging"
- "-relax -Ttext 0x8000074"
+ "-relax -Ttext 0x8000074" ""
""
{ "i36434.s" "i36434-2.s" }
{ {objdump -dz i36434.d} }
}
{
"difference of two same-section symbols"
- "-Ttext 0"
+ "-Ttext 0" ""
""
{ "i112045-1.s" }
{ {objdump -d i112045-1.d} }
}
{
"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} }
}
{
"relaxation and alignment directives"
- "-relax -Ttext 100 -Tbss 300"
+ "-relax -Ttext 100 -Tbss 300" ""
""
{ "i127740.s" }
{ {objdump -d i127740.d} }
}
{
"adjustment of symbols due to relaxation"
- "-Tdata 1f -Ttext 0 -relax"
+ "-Tdata 1f -Ttext 0 -relax" ""
""
{ "i135409-1.s" }
{ {readelf --syms i135409-1.d} }
}
{
"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} }
}
{
"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} }
}
{
"adjusting a 16-bit forward branch"
- "-Ti135409-4.t -relax"
+ "-Ti135409-4.t -relax" ""
""
{ "i135409-4.s" }
{ {objdump -d i135409-4.d} }
}
{
"adjusting a 16-bit backward branch"
- "-Ti135409-5.t -relax"
+ "-Ti135409-5.t -relax" ""
""
{ "i135409-5.s" }
{ {objdump -d i135409-5.d} }
}
{
"relaxing offsets into a merged string section"
- "-Ti143317.t -shared -relax"
+ "-Ti143317.t -shared -relax" ""
""
{ "i143317.s" }
{ {objdump -d i143317.d} }
set am33_tests {
{
"difference of two same-section symbols (in a shared library)"
- "-shared"
+ "-shared" ""
""
{ "i112045-2.s" }
{ {objdump -R i112045-2.d} }
}
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"}
}
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"}
}
}
}
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"}
}
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 \
-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 \
-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 \
-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" ] \
]
}
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 \
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 } \
{} \
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
- "$LDFLAGS -r" \
+ "$LDFLAGS -r" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-ref.s } \
{} \
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 \
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"}
}
# 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).
# 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"}
}
}
# 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).
# 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}}
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"}
}
# 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).
# 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" }
}
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"}
}
# 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).
# 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}}
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}
{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}
{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}
{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}
"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}
{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}
{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}
{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}
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} }
set tilepro_tests {
{ "tilepro relocation resolution linker test"
- ""
+ "" ""
""
{ "reloc.s" "external.s" }
{ {objdump -ds reloc.d} }
set build_tests {
{"Build libentry.a"
- "" ""
+ "" "" ""
{entry.s} {} "libentry.a"}
}
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 } } \
set build_tests_ld {
{"Build dwarfreloc1x.o"
- "-r" ""
+ "-r" "" ""
{dwarfreloc1.s} {} "dwarfreloc1x.o"}
{"Build dwarfreloc2.o"
- "-r" ""
+ "-r" "" ""
{dwarfreloc2.s} {} "dwarfreloc2x.o"}
}
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 } \
{} \
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
- "$LDFLAGS -r" \
+ "$LDFLAGS -r" "" \
"$AFLAGS" \
{ ../ld-elf/export-class-ref.s } \
{} \
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 \
}
# 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).
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,
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"}
}
}
set xc16x_tests {
{
"xc16x pc-relative relocs linker test"
- ""
+ "" ""
""
{ "pcreloc.s" }
{ {objdump -Dz pcreloc.d} }
set xc16xabs_tests {
{
"xc16x absolute relative address linker test"
- ""
+ "" ""
""
{ "absrel.s" }
{ {objdump -Dz absrel.d} }
set xc16xoffset_tests {
{
"xc16x offset linker test"
- ""
+ "" ""
""
{ "offset.s" }
{ {objdump -Dz offset.d} }
set xstormy16_tests {
{ "xstormy16 pc-relative relocs linker test"
- ""
+ "" ""
""
{ "pcrel.s" "external.s" }
{ {objdump -Dz pcrel.d} }
}
# 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).
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}
# 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:
}
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
# 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"
}
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"
}