diff options
Diffstat (limited to 'ld')
43 files changed, 613 insertions, 560 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index a8e6c2c..6d034f8 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,50 @@ +2013-02-19 Maciej W. Rozycki <macro@codesourcery.com> + + * lib/ld-lib.exp (run_ld_link_tests): Add another argument, pass + its contents to ar_simple_create and ld_simple_link after + objfiles. + * ld-aarch64/aarch64-elf.exp: Adjust accordingly. + * ld-alpha/alpha.exp: Likewise. + * ld-arm/arm-elf.exp: Likewise. + * ld-arm/export-class.exp: Likewise. + * ld-elf/comm-data.exp: Likewise. + * ld-elf/eh-group.exp: Likewise. + * ld-elf/elf.exp: Likewise. + * ld-elf/export-class.exp: Likewise. + * ld-elfvers/vers.exp: Likewise. + * ld-frv/tls.exp: Likewise. + * ld-i386/export-class.exp: Likewise. + * ld-i386/i386.exp: Likewise. + * ld-ia64/ia64.exp: Likewise. + * ld-libs/libs.exp: Likewise. + * ld-m68k/m68k.exp: Likewise. + * ld-metag/metag.exp: Likewise. + * ld-mips-elf/comm-data.exp: Likewise. + * ld-mips-elf/export-class.exp: Likewise. + * ld-mips-elf/mips-elf.exp: Likewise. + * ld-mn10300/mn10300.exp: Likewise. + * ld-pe/pe-compile.exp: Likewise. + * ld-pe/pe.exp: Likewise. + * ld-plugin/plugin.exp: Likewise. + * ld-powerpc/aix52.exp: Likewise. + * ld-powerpc/export-class.exp: Likewise. + * ld-powerpc/powerpc.exp: Likewise. + * ld-s390/s390.exp: Likewise. + * ld-sh/sh-vxworks.exp: Likewise. + * ld-sh/sh64/sh64.exp: Likewise. + * ld-sparc/sparc.exp: Likewise. + * ld-tic6x/tic6x.exp: Likewise. + * ld-tilegx/tilegx.exp: Likewise. + * ld-tilepro/tilepro.exp: Likewise. + * ld-undefined/entry.exp: Likewise. + * ld-vax-elf/vax-elf.exp: Likewise. + * ld-x86-64/dwarfreloc.exp: Likewise. + * ld-x86-64/export-class.exp: Likewise. + * ld-x86-64/x86-64.exp: Likewise. + * ld-xc16x/xc16x.exp: Likewise. + * ld-xstormy16/xstormy16.exp: Likewise. + * ld-xtensa/xtensa.exp: Likewise. + 2013-02-18 Maciej W. Rozycki <macro@codesourcery.com> * ld-mips-elf/jalx-2.ld: Include .rel.plt in output, give .plt a diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp index e85d1db..d4f6235 100644 --- a/ld/testsuite/ld-aarch64/aarch64-elf.exp +++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp @@ -24,8 +24,8 @@ if { ![is_elf_format] || ![istarget "aarch64*-*-*"] } { } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -33,7 +33,7 @@ if { ![is_elf_format] || ![istarget "aarch64*-*-*"] } { # readelf: Apply readelf options on result. Compare with regex (last arg). set aarch64elftests { - {"EH Frame merge" "-Ttext 0x8000" "" {eh-frame-bar.s eh-frame-foo.s} + {"EH Frame merge" "-Ttext 0x8000" "" "" {eh-frame-bar.s eh-frame-foo.s} {{objdump --dwarf=frames eh-frame.d}} "eh-frame"} } diff --git a/ld/testsuite/ld-alpha/alpha.exp b/ld/testsuite/ld-alpha/alpha.exp index ed95d88..c04a798 100644 --- a/ld/testsuite/ld-alpha/alpha.exp +++ b/ld/testsuite/ld-alpha/alpha.exp @@ -28,8 +28,8 @@ if { !([istarget "alpha*-*-elf*"] } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -37,32 +37,33 @@ if { !([istarget "alpha*-*-elf*"] # readelf: Apply readelf options on result. Compare with regex (last arg). set alphatests { - {"TLS -fpic -shared" "-shared -melf64alpha" + {"TLS -fpic -shared" "-shared -melf64alpha" "" "" {align.s tlspic1.s tlspic2.s} {{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd} {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} "libtlspic.so"} - {"Helper shared library" "-shared -melf64alpha" + {"Helper shared library" "-shared -melf64alpha" "" "" {tlslib.s} {} "libtlslib.so"} {"TLS -fpic and -fno-pic exec" - "-melf64alpha tmpdir/libtlslib.so" "" {align.s tlsbinpic.s tlsbin.s} + "-melf64alpha tmpdir/libtlslib.so" "" "" {align.s tlsbinpic.s tlsbin.s} {{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd} {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} "tlsbin"} {"TLS -fpic and -fno-pic exec -relax" - "-relax -melf64alpha tmpdir/libtlslib.so" "" {align.s tlsbinpic.s tlsbin.s} + "-relax -melf64alpha tmpdir/libtlslib.so" "" + "" {align.s tlsbinpic.s tlsbin.s} {{readelf -WSsrl tlsbinr.rd} {objdump -drj.text tlsbinr.dd} {objdump -sj.got tlsbinr.sd}} "tlsbinr"} {"empty got" - "-melf64alpha" "" + "-melf64alpha" "" "" {emptygot.s} {{nm "-n" emptygot.nm}} "emptygot"} } # Not implemented yet -# {"TLS in debug sections" "-melf64alpha" +# {"TLS in debug sections" "-melf64alpha" "" # "" {tlsg.s} # {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"} diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index 81ee0bd..414bc69 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -22,23 +22,23 @@ if {[istarget "arm-*-vxworks"]} { set armvxworkstests { - {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" + {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" "" "" {vxworks1-lib.s} {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd} {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}} "libvxworks1.so"} {"VxWorks executable test 1 (dynamic)" \ - "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" + "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" "" "" {vxworks1.s} {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}} "vxworks1"} {"VxWorks executable test 2 (dynamic)" \ - "-Tvxworks1.ld -q --force-dynamic" + "-Tvxworks1.ld -q --force-dynamic" "" "" {vxworks2.s} {{readelf --segments vxworks2.sd}} "vxworks2"} {"VxWorks executable test 2 (static)" - "-Tvxworks1.ld" + "-Tvxworks1.ld" "" "" {vxworks2.s} {{readelf --segments vxworks2-static.sd}} "vxworks2"} @@ -59,8 +59,8 @@ if { ![is_elf_format] || ![istarget "arm*-*-*"] } { } # List contains test-items with 3 items followed by 2 lists and one more item: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -68,382 +68,382 @@ if { ![is_elf_format] || ![istarget "arm*-*-*"] } { # readelf: Apply readelf options on result. Compare with regex (last arg). set armelftests_common { - {"Group relocations" "-Ttext 0x8000 --section-start zero=0x0 --section-start alpha=0xeef0 --section-start beta=0xffeef0" "" {group-relocs.s} + {"Group relocations" "-Ttext 0x8000 --section-start zero=0x0 --section-start alpha=0xeef0 --section-start beta=0xffeef0" "" "" {group-relocs.s} {{objdump -dr group-relocs.d}} "group-relocs"} - {"Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x401000" "" {thumb1-bl.s} + {"Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x401000" "" "" {thumb1-bl.s} {{objdump -dr thumb1-bl.d}} "thumb1-bl"} {"Indirect cross-library function reference (set-up)" - "-shared" "" {arm-lib-plt-2a.s} + "-shared" "" "" {arm-lib-plt-2a.s} {} "arm-lib-plt-2a.so"} {"Indirect cross-library function reference" - "-shared tmpdir/arm-lib-plt-2a.so" "" {arm-lib-plt-2b.s} + "-shared tmpdir/arm-lib-plt-2a.so" "" "" {arm-lib-plt-2b.s} {{objdump -dr arm-lib-plt-2.dd} {readelf --relocs arm-lib-plt-2.rd}} "arm-lib-plt-2b.so"} - {"Simple static application" "" "" {arm-static-app.s} + {"Simple static application" "" "" "" {arm-static-app.s} {{objdump -fdw arm-static-app.d} {objdump -rw arm-static-app.r}} "arm-static-app"} - {"target1-abs" "-static --target1-abs -T arm.ld" "" {arm-target1.s} + {"target1-abs" "-static --target1-abs -T arm.ld" "" "" {arm-target1.s} {{objdump -s arm-target1-abs.d}} "arm-target1-abs"} - {"target1-rel" "-static --target1-rel -T arm.ld" "" {arm-target1.s} + {"target1-rel" "-static --target1-rel -T arm.ld" "" "" {arm-target1.s} {{objdump -s arm-target1-rel.d}} "arm-target1-rel"} - {"target2-rel" "-static --target2=rel -T arm.ld" "" {arm-target2.s} + {"target2-rel" "-static --target2=rel -T arm.ld" "" "" {arm-target2.s} {{objdump -s arm-target2-rel.d}} "arm-target2-rel"} - {"target2-abs" "-static --target2=abs -T arm.ld" "" {arm-target2.s} + {"target2-abs" "-static --target2=abs -T arm.ld" "" "" {arm-target2.s} {{objdump -s arm-target2-abs.d}} "arm-target2-abs"} - {"target2-got-rel" "-static --target2=got-rel -T arm.ld" "" {arm-target2.s} + {"target2-got-rel" "-static --target2=got-rel -T arm.ld" "" "" {arm-target2.s} {{objdump -s arm-target2-got-rel.d}} "arm-target2-got-rel"} - {"arm-rel31" "-static -T arm.ld" "" {arm-rel31.s} + {"arm-rel31" "-static -T arm.ld" "" "" {arm-rel31.s} {{objdump -s arm-rel31.d}} "arm-rel31"} - {"arm-rel32" "-shared -T arm-dyn.ld" "" {arm-rel32.s} + {"arm-rel32" "-shared -T arm-dyn.ld" "" "" {arm-rel32.s} {{objdump -Rsj.data arm-rel32.d}} "arm-rel32"} - {"arm-call" "--no-fix-arm1176 -static -T arm.ld" "-meabi=4" {arm-call1.s arm-call2.s} + {"arm-call" "--no-fix-arm1176 -static -T arm.ld" "" "-meabi=4" {arm-call1.s arm-call2.s} {{objdump -d arm-call.d}} "arm-call"} - {"TLS shared library" "-shared -T arm-lib.ld" "" {tls-lib.s} + {"TLS shared library" "-shared -T arm-lib.ld" "" "" {tls-lib.s} {{objdump -fdw tls-lib.d} {objdump -Rw tls-lib.r}} "tls-lib.so"} - {"TLS dynamic application" "-T arm-dyn.ld tmpdir/tls-lib.so" "" {tls-app.s} + {"TLS dynamic application" "-T arm-dyn.ld tmpdir/tls-lib.so" "" "" {tls-app.s} {{objdump -fdw tls-app.d} {objdump -Rw tls-app.r}} "tls-app"} - {"TLS gnu shared library got" "-shared -T arm-dyn.ld" "" {tls-gdesc-got.s} + {"TLS gnu shared library got" "-shared -T arm-dyn.ld" "" "" {tls-gdesc-got.s} {{objdump "-fDR -j .got" tls-gdesc-got.d}} "tls-lib2-got.so"} - {"TLS gnu GD to IE relaxation" "-static -T arm-dyn.ld" "" {tls-gdierelax.s} + {"TLS gnu GD to IE relaxation" "-static -T arm-dyn.ld" "" "" {tls-gdierelax.s} {{objdump -fdw tls-gdierelax.d}} "tls-app-rel-ie"} - {"TLS gnu GD to IE shared relaxation" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-gdierelax2.s} + {"TLS gnu GD to IE shared relaxation" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" "" {tls-gdierelax2.s} {{objdump -fdw tls-gdierelax2.d}} "tls-app-rel-ie2"} - {"TLS gnu GD to LE relaxation" "-T arm-dyn.ld" "" {tls-gdlerelax.s} + {"TLS gnu GD to LE relaxation" "-T arm-dyn.ld" "" "" {tls-gdlerelax.s} {{objdump -fdw tls-gdlerelax.d}} "tls-app-rel-le"} - {"TLS mixed models shared lib" "-shared -T arm-dyn.ld" "" {tls-mixed.s} + {"TLS mixed models shared lib" "-shared -T arm-dyn.ld" "" "" {tls-mixed.s} {{objdump -Rw tls-mixed.r}} "tls-mixed.so"} - {"TLS descseq relaxation" "-T arm-dyn.ld" "" {tls-descrelax.s} + {"TLS descseq relaxation" "-T arm-dyn.ld" "" "" {tls-descrelax.s} {{objdump -fdw tls-descrelax.d}} "tls-descrelax"} - {"TLS descseq relaxation v7" "-T arm-dyn.ld" "" {tls-descrelax-v7.s} + {"TLS descseq relaxation v7" "-T arm-dyn.ld" "" "" {tls-descrelax-v7.s} {{objdump -fdw tls-descrelax-v7.d}} "tls-descrelax-v7"} - {"TLS descseq relaxation BE8" "-T arm-dyn.ld -EB --be8" "-mbig-endian" {tls-descrelax-be8.s} + {"TLS descseq relaxation BE8" "-T arm-dyn.ld -EB --be8" "" "-mbig-endian" {tls-descrelax-be8.s} {{objdump -fdw tls-descrelax-be8.d}} "tls-descrelax-be8"} - {"TLS descseq relaxation BE32" "-T arm-dyn.ld -EB" "-mbig-endian" {tls-descrelax-be32.s} + {"TLS descseq relaxation BE32" "-T arm-dyn.ld -EB" "" "-mbig-endian" {tls-descrelax-be32.s} {{objdump -fdw tls-descrelax-be32.d}} "tls-descrelax-be32"} - {"Thumb entry point" "-T arm.ld" "" {thumb-entry.s} + {"Thumb entry point" "-T arm.ld" "" "" {thumb-entry.s} {{readelf -h thumb-entry.d}} "thumb-entry"} - {"thumb-rel32" "-static -T arm.ld" "" {thumb-rel32.s} + {"thumb-rel32" "-static -T arm.ld" "" "" {thumb-rel32.s} {{objdump -s thumb-rel32.d}} "thumb-rel32"} - {"MOVW/MOVT" "-static -T arm.ld" "" {arm-movwt.s} + {"MOVW/MOVT" "-static -T arm.ld" "" "" {arm-movwt.s} {{objdump -dw arm-movwt.d}} "arm-movwt"} - {"BE8 Mapping Symbols" "-static -T arm.ld -EB --be8" "-EB" {arm-be8.s} + {"BE8 Mapping Symbols" "-static -T arm.ld -EB --be8" "" "-EB" {arm-be8.s} {{objdump -d arm-be8.d}} "arm-be8"} {"VFP11 denorm erratum fix, scalar operation" - "-EL --vfp11-denorm-fix=scalar -Ttext=0x8000" "-EL -mfpu=vfpxd" {vfp11-fix-scalar.s} + "-EL --vfp11-denorm-fix=scalar -Ttext=0x8000" "" "-EL -mfpu=vfpxd" {vfp11-fix-scalar.s} {{objdump -dr vfp11-fix-scalar.d}} "vfp11-fix-scalar"} {"VFP11 denorm erratum fix, vector operation" - "-EB --vfp11-denorm-fix=vector -Ttext=0x8000" "-EB -mfpu=vfpxd" {vfp11-fix-vector.s} + "-EB --vfp11-denorm-fix=vector -Ttext=0x8000" "" "-EB -mfpu=vfpxd" {vfp11-fix-vector.s} {{objdump -dr vfp11-fix-vector.d}} "vfp11-fix-vector"} {"VFP11 denorm erratum fix, embedded code-like data" - "-EL --vfp11-denorm-fix=scalar -Ttext=0x8000" "-EL -mfpu=vfpxd" {vfp11-fix-none.s} + "-EL --vfp11-denorm-fix=scalar -Ttext=0x8000" "" "-EL -mfpu=vfpxd" {vfp11-fix-none.s} {{objdump -dr vfp11-fix-none.d}} "vfp11-fix-none"} {"Cortex-A8 erratum fix, b.w" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-b.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-b.s} {{objdump -dr cortex-a8-fix-b.d}} "cortex-a8-fix-b"} {"Cortex-A8 erratum fix, bl.w" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-bl.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-bl.s} {{objdump -dr cortex-a8-fix-bl.d}} "cortex-a8-fix-bl"} {"Cortex-A8 erratum fix, bcc.w" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-bcc.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-bcc.s} {{objdump -dr cortex-a8-fix-bcc.d}} "cortex-a8-fix-bcc"} {"Cortex-A8 erratum fix, blx.w" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-blx.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-blx.s} {{objdump -dr cortex-a8-fix-blx.d}} "cortex-a8-fix-blx"} {"Cortex-A8 erratum fix, relocate b.w to ARM" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-b-rel.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-b-rel.s} {{objdump -dr cortex-a8-fix-b-rel-arm.d}} "cortex-a8-fix-b-rel-arm"} {"Cortex-A8 erratum fix, relocate b.w to Thumb" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-b-rel.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-b-rel.s} {{objdump -dr cortex-a8-fix-b-rel-thumb.d}} "cortex-a8-fix-b-rel-thumb"} {"Cortex-A8 erratum fix, relocate bl.w to ARM" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-bl-rel.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-bl-rel.s} {{objdump -dr cortex-a8-fix-bl-rel-arm.d}} "cortex-a8-fix-bl-rel-arm"} {"Cortex-A8 erratum fix, relocate bl.w to Thumb" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s} {{objdump -dr cortex-a8-fix-bl-rel-thumb.d}} "cortex-a8-fix-bl-rel-thumb"} {"Cortex-A8 erratum fix, relocate b<cond>.w to Thumb" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bcc-rel.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bcc-rel.s} {{objdump -dr cortex-a8-fix-bcc-rel-thumb.d}} "cortex-a8-fix-bcc-rel-thumb"} {"Cortex-A8 erratum fix, relocate blx.w to ARM" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-blx-rel.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-blx-rel.s} {{objdump -dr cortex-a8-fix-blx-rel-arm.d}} "cortex-a8-fix-blx-rel-arm"} {"Cortex-A8 erratum fix, relocate blx.w to Thumb" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-blx-rel.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-blx-rel.s} {{objdump -dr cortex-a8-fix-blx-rel-thumb.d}} "cortex-a8-fix-blx-rel-thumb"} {"Cortex-A8 erratum fix, relocate bl.w and far call" - "-EL -Ttext=0x00 --fix-cortex-a8 --defsym _start=0" + "-EL -Ttext=0x00 --fix-cortex-a8 --defsym _start=0" "" "-EL -mcpu=cortex-a8" {cortex-a8-far-1.s cortex-a8-far-2.s cortex-a8-far-3.s} {{objdump -dr cortex-a8-far.d}} "cortex-a8-far"} {"Cortex-A8 erratum fix, headers" - "-EL --fix-cortex-a8 -T cortex-a8-fix-hdr.t" + "-EL --fix-cortex-a8 -T cortex-a8-fix-hdr.t" "" "-EL -mcpu=cortex-a8" {cortex-a8-fix-hdr.s} {{objdump -dr cortex-a8-fix-hdr.d}} "cortex-a8-fix-hdr"} {"Cortex-A8 erratum fix, blx.w and b<cond>.w together" - "-EL -Ttext=0x8f00 --fix-cortex-a8" "-EL" {cortex-a8-fix-blx-bcond.s} + "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-blx-bcond.s} {{objdump -dr cortex-a8-fix-blx-bcond.d}} "cortex-a8-fix-blx-bcond"} - {"Unwinding and -gc-sections" "-gc-sections" "" {gc-unwind.s} + {"Unwinding and -gc-sections" "-gc-sections" "" "" {gc-unwind.s} {{objdump -sj.data gc-unwind.d}} "gc-unwind"} - {"Thumb and -gc-sections" "-shared -T arm-dyn.ld" "" {gc-thumb-lib.s} + {"Thumb and -gc-sections" "-shared -T arm-dyn.ld" "" "" {gc-thumb-lib.s} {} "gc-thumb-lib.so"} - {"Thumb and -gc-sections" "-pie -T arm.ld -gc-sections tmpdir/gc-thumb-lib.so" "" {gc-thumb.s} + {"Thumb and -gc-sections" "-pie -T arm.ld -gc-sections tmpdir/gc-thumb-lib.so" "" "" {gc-thumb.s} {{readelf --relocs gc-thumb.d}} "gc-thumb"} - {"arm-pic-veneer" "-static -T arm.ld --pic-veneer" "" {arm-pic-veneer.s} + {"arm-pic-veneer" "-static -T arm.ld --pic-veneer" "" "" {arm-pic-veneer.s} {{objdump -d arm-pic-veneer.d}} "arm-pic-veneer"} - {"jump19" "-static -T arm.ld" "" {jump19.s} + {"jump19" "-static -T arm.ld" "" "" {jump19.s} {{objdump -dr jump19.d}} "jump19"} - {"script-type" "-static -T script-type.ld" "" {script-type.s} + {"script-type" "-static -T script-type.ld" "" "" {script-type.s} {{readelf -s script-type.sym}} "script-type"} - {"callweak" "-static -T arm.ld" "" {callweak.s} + {"callweak" "-static -T arm.ld" "" "" {callweak.s} {{objdump -dr callweak.d}} "callweak"} - {"callweak-2" "-static -T arm.ld" "" {callweak-2.s} + {"callweak-2" "-static -T arm.ld" "" "" {callweak-2.s} {{objdump -dr callweak-2.d}} "callweak-2"} - {"Relocation boundaries" "-defsym x=0 -defsym y=0 -defsym _start=0" "" {reloc-boundaries.s} + {"Relocation boundaries" "-defsym x=0 -defsym y=0 -defsym _start=0" "" "" {reloc-boundaries.s} {{objdump -s reloc-boundaries.d}} "reloc-boundaries"} - {"Data only mapping symbols" "-T data-only-map.ld -Map map" "" {data-only-map.s} + {"Data only mapping symbols" "-T data-only-map.ld -Map map" "" "" {data-only-map.s} {{objdump -dr data-only-map.d}} "data-only-map"} - {"Data only mapping symbols for merged sections" "-T rodata-merge-map.ld" "" {rodata-merge-map1.s rodata-merge-map2.s rodata-merge-map3.s} + {"Data only mapping symbols for merged sections" "-T rodata-merge-map.ld" "" "" {rodata-merge-map1.s rodata-merge-map2.s rodata-merge-map3.s} {{readelf -s rodata-merge-map.sym}} "rodata-merge-map"} - {"GOT relocations in executables (setup)" "-shared" + {"GOT relocations in executables (setup)" "-shared" "" "" {exec-got-1a.s} {} "exec-got-1.so"} - {"GOT relocations in executables" "tmpdir/exec-got-1.so" + {"GOT relocations in executables" "tmpdir/exec-got-1.so" "" "" {exec-got-1b.s} {{readelf --relocs exec-got-1.d}} "exec-got-1"} - {"abs call" "-T arm.ld" "" {abs-call-1.s} + {"abs call" "-T arm.ld" "" "" {abs-call-1.s} {{objdump -d abs-call-1.d}} "abs-call-1"} - {"Simple non-PIC shared library (no PLT check)" "-shared" "" {arm-lib.s} + {"Simple non-PIC shared library (no PLT check)" "-shared" "" "" {arm-lib.s} {{objdump -Rw arm-lib.r}} "arm-lib.so"} - {"EABI soft-float ET_EXEC ABI flag" "-T arm.ld" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s} + {"EABI soft-float ET_EXEC ABI flag" "-T arm.ld" "" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s} {{readelf -h eabi-soft-float.d}} "eabi-soft-float"} - {"EABI hard-float ET_EXEC ABI flag" "-T arm.ld" "-mfloat-abi=hard -meabi=5" {eabi-hard-float.s} + {"EABI hard-float ET_EXEC ABI flag" "-T arm.ld" "" "-mfloat-abi=hard -meabi=5" {eabi-hard-float.s} {{readelf -h eabi-hard-float.d}} "eabi-hard-float"} - {"EABI hard-float ET_DYN ABI flag" "-shared" "-mfloat-abi=hard -meabi=5" {eabi-hard-float.s} + {"EABI hard-float ET_DYN ABI flag" "-shared" "" "-mfloat-abi=hard -meabi=5" {eabi-hard-float.s} {{readelf -h eabi-hard-float.d}} "eabi-hard-float.so"} - {"EABI ABI flags wrong ABI version" "-T arm.ld" "-mfloat-abi=soft -meabi=4" {eabi-soft-float.s} + {"EABI ABI flags wrong ABI version" "-T arm.ld" "" "-mfloat-abi=soft -meabi=4" {eabi-soft-float.s} {{readelf -h eabi-soft-float-ABI4.d}} "eabi-soft-float-no-flags"} - {"EABI ABI flags ld -r" "-r" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s} + {"EABI ABI flags ld -r" "-r" "" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s} {{readelf -h eabi-soft-float-r.d}} "eabi-soft-float-r.o"} } set armelftests_nonacl { - {"Simple non-PIC shared library" "-shared" "" {arm-lib.s} + {"Simple non-PIC shared library" "-shared" "" "" {arm-lib.s} {{objdump -fdw arm-lib.d} {objdump -Rw arm-lib.r}} "arm-lib.so"} - {"Simple PIC shared library" "-shared" "" {arm-lib-plt32.s} + {"Simple PIC shared library" "-shared" "" "" {arm-lib-plt32.s} {{objdump -fdw arm-lib-plt32.d} {objdump -Rw arm-lib-plt32.r}} "arm-lib-plt32.so"} - {"Simple dynamic application" "tmpdir/arm-lib.so" "" {arm-app.s} + {"Simple dynamic application" "tmpdir/arm-lib.so" "" "" {arm-app.s} {{objdump -fdw arm-app.d} {objdump -Rw arm-app.r}} "arm-app"} {"Simple static application without .rel.plt in linker script" - "-T arm-no-rel-plt.ld" "" {arm-static-app.s} + "-T arm-no-rel-plt.ld" "" "" {arm-static-app.s} {{objdump -fdw arm-static-app.d} {objdump -rw arm-static-app.r}} "arm-static-app"} {"Simple dynamic application without .rel.plt in linker script" - "tmpdir/arm-lib.so -T arm-no-rel-plt.ld" "" {arm-app.s} + "tmpdir/arm-lib.so -T arm-no-rel-plt.ld" "" "" {arm-app.s} {{ld arm-no-rel-plt.out}} "arm-app"} - {"Non-pcrel function reference" "tmpdir/arm-lib.so" "" {arm-app-abs32.s} + {"Non-pcrel function reference" "tmpdir/arm-lib.so" "" "" {arm-app-abs32.s} {{objdump -fdw arm-app-abs32.d} {objdump -Rw arm-app-abs32.r}} "arm-app-abs32"} - {"Thumb shared library with ARM entry points" "-shared -T arm-lib.ld" "-mthumb-interwork" + {"Thumb shared library with ARM entry points" "-shared -T arm-lib.ld" "" "-mthumb-interwork" {mixed-lib.s} {{objdump -fdw armthumb-lib.d} {readelf -Ds armthumb-lib.sym}} "armthumb-lib.so"} - {"Mixed ARM/Thumb shared library" "-shared -T arm-lib.ld -use-blx" "" + {"Mixed ARM/Thumb shared library" "-shared -T arm-lib.ld -use-blx" "" "" {mixed-lib.s} {{objdump -fdw mixed-lib.d} {objdump -Rw mixed-lib.r} {readelf -Ds mixed-lib.sym}} "mixed-lib.so"} - {"Mixed ARM/Thumb dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld" "" + {"Mixed ARM/Thumb dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld" "" "" {mixed-app.s} {{objdump -fdw mixed-app.d} {objdump -Rw mixed-app.r} {readelf -Ds mixed-app.sym}} "mixed-app"} - {"Mixed ARM/Thumb arch5 dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" + {"Mixed ARM/Thumb arch5 dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" "" {mixed-app.s} {{objdump -fdw mixed-app-v5.d} {objdump -Rw mixed-app.r} {readelf -Ds mixed-app.sym}} "mixed-app-v5"} - {"Using Thumb lib by another lib" "-shared tmpdir/mixed-lib.so" "" {use-thumb-lib.s} + {"Using Thumb lib by another lib" "-shared tmpdir/mixed-lib.so" "" "" {use-thumb-lib.s} {{readelf -Ds use-thumb-lib.sym}} "use-thumb-lib.so"} - {"Preempt Thumb symbol" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" + {"Preempt Thumb symbol" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" "" {preempt-app.s} {{readelf -Ds preempt-app.sym}} "preempt-app"} - {"TLS gnu shared library inlined trampoline" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-descseq.s} + {"TLS gnu shared library inlined trampoline" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" "" {tls-descseq.s} {{objdump -fdw tls-descseq.d} {objdump -Rw tls-descseq.r}} "tls-lib2inline.so"} - {"TLS shared library gdesc local" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-lib-loc.s} + {"TLS shared library gdesc local" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" "" {tls-lib-loc.s} {{objdump -fdw tls-lib-loc.d} {objdump -Rw tls-lib-loc.r}} "tls-lib-loc.so"} {"Cortex-A8 erratum fix, b.w to PLT" - "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "-EL" + "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL" {cortex-a8-fix-b-plt.s} {{objdump -dr cortex-a8-fix-b-plt.d}} "cortex-a8-fix-b-plt"} {"Cortex-A8 erratum fix, bl.w to PLT" - "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "-EL" + "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL" {cortex-a8-fix-bl-plt.s} {{objdump -dr cortex-a8-fix-bl-plt.d}} "cortex-a8-fix-bl-plt"} {"Cortex-A8 erratum fix, bcc.w to PLT" - "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "-EL" + "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL" {cortex-a8-fix-bcc-plt.s} {{objdump -dr cortex-a8-fix-bcc-plt.d}} "cortex-a8-fix-bcc-plt"} {"Cortex-A8 erratum fix, blx.w to PLT" - "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "-EL" + "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL" {cortex-a8-fix-blx-plt.s} {{objdump -dr cortex-a8-fix-blx-plt.d}} "cortex-a8-fix-blx-plt"} {"Cortex-A8 erratum fix, relocate bl.w to PLT" - "-EL --section-start=.plt=0x8e00 -Ttext=0x8f00 --fix-cortex-a8 -shared" + "-EL --section-start=.plt=0x8e00 -Ttext=0x8f00 --fix-cortex-a8 -shared" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s} {{objdump -dr cortex-a8-fix-bl-rel-plt.d}} "cortex-a8-fix-bl-rel-thumb"} - {"IFUNC test 1" "-T ifunc-static.ld" "" {ifunc-1.s} + {"IFUNC test 1" "-T ifunc-static.ld" "" "" {ifunc-1.s} {{objdump -d ifunc-1.dd} {objdump {-s -j.data -j.got} ifunc-1.gd} {readelf -dr ifunc-1.rd}} "ifunc-1"} - {"IFUNC test 2" "-T ifunc-static.ld" "" {ifunc-2.s} + {"IFUNC test 2" "-T ifunc-static.ld" "" "" {ifunc-2.s} {{objdump -d ifunc-2.dd} {objdump {-s -j.data -j.got} ifunc-2.gd} {readelf -dr ifunc-2.rd}} "ifunc-2"} - {"IFUNC test 3" "-T ifunc-dynamic.ld -shared" "" {ifunc-3.s} + {"IFUNC test 3" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-3.s} {{objdump -d ifunc-3.dd} {objdump {-s -j.data -j.got} ifunc-3.gd} {readelf -r ifunc-3.rd}} "ifunc-3.so"} - {"IFUNC test 4" "-T ifunc-dynamic.ld -shared" "" {ifunc-4.s} + {"IFUNC test 4" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-4.s} {{objdump -d ifunc-4.dd} {objdump {-s -j.data -j.got} ifunc-4.gd} {readelf -r ifunc-4.rd}} "ifunc-4.so"} - {"IFUNC test 5" "-T ifunc-static.ld" "" {ifunc-5.s} + {"IFUNC test 5" "-T ifunc-static.ld" "" "" {ifunc-5.s} {{objdump -d ifunc-5.dd} {objdump {-s -j.data -j.got} ifunc-5.gd} {readelf -dr ifunc-5.rd}} "ifunc-5"} - {"IFUNC test 6" "-T ifunc-static.ld" "" {ifunc-6.s} + {"IFUNC test 6" "-T ifunc-static.ld" "" "" {ifunc-6.s} {{objdump -d ifunc-6.dd} {objdump {-s -j.data -j.got} ifunc-6.gd} {readelf -dr ifunc-6.rd}} "ifunc-6"} - {"IFUNC test 7" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so -shared" + {"IFUNC test 7" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so -shared" "" "" {ifunc-7.s} {{objdump -d ifunc-7.dd} {objdump {-s -j.data -j.got} ifunc-7.gd} {readelf -r ifunc-7.rd}} "ifunc-7.so"} - {"IFUNC test 8" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so -shared" + {"IFUNC test 8" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so -shared" "" "" {ifunc-8.s} {{objdump -d ifunc-8.dd} {objdump {-s -j.data -j.got} ifunc-8.gd} {readelf -r ifunc-8.rd}} "ifunc-8.so"} - {"IFUNC test 9" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so" "" {ifunc-9.s} + {"IFUNC test 9" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so" "" "" {ifunc-9.s} {{objdump -d ifunc-9.dd} {objdump {-s -j.data -j.got} ifunc-9.gd} {readelf -r ifunc-9.rd}} "ifunc-9"} - {"IFUNC test 10" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so" "" {ifunc-10.s} + {"IFUNC test 10" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so" "" "" {ifunc-10.s} {{objdump -d ifunc-10.dd} {objdump {-s -j.data -j.got} ifunc-10.gd} {readelf -r ifunc-10.rd}} "ifunc-10"} - {"IFUNC test 11" "-T ifunc-static.ld" "" {ifunc-11.s} + {"IFUNC test 11" "-T ifunc-static.ld" "" "" {ifunc-11.s} {{objdump -d ifunc-11.dd} {objdump {-s -j.data -j.got} ifunc-11.gd} {readelf -dr ifunc-11.rd}} "ifunc-11"} - {"IFUNC test 12" "-T ifunc-dynamic.ld -shared" "" {ifunc-12.s} + {"IFUNC test 12" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-12.s} {{objdump -d ifunc-12.dd} {objdump {-s -j.data -j.got} ifunc-12.gd} {readelf -r ifunc-12.rd}} "ifunc-12.so"} - {"IFUNC test 13" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" {ifunc-13.s} + {"IFUNC test 13" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-13.s} {{objdump -d ifunc-13.dd} {objdump {-s -j.data -j.got} ifunc-13.gd} {readelf -r ifunc-13.rd}} "ifunc-13"} - {"IFUNC test 14" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" {ifunc-14.s} + {"IFUNC test 14" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-14.s} {{objdump -d ifunc-14.dd} {objdump {-s -j.data -j.got} ifunc-14.gd} {readelf -r ifunc-14.rd}} "ifunc-14"} - {"IFUNC test 15" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" {ifunc-15.s} + {"IFUNC test 15" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-15.s} {{objdump -d ifunc-15.dd} {objdump {-s -j.data -j.got} ifunc-15.gd} {readelf -r ifunc-15.rd}} "ifunc-15"} - {"IFUNC test 16" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" {ifunc-16.s} + {"IFUNC test 16" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-16.s} {{objdump -d ifunc-16.dd} {objdump {-s -j.data -j.got} ifunc-16.gd} {readelf -r ifunc-16.rd}} @@ -475,10 +475,10 @@ if { ![istarget "arm*-*-*eabi"] && ![istarget "arm*-*-nacl*"] } { # there are no attributes to indicate that blx can be used. set arm_noeabi_tests { - {"Thumb-2-as-Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-as-thumb1-bad.s} + {"Thumb-2-as-Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-as-thumb1-bad.s} {{objdump -d thumb2-bl-as-thumb1-bad-noeabi.d}} "thumb2-bl-as-thumb1-bad"} - {"Thumb-2 BL bad" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-bad.s} + {"Thumb-2 BL bad" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-bad.s} {{objdump -d thumb2-bl-bad-noeabi.d}} "thumb2-bl-bad"} } @@ -489,238 +489,238 @@ if { ![istarget "arm*-*-*eabi"] && ![istarget "arm*-*-nacl*"] } { # Farcalls stubs are fully supported for ARM-EABI only set armeabitests_common { - {"EABI attribute merging" "-r" "" {attr-merge.s attr-merge.s} + {"EABI attribute merging" "-r" "" "" {attr-merge.s attr-merge.s} {{readelf -A attr-merge.attr}} "attr-merge"} - {"EABI attribute merging 2" "-r" "" {attr-merge-2a.s attr-merge-2b.s} + {"EABI attribute merging 2" "-r" "" "" {attr-merge-2a.s attr-merge-2b.s} {{readelf -A attr-merge-2.attr}} "attr-merge-2"} - {"EABI attribute merging 3" "-r" "" {attr-merge-3a.s attr-merge-3b.s} + {"EABI attribute merging 3" "-r" "" "" {attr-merge-3a.s attr-merge-3b.s} {{readelf -A attr-merge-3.attr}} "attr-merge-3"} - {"EABI attribute merging 4" "-r" "" {attr-merge-4a.s attr-merge-4b.s} + {"EABI attribute merging 4" "-r" "" "" {attr-merge-4a.s attr-merge-4b.s} {{readelf -A attr-merge-4.attr}} "attr-merge-4"} - {"EABI attribute merging 5" "-r" "" {attr-merge-5.s attr-merge-5.s} + {"EABI attribute merging 5" "-r" "" "" {attr-merge-5.s attr-merge-5.s} {{readelf -A attr-merge-5.attr}} "attr-merge-5"} - {"EABI attribute merging 6" "-r" "" {attr-merge-6a.s attr-merge-6b.s} + {"EABI attribute merging 6" "-r" "" "" {attr-merge-6a.s attr-merge-6b.s} {{readelf -A attr-merge-6.attr}} "attr-merge-6"} - {"EABI attribute merging 6 reversed" "-r" "" {attr-merge-6b.s attr-merge-6a.s} + {"EABI attribute merging 6 reversed" "-r" "" "" {attr-merge-6b.s attr-merge-6a.s} {{readelf -A attr-merge-6.attr}} "attr-merge-6r"} - {"EABI attribute merging 7" "-r" "" {attr-merge-7a.s attr-merge-7b.s} + {"EABI attribute merging 7" "-r" "" "" {attr-merge-7a.s attr-merge-7b.s} {{readelf -A attr-merge-7.attr}} "attr-merge-7"} - {"EABI attribute arch merging 1" "-r" "" {arch-v6k.s arch-v6t2.s} + {"EABI attribute arch merging 1" "-r" "" "" {arch-v6k.s arch-v6t2.s} {{readelf -A attr-merge-arch-1.attr}} "attr-merge-arch-1"} - {"EABI attribute arch merging 1 reversed" "-r" "" {arch-v6t2.s arch-v6k.s} + {"EABI attribute arch merging 1 reversed" "-r" "" "" {arch-v6t2.s arch-v6k.s} {{readelf -A attr-merge-arch-1.attr}} "attr-merge-arch-1r"} - {"EABI attribute arch merging 2" "-r" "" {arch-v6k.s arch-v6.s} + {"EABI attribute arch merging 2" "-r" "" "" {arch-v6k.s arch-v6.s} {{readelf -A attr-merge-arch-2.attr}} "attr-merge-arch-2"} - {"EABI attribute arch merging 2 reversed" "-r" "" {arch-v6.s arch-v6k.s} + {"EABI attribute arch merging 2 reversed" "-r" "" "" {arch-v6.s arch-v6k.s} {{readelf -A attr-merge-arch-2.attr}} "attr-merge-arch-2r"} - {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x1001000" "" {thumb2-bl.s} + {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x1001000" "" "" {thumb2-bl.s} {{objdump -dr thumb2-bl.d}} "thumb2-bl"} - {"Thumb-2 Interworked branch" "-T arm.ld" "" {thumb2-b-interwork.s} + {"Thumb-2 Interworked branch" "-T arm.ld" "" "" {thumb2-b-interwork.s} {{objdump -dr thumb2-b-interwork.d}} "thumb2-b-interwork"} - {"BL/BLX interworking" "-T arm.ld" "" {thumb2-bl-blx-interwork.s} + {"BL/BLX interworking" "-T arm.ld" "" "" {thumb2-bl-blx-interwork.s} {{objdump -dr thumb2-bl-blx-interwork.d}} "thumb2-bl-blx-interwork"} - {"ARMv4 interworking" "-static -T arm.ld --fix-v4bx-interworking" "--fix-v4bx -meabi=4" {armv4-bx.s} + {"ARMv4 interworking" "-static -T arm.ld --fix-v4bx-interworking" "" "--fix-v4bx -meabi=4" {armv4-bx.s} {{objdump -d armv4-bx.d}} "armv4-bx"} - {"MOVW/MOVT and merged sections" "-T arm.ld" "" {movw-merge.s} + {"MOVW/MOVT and merged sections" "-T arm.ld" "" "" {movw-merge.s} {{objdump -dw movw-merge.d}} "movw-merge"} - {"MOVW/MOVT against shared libraries" "tmpdir/arm-lib.so" "" {arm-app-movw.s} + {"MOVW/MOVT against shared libraries" "tmpdir/arm-lib.so" "" "" {arm-app-movw.s} {{objdump -Rw arm-app.r}} "arm-app-movw"} - {"Thumb-2-as-Thumb-1 BL" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-as-thumb1-bad.s} + {"Thumb-2-as-Thumb-1 BL" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-as-thumb1-bad.s} {{objdump -d thumb2-bl-as-thumb1-bad.d}} "thumb2-bl-as-thumb1-bad"} - {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-bad.s} + {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-bad.s} {{objdump -d thumb2-bl-bad.d}} "thumb2-bl-bad"} - {"ARM-ARM farcall" "-Ttext 0x1000 --section-start .foo=0x2001020" "" {farcall-arm-arm.s} + {"ARM-ARM farcall" "-Ttext 0x1000 --section-start .foo=0x2001020" "" "" {farcall-arm-arm.s} {{objdump -d farcall-arm-arm.d}} "farcall-arm-arm"} - {"ARM-ARM farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001020 --pic-veneer" "" {farcall-arm-arm.s} + {"ARM-ARM farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001020 --pic-veneer" "" "" {farcall-arm-arm.s} {{objdump -d farcall-arm-arm-pic-veneer.d}} "farcall-arm-arm-pic-veneer"} - {"ARM-ARM farcall (BE8)" "-Ttext 0x1000 --section-start .foo=0x2001020 -EB --be8" "-EB" {farcall-arm-arm.s} + {"ARM-ARM farcall (BE8)" "-Ttext 0x1000 --section-start .foo=0x2001020 -EB --be8" "" "-EB" {farcall-arm-arm.s} {{objdump -d farcall-arm-arm.d}} "farcall-arm-arm-be8"} - {"ARM-ARM farcall (BE)" "-Ttext 0x1000 --section-start .foo=0x2001020 -EB" "-EB" {farcall-arm-arm.s} + {"ARM-ARM farcall (BE)" "-Ttext 0x1000 --section-start .foo=0x2001020 -EB" "" "-EB" {farcall-arm-arm.s} {{objdump -d farcall-arm-arm.d}} "farcall-arm-arm-be"} - {"Multiple farcalls" "-Ttext 0x1000 --section-start .foo=0x2002020" "" {farcall-mix.s} + {"Multiple farcalls" "-Ttext 0x1000 --section-start .foo=0x2002020" "" "" {farcall-mix.s} {{objdump -d farcall-mix.d}} "farcall-mix"} - {"Multiple farcalls from several sections" "-Ttext 0x1000 --section-start .mytext=0x2000 --section-start .foo=0x2003020" "" {farcall-mix2.s} + {"Multiple farcalls from several sections" "-Ttext 0x1000 --section-start .mytext=0x2000 --section-start .foo=0x2003020" "" "" {farcall-mix2.s} {{objdump -d farcall-mix2.d}} "farcall-mix2"} - {"Default group size" "-Ttext 0x1000 --section-start .foo=0x2003020" "" {farcall-group.s farcall-group2.s} + {"Default group size" "-Ttext 0x1000 --section-start .foo=0x2003020" "" "" {farcall-group.s farcall-group2.s} {{objdump -d farcall-group.d}} "farcall-group-default"} - {"Group size=2" "-Ttext 0x1000 --section-start .foo=0x2003020 --stub-group-size=2" "" {farcall-group.s farcall-group2.s} + {"Group size=2" "-Ttext 0x1000 --section-start .foo=0x2003020 --stub-group-size=2" "" "" {farcall-group.s farcall-group2.s} {{objdump -d farcall-group-size2.d}} "farcall-group-size2"} - {"Group size limit" "-Ttext 0x1000 --section-start .far=0x2003020" "" {farcall-group3.s farcall-group4.s} + {"Group size limit" "-Ttext 0x1000 --section-start .far=0x2003020" "" "" {farcall-group3.s farcall-group4.s} {{objdump -d farcall-group-limit.d}} "farcall-group-limit"} - {"Long branch with mixed text and data" "-T arm.ld" "" {farcall-data.s} + {"Long branch with mixed text and data" "-T arm.ld" "" "" {farcall-data.s} {{objdump -dr farcall-data.d}} "farcall-data"} {"R_ARM_THM_JUMP24 Relocation veneers: Short 1" - "--no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000" + "--no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000" "" "-march=armv7-a -mthumb" {jump-reloc-veneers.s} {{objdump -d jump-reloc-veneers-short1.d}} "jump-reloc-veneers-short1"} {"R_ARM_THM_JUMP24 Relocation veneers: Short 2" - "--no-fix-arm1176 --section-start destsect=0x00900000 --section-start .text=0x8000" + "--no-fix-arm1176 --section-start destsect=0x00900000 --section-start .text=0x8000" "" "-march=armv7-a -mthumb" {jump-reloc-veneers.s} {{objdump -d jump-reloc-veneers-short2.d}} "jump-reloc-veneers-short2"} {"R_ARM_THM_JUMP24 Relocation veneers: Long" - "--no-fix-arm1176 --section-start destsect=0x09000000 --section-start .text=0x8000" + "--no-fix-arm1176 --section-start destsect=0x09000000 --section-start .text=0x8000" "" "-march=armv7-a -mthumb" {jump-reloc-veneers.s} {{objdump -d jump-reloc-veneers-long.d}} "jump-reloc-veneers-long"} - {"erratum 760522 fix (default for v6z)" "--section-start=.foo=0x2001014" + {"erratum 760522 fix (default for v6z)" "--section-start=.foo=0x2001014" "" "-march=armv6z" {fix-arm1176.s} {{objdump -d fix-arm1176-on.d}} "fix-arm1176-1"} - {"erratum 760522 fix (explicitly on at v6z)" "--section-start=.foo=0x2001014 --fix-arm1176" + {"erratum 760522 fix (explicitly on at v6z)" "--section-start=.foo=0x2001014 --fix-arm1176" "" "-march=armv6z" {fix-arm1176.s} {{objdump -d fix-arm1176-on.d}} "fix-arm1176-2"} - {"erratum 760522 fix (explicitly off at v6z)" "--section-start=.foo=0x2001014 --no-fix-arm1176" + {"erratum 760522 fix (explicitly off at v6z)" "--section-start=.foo=0x2001014 --no-fix-arm1176" "" "-march=armv6z" {fix-arm1176.s} {{objdump -d fix-arm1176-off.d}} "fix-arm1176-3"} - {"erratum 760522 fix (default for v5)" "--section-start=.foo=0x2001014 " + {"erratum 760522 fix (default for v5)" "--section-start=.foo=0x2001014 " "" "-march=armv5te" {fix-arm1176.s} {{objdump -d fix-arm1176-on.d}} "fix-arm1176-4"} - {"erratum 760522 fix (default for v7-a)" "--section-start=.foo=0x2001014 " + {"erratum 760522 fix (default for v7-a)" "--section-start=.foo=0x2001014 " "" "-march=armv7-a" {fix-arm1176.s} {{objdump -d fix-arm1176-off.d}} "fix-arm1176-5"} - {"erratum 760522 fix (default for ARM1156)" "--section-start=.foo=0x2001014 " + {"erratum 760522 fix (default for ARM1156)" "--section-start=.foo=0x2001014 " "" "-mcpu=arm1156t2f-s" {fix-arm1176.s} {{objdump -d fix-arm1176-off.d}} "fix-arm1176-6"} } set armeabitests_nonacl { - {"ARM-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "" {farcall-arm-thumb.s} + {"ARM-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "" "" {farcall-arm-thumb.s} {{objdump -d farcall-arm-thumb.d}} "farcall-arm-thumb"} - {"ARM-Thumb farcall with BLX" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-arm-thumb.s} + {"ARM-Thumb farcall with BLX" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014" "" "-march=armv5t" {farcall-arm-thumb.s} {{objdump -d farcall-arm-thumb-blx.d}} "farcall-arm-thumb-blx"} - {"ARM-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" {farcall-arm-thumb.s} + {"ARM-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" "" {farcall-arm-thumb.s} {{objdump -d farcall-arm-thumb-pic-veneer.d}} "farcall-arm-thumb-pic-veneer"} - {"ARM-Thumb farcall with BLX (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv5t" {farcall-arm-thumb.s} + {"ARM-Thumb farcall with BLX (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" "-march=armv5t" {farcall-arm-thumb.s} {{objdump -d farcall-arm-thumb-blx-pic-veneer.d}} "farcall-arm-thumb-blx-pic-veneer"} - {"Thumb-Thumb farcall with BLX" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-thumb-thumb.s} + {"Thumb-Thumb farcall with BLX" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014" "" "-march=armv5t" {farcall-thumb-thumb.s} {{objdump -d farcall-thumb-thumb-blx.d}} "farcall-thumb-thumb-blx"} - {"Thumb-Thumb farcall M profile" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv7-m" {farcall-thumb-thumb.s} + {"Thumb-Thumb farcall M profile" "-Ttext 0x1000 --section-start .foo=0x2001014" "" "-march=armv7-m" {farcall-thumb-thumb.s} {{objdump -d farcall-thumb-thumb-m.d}} "farcall-thumb-thumb-m"} - {"Thumb-Thumb farcall v6-M" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv6-m" {farcall-thumb-thumb.s} + {"Thumb-Thumb farcall v6-M" "-Ttext 0x1000 --section-start .foo=0x2001014" "" "-march=armv6-m" {farcall-thumb-thumb.s} {{objdump -d farcall-thumb-thumb-m.d}} "farcall-thumb-thumb-v6-m"} - {"Thumb-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv4t" {farcall-thumb-thumb.s} + {"Thumb-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "" "-march=armv4t" {farcall-thumb-thumb.s} {{objdump -d farcall-thumb-thumb.d}} "farcall-thumb-thumb"} - {"Thumb-Thumb farcall with BLX (PIC veneer)" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv5t" {farcall-thumb-thumb.s} + {"Thumb-Thumb farcall with BLX (PIC veneer)" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" "-march=armv5t" {farcall-thumb-thumb.s} {{objdump -d farcall-thumb-thumb-blx-pic-veneer.d}} "farcall-thumb-thumb-blx-pic-veneer"} - {"Thumb-Thumb farcall M profile (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv7-m" {farcall-thumb-thumb.s} + {"Thumb-Thumb farcall M profile (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" "-march=armv7-m" {farcall-thumb-thumb.s} {{objdump -d farcall-thumb-thumb-m-pic-veneer.d}} "farcall-thumb-thumb-m-pic-veneer"} - {"Thumb-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv4t" {farcall-thumb-thumb.s} + {"Thumb-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" "-march=armv4t" {farcall-thumb-thumb.s} {{objdump -d farcall-thumb-thumb-pic-veneer.d}} "farcall-thumb-thumb-pic-veneer"} - {"Thumb-ARM farcall" "-Ttext 0x1c01010 --section-start .foo=0x2001014" "-W" {farcall-thumb-arm.s} + {"Thumb-ARM farcall" "-Ttext 0x1c01010 --section-start .foo=0x2001014" "" "-W" {farcall-thumb-arm.s} {{objdump -d farcall-thumb-arm.d}} "farcall-thumb-arm"} - {"Thumb-ARM farcall (BE8)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 -EB --be8" "-W -EB" {farcall-thumb-arm.s} + {"Thumb-ARM farcall (BE8)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 -EB --be8" "" "-W -EB" {farcall-thumb-arm.s} {{objdump -d farcall-thumb-arm.d}} "farcall-thumb-arm-be8"} - {"Thumb-ARM farcall (BE)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 -EB" "-W -EB" {farcall-thumb-arm.s} + {"Thumb-ARM farcall (BE)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 -EB" "" "-W -EB" {farcall-thumb-arm.s} {{objdump -d farcall-thumb-arm.d}} "farcall-thumb-arm-be"} - {"Thumb-ARM (short) call" "-Ttext 0x1000 --section-start .foo=0x0002014" "-W" {farcall-thumb-arm-short.s} + {"Thumb-ARM (short) call" "-Ttext 0x1000 --section-start .foo=0x0002014" "" "-W" {farcall-thumb-arm-short.s} {{objdump -d farcall-thumb-arm-short.d}} "farcall-thumb-arm-short"} - {"Thumb-ARM farcall with BLX" "--no-fix-arm1176 -Ttext 0x1c01010 --section-start .foo=0x2001014" "-W -march=armv5t" {farcall-thumb-arm.s} + {"Thumb-ARM farcall with BLX" "--no-fix-arm1176 -Ttext 0x1c01010 --section-start .foo=0x2001014" "" "-W -march=armv5t" {farcall-thumb-arm.s} {{objdump -d farcall-thumb-arm-blx.d}} "farcall-thumb-arm-blx"} - {"Thumb-ARM farcall with BLX (PIC veneer)" "--no-fix-arm1176 -Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "-W -march=armv5t" {farcall-thumb-arm.s} + {"Thumb-ARM farcall with BLX (PIC veneer)" "--no-fix-arm1176 -Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "" "-W -march=armv5t" {farcall-thumb-arm.s} {{objdump -d farcall-thumb-arm-blx-pic-veneer.d}} "farcall-thumb-arm-blx-pic-veneer"} - {"Thumb-ARM farcall (PIC veneer)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "-W" {farcall-thumb-arm.s} + {"Thumb-ARM farcall (PIC veneer)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "" "-W" {farcall-thumb-arm.s} {{objdump -d farcall-thumb-arm-pic-veneer.d}} "farcall-thumb-arm-pic-veneer"} - {"Mixed ARM/Thumb dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" + {"Mixed ARM/Thumb dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" "" {farcall-mixed-app.s} {{objdump -fdw farcall-mixed-app.d} {objdump -Rw farcall-mixed-app.r} {readelf -Ds farcall-mixed-app.sym}} "farcall-mixed-app"} - {"Mixed ARM/Thumb arch5 dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" + {"Mixed ARM/Thumb arch5 dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" "" {farcall-mixed-app.s} {{objdump -fdw farcall-mixed-app-v5.d} {objdump -Rw farcall-mixed-app.r} {readelf -Ds farcall-mixed-app.sym}} "farcall-mixed-app-v5"} - {"Mixed ARM/Thumb shared library with long branches (v4t)" "-shared -T arm-lib.ld" "-march=armv4t" + {"Mixed ARM/Thumb shared library with long branches (v4t)" "-shared -T arm-lib.ld" "" "-march=armv4t" {farcall-mixed-lib1.s farcall-mixed-lib2.s} {{objdump -fdw farcall-mixed-lib-v4t.d}} "farcall-mixed-lib.so"} - {"Mixed ARM/Thumb shared library with long branches (v5t)" "--no-fix-arm1176 -shared -T arm-lib.ld" "-march=armv5t" + {"Mixed ARM/Thumb shared library with long branches (v5t)" "--no-fix-arm1176 -shared -T arm-lib.ld" "" "-march=armv5t" {farcall-mixed-lib1.s farcall-mixed-lib2.s} {{objdump -fdw farcall-mixed-lib.d}} "farcall-mixed-lib.so"} - {"TLS gnu shared library" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-gdesc.s} + {"TLS gnu shared library" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" "" {tls-gdesc.s} {{objdump -fdw tls-gdesc.d} {objdump -Rw tls-gdesc.r}} "tls-lib2.so"} - {"TLS gnu shared library non-lazy" "-z now -shared -T arm-dyn.ld" "" {tls-gdesc.s} + {"TLS gnu shared library non-lazy" "-z now -shared -T arm-dyn.ld" "" "" {tls-gdesc.s} {{readelf "-x .got" tls-gdesc-nlazy.g}} "tls-lib2-nlazy.so"} - {"TLS long plt library" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" {tls-longplt-lib.s} + {"TLS long plt library" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" "" {tls-longplt-lib.s} {{objdump -fdw tls-longplt-lib.d}} "tls-longplt-lib.so"} - {"TLS long plt" "-T arm-dyn.ld --section-start .foo=0x4001000 tmpdir/tls-longplt-lib.so" "" {tls-longplt.s} + {"TLS long plt" "-T arm-dyn.ld --section-start .foo=0x4001000 tmpdir/tls-longplt-lib.so" "" "" {tls-longplt.s} {{objdump -fdw tls-longplt.d}} "tls-longplt"} - {"TLS thumb1" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" {tls-thumb1.s} + {"TLS thumb1" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" "" {tls-thumb1.s} {{objdump -fdw tls-thumb1.d}} "tls-thumb1"} } diff --git a/ld/testsuite/ld-arm/export-class.exp b/ld/testsuite/ld-arm/export-class.exp index 2f8e866..1eeb9c3 100644 --- a/ld/testsuite/ld-arm/export-class.exp +++ b/ld/testsuite/ld-arm/export-class.exp @@ -37,7 +37,7 @@ set testname "ARM symbol export class test" run_ld_link_tests [list \ [list \ "$testname (auxiliary shared object)" \ - "-marmelf_linux_eabi -shared -version-script ../ld-elf/export-class-lib.ver" \ + "-marmelf_linux_eabi -shared -version-script ../ld-elf/export-class-lib.ver" "" \ "-EL" \ { ../ld-elf/export-class-lib.s } \ {} \ @@ -51,7 +51,7 @@ run_ld_link_tests [list \ run_ld_link_tests [list \ [list \ "$testname (initial static object)" \ - "-marmelf_linux_eabi -r" \ + "-marmelf_linux_eabi -r" "" \ "-EL" \ { ../ld-elf/export-class-ref.s } \ {} \ @@ -68,7 +68,7 @@ run_ld_link_tests [list \ run_ld_link_tests [list \ [list \ "$testname (final shared object)" \ - "-marmelf_linux_eabi -shared -Tdata=0x12340000 tmpdir/arm-export-class-ref-r.o tmpdir/arm-export-class-lib.so" \ + "-marmelf_linux_eabi -shared -Tdata=0x12340000 tmpdir/arm-export-class-ref-r.o tmpdir/arm-export-class-lib.so" "" \ "-EL" \ { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \ { \ diff --git a/ld/testsuite/ld-elf/comm-data.exp b/ld/testsuite/ld-elf/comm-data.exp index 71b856d..e180693 100644 --- a/ld/testsuite/ld-elf/comm-data.exp +++ b/ld/testsuite/ld-elf/comm-data.exp @@ -43,7 +43,7 @@ set testname "Common symbol override test" run_ld_link_tests [list \ [list \ "$testname (auxiliary shared object build)" \ - "-shared" \ + "-shared" "" \ "" \ { comm-data1.s } \ { \ @@ -67,7 +67,7 @@ setup_xfail "arm*-*-*" "ld/13802" run_ld_link_tests [list \ [list \ "$testname" \ - "-Ltmpdir -lcomm-data" \ + "-Ltmpdir -lcomm-data" "" \ "$AFLAGS" \ { comm-data2.s } \ { \ @@ -79,7 +79,7 @@ run_ld_link_tests [list \ ] \ [list \ "$testname 3a" \ - "-static" \ + "-static" "" \ "" \ { comm-data3a.s comm-data3b.s } \ { \ @@ -89,7 +89,7 @@ run_ld_link_tests [list \ ] \ [list \ "$testname 3b" \ - "-static" \ + "-static" "" \ "" \ { comm-data3b.s comm-data3a.s } \ { \ diff --git a/ld/testsuite/ld-elf/eh-group.exp b/ld/testsuite/ld-elf/eh-group.exp index 6de3ecb..6fe7058 100644 --- a/ld/testsuite/ld-elf/eh-group.exp +++ b/ld/testsuite/ld-elf/eh-group.exp @@ -58,7 +58,7 @@ if [is_elf64 "tmpdir/eh-group1size.o"] { set build_tests_ld [list \ [list "Build eh-group1.o" \ - "-r" "$as_options" \ + "-r" "" "$as_options" \ {eh-group1.s eh-group2.s} {} "eh-group.o"] \ ] diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp index 50634c6..236e15b 100644 --- a/ld/testsuite/ld-elf/elf.exp +++ b/ld/testsuite/ld-elf/elf.exp @@ -56,23 +56,23 @@ if { [is_remote host] } then { if { ![istarget hppa64*-hpux*] } { run_ld_link_tests { {"Build symbol3.a" - "" "" + "" "" "" {symbol3.s} {} "symbol3.a"} {"Build symbol3w.a" - "" "" + "" "" "" {symbol3w.s} {} "symbol3w.a"} } if { [check_shared_lib_support] } then { run_ld_link_tests { - {"Build pr14170a.o" "" "" "pr14170a.s" {} "pr14170.a" } + {"Build pr14170a.o" "" "" "" "pr14170a.s" {} "pr14170.a" } } setup_xfail "tic6x-*-*" run_ld_link_tests { {"Build shared library for pr14170" - "-shared" "" "pr14170b.s" {} "pr14170.so" } + "-shared" "" "" "pr14170b.s" {} "pr14170.so" } {"PR ld/14170" - "tmpdir/pr14170a.o tmpdir/pr14170.so" "" "pr14170c.s" + "tmpdir/pr14170a.o tmpdir/pr14170.so" "" "" "pr14170c.s" { } "pr14170" } } } @@ -88,9 +88,9 @@ if { [check_shared_lib_support] } then { setup_xfail "tic6x-*-*" run_ld_link_tests { {"Build shared library for next test" - "-shared" "" "note-3.s" {} "note-3.so" } + "-shared" "" "" "note-3.s" {} "note-3.so" } {"Link using broken linker script" - "--script note-3.t tmpdir/note-3.so" "" "" + "--script note-3.t tmpdir/note-3.so" "" "" "" { { ld "note-3.l" } } "a.out" } } @@ -108,11 +108,11 @@ if { [istarget *-*-linux*] || [istarget *-*-gnu*] } { run_ld_link_tests { {"Weak symbols in dynamic objects 1 (support)" - "-shared" "" {weak-dyn-1a.s} + "-shared" "" "" {weak-dyn-1a.s} {} "libweakdyn1a.so"} {"Weak symbols in dynamic objects 1 (main test)" - "-shared tmpdir/libweakdyn1a.so -Tweak-dyn-1.ld" "" {weak-dyn-1b.s} + "-shared tmpdir/libweakdyn1a.so -Tweak-dyn-1.ld" "" "" {weak-dyn-1b.s} {{readelf {--relocs --wide} weak-dyn-1.rd}} "libweakdyn1b.so"} } @@ -122,7 +122,7 @@ if { [istarget *-*-linux*] if { [check_gc_sections_available] && ![istarget "v850-*-*"] } { run_ld_link_tests { {"--gc-sections on tls variable" - "--gc-section" "" {tls_gc.s} {} "tls_gc"} + "--gc-section" "" "" {tls_gc.s} {} "tls_gc"} } } @@ -130,9 +130,9 @@ if { [istarget *-*-*linux*] || [istarget *-*-nacl*] || [istarget *-*-gnu*] } { run_ld_link_tests { - {"stack exec" "-z execstack" "" {stack.s} + {"stack exec" "-z execstack" "" "" {stack.s} {{readelf {-Wl} stack-exec.rd}} "stack-exec.exe"} - {"stack size" "-z stack-size=0x123400" "" {stack.s} + {"stack size" "-z stack-size=0x123400" "" "" {stack.s} {{readelf {-Wl} stack-size.rd}} "stack-size.exe"} } } diff --git a/ld/testsuite/ld-elf/export-class.exp b/ld/testsuite/ld-elf/export-class.exp index 81ce55a..38c635c 100644 --- a/ld/testsuite/ld-elf/export-class.exp +++ b/ld/testsuite/ld-elf/export-class.exp @@ -44,7 +44,7 @@ set testname "Symbol export class test" run_ld_link_tests [list \ [list \ "$testname (auxiliary shared object)" \ - "-shared -version-script export-class-lib.ver" \ + "-shared -version-script export-class-lib.ver" "" \ "" \ { export-class-lib.s } \ {} \ @@ -58,7 +58,7 @@ run_ld_link_tests [list \ run_ld_link_tests [list \ [list \ "$testname (initial static object)" \ - "-r" \ + "-r" "" \ "" \ { export-class-ref.s } \ {} \ @@ -75,7 +75,7 @@ run_ld_link_tests [list \ run_ld_link_tests [list \ [list \ "$testname (final shared object)" \ - "-shared -Tdata=0x12340000 tmpdir/export-class-ref-r.o tmpdir/export-class-lib.so" \ + "-shared -Tdata=0x12340000 tmpdir/export-class-ref-r.o tmpdir/export-class-lib.so" "" \ "" \ { export-class-dep.s export-class-def.s } \ { \ diff --git a/ld/testsuite/ld-elfvers/vers.exp b/ld/testsuite/ld-elfvers/vers.exp index 1e9ff53..39ee1b0 100644 --- a/ld/testsuite/ld-elfvers/vers.exp +++ b/ld/testsuite/ld-elfvers/vers.exp @@ -934,15 +934,15 @@ if [istarget sparc*-*-*] { set as_pic_flags "-K PIC" } run_ld_link_tests [list "\"vers24a\" - \"-shared --version-script $srcdir/$subdir/vers24.map\" + \"-shared --version-script $srcdir/$subdir/vers24.map\" \"\" \"$as_pic_flags $as_options\" {vers24a.c vers24b.c} { { readelf -Wrs vers24.rd } } \"libvers24a.so\" \"-fpic\""] run_ld_link_tests [list "\"vers24b\" - \"-shared --version-script $srcdir/$subdir/vers24.map\" + \"-shared --version-script $srcdir/$subdir/vers24.map\" \"\" \"$as_pic_flags $as_options\" {vers24b.c vers24a.c} { { readelf -Wrs vers24.rd } } \"libvers24b.so\" \"-fpic\""] run_ld_link_tests [list "\"vers24c\" - \"-shared --version-script $srcdir/$subdir/vers24.map\" + \"-shared --version-script $srcdir/$subdir/vers24.map\" \"\" \"$as_pic_flags $as_options\" {vers24c.c} { { readelf -Wrs vers24.rd } } \"libvers24c.so\" \"-fpic\""] diff --git a/ld/testsuite/ld-frv/tls.exp b/ld/testsuite/ld-frv/tls.exp index bb3d6a3..1266be7 100644 --- a/ld/testsuite/ld-frv/tls.exp +++ b/ld/testsuite/ld-frv/tls.exp @@ -31,7 +31,7 @@ global LDFLAGS set saved_LDFLAGS "$LDFLAGS" set LDFLAGS "$LDFLAGS -melf32frvfd" -run_ld_link_tests [list [list "tls-1-dep" "$LDFLAGS -shared" "" "tls-1-dep.s" [list] "tls-1-dep.so" ""]] +run_ld_link_tests [list [list "tls-1-dep" "$LDFLAGS -shared" "" "" "tls-1-dep.s" [list] "tls-1-dep.so" ""]] run_dump_test "tls-static-1" run_dump_test "tls-dynamic-1" run_dump_test "tls-pie-1" diff --git a/ld/testsuite/ld-i386/export-class.exp b/ld/testsuite/ld-i386/export-class.exp index 88f47b5..98524a3 100644 --- a/ld/testsuite/ld-i386/export-class.exp +++ b/ld/testsuite/ld-i386/export-class.exp @@ -44,7 +44,7 @@ set testname "i386 symbol export class test" run_ld_link_tests [list \ [list \ "$testname (auxiliary shared object)" \ - "-shared -version-script ../ld-elf/export-class-lib.ver" \ + "-shared -version-script ../ld-elf/export-class-lib.ver" "" \ "" \ { ../ld-elf/export-class-lib.s } \ {} \ @@ -58,7 +58,7 @@ run_ld_link_tests [list \ run_ld_link_tests [list \ [list \ "$testname (initial static object)" \ - "-r" \ + "-r" "" \ "" \ { ../ld-elf/export-class-ref.s } \ {} \ @@ -75,7 +75,7 @@ run_ld_link_tests [list \ run_ld_link_tests [list \ [list \ "$testname (final shared object)" \ - "-shared -Tdata=0x12340000 tmpdir/i386-export-class-ref-r.o tmpdir/i386-export-class-lib.so" \ + "-shared -Tdata=0x12340000 tmpdir/i386-export-class-ref-r.o tmpdir/i386-export-class-lib.so" "" \ "" \ { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \ { \ diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index f5835ac..2667381 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -25,23 +25,23 @@ if {[istarget "i?86-*-vxworks"]} { set i386tests { - {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" + {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" "" "" {vxworks1-lib.s} {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd} {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}} "libvxworks1.so"} {"VxWorks executable test 1 (dynamic)" \ - "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" + "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" "" "" {vxworks1.s} {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}} "vxworks1"} {"VxWorks executable test 2 (dynamic)" \ - "-Tvxworks1.ld -q --force-dynamic" + "-Tvxworks1.ld -q --force-dynamic" "" "" {vxworks2.s} {{readelf --segments vxworks2.sd}} "vxworks2"} {"VxWorks executable test 2 (static)" - "-Tvxworks1.ld" + "-Tvxworks1.ld" "" "" {vxworks2.s} {{readelf --segments vxworks2-static.sd}} "vxworks2"} @@ -51,7 +51,7 @@ if {[istarget "i?86-*-vxworks"]} { } if [istarget "*-*-go32*"] { - run_ld_link_tests {{"go32 stub" "" "" {zero.s} {} "go32stub"}} + run_ld_link_tests {{"go32 stub" "" "" "" {zero.s} {} "go32stub"}} set src "tmpdir/go32stub" set dest "tmpdir/go32stub-copy" @@ -111,8 +111,8 @@ if { !([istarget "i?86-*-elf*"] } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -121,66 +121,67 @@ if { !([istarget "i?86-*-elf*"] set i386tests { {"Helper shared library (basic PLT test)" - "-shared -melf_i386" "--32" {pltlib.s} {} "libpltlib.so"} + "-shared -melf_i386" "" "--32" {pltlib.s} {} "libpltlib.so"} {"basic PLT generation (non-PIC)" - "-melf_i386 tmpdir/libpltlib.so" "--32" {plt.s} + "-melf_i386 tmpdir/libpltlib.so" "" "--32" {plt.s} {{objdump -drj.plt plt.pd}} "plt"} {"basic PLT generation (PIC)" - "-shared -melf_i386 tmpdir/libpltlib.so" "--32" {plt-pic.s} + "-shared -melf_i386 tmpdir/libpltlib.so" "" "--32" {plt-pic.s} {{objdump -drj.plt plt-pic.pd}} "libplt-pic.so"} {"TLS -fpic -shared transitions" - "-shared -melf_i386 --no-ld-generated-unwind-info" + "-shared -melf_i386 --no-ld-generated-unwind-info" "" "--32" {tlspic1.s tlspic2.s} {{readelf -Ssrl tlspic.rd} {objdump -drj.text tlspic.dd} {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} "libtlspic.so"} {"TLS descriptor -fpic -shared transitions" - "-shared -melf_i386 --no-ld-generated-unwind-info" + "-shared -melf_i386 --no-ld-generated-unwind-info" "" "--32" {tlsdesc.s tlspic2.s} {{readelf -Ssrl tlsdesc.rd} {objdump -drj.text tlsdesc.dd} {objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}} "libtlsdesc.so"} - {"Helper shared library" "-shared -melf_i386" + {"Helper shared library" "-shared -melf_i386" "" "--32" {tlslib.s} {} "libtlslib.so"} {"TLS -fpic and -fno-pic exec transitions" - "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info" + "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info" "" "--32" {tlsbinpic.s tlsbin.s} {{readelf -Ssrl tlsbin.rd} {objdump -drj.text tlsbin.dd} {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} "tlsbin"} {"TLS descriptor -fpic and -fno-pic exec transitions" - "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info" + "-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info" "" "--32" {tlsbindesc.s tlsbin.s} {{readelf -Ssrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd} {objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}} "tlsbindesc"} - {"TLS -fno-pic -shared" "-shared -melf_i386 --no-ld-generated-unwind-info" + {"TLS -fno-pic -shared" + "-shared -melf_i386 --no-ld-generated-unwind-info" "" "--32" {tlsnopic1.s tlsnopic2.s} {{readelf -Ssrl tlsnopic.rd} {objdump -drj.text tlsnopic.dd} {objdump -sj.got tlsnopic.sd}} "libtlsnopic.so"} {"TLS with global dynamic and descriptors" - "-shared -melf_i386 --no-ld-generated-unwind-info" + "-shared -melf_i386 --no-ld-generated-unwind-info" "" "--32" {tlsgdesc.s} {{readelf -Ssrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}} "libtlsgdesc.so"} - {"TLS in debug sections" "-melf_i386" + {"TLS in debug sections" "-melf_i386" "" "--32" {tlsg.s} {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"} - {"TLS @indntpoff with %eax" "-melf_i386" "--32" {tlsindntpoff.s} + {"TLS @indntpoff with %eax" "-melf_i386" "" "--32" {tlsindntpoff.s} {{objdump -drj.text tlsindntpoff.dd}} "tlsindntpoff"} - {"Reloc section order" "-shared -melf_i386 -z nocombreloc" "--32" + {"Reloc section order" "-shared -melf_i386 -z nocombreloc" "" "--32" {reloc.s} {{objdump -hw reloc.d}} "reloc.so"} - {"Basic --emit-relocs support" "-shared -melf_i386 --emit-relocs" "--32" + {"Basic --emit-relocs support" "-shared -melf_i386 --emit-relocs" "" "--32" {emit-relocs.s} {{readelf --relocs emit-relocs.rd}} "emit-relocs.so"} - {"-z combreloc relocation sections" "-shared -melf_i386 -z combreloc" + {"-z combreloc relocation sections" "-shared -melf_i386 -z combreloc" "" "--32" {combreloc.s} {{readelf -r combreloc.d}} "combreloc.so"} - {"TLS GD->LE transition" "-melf_i386" + {"TLS GD->LE transition" "-melf_i386" "" "--32" {tlsgd1.s} {{objdump -dwr tlsgd1.dd}} "tlsgd1"} - {"TLS LD->LE transition" "-melf_i386" + {"TLS LD->LE transition" "-melf_i386" "" "--32" {tlsld1.s} {{objdump -dwr tlsld1.dd}} "tlsld1"} - {"TLS IE->LE transition" "-melf_i386" + {"TLS IE->LE transition" "-melf_i386" "" "--32" {tlsie1.s} {{objdump -dwr tlsie1.dd}} "tlsie1"} } diff --git a/ld/testsuite/ld-ia64/ia64.exp b/ld/testsuite/ld-ia64/ia64.exp index 6d4860e..1f658ac 100644 --- a/ld/testsuite/ld-ia64/ia64.exp +++ b/ld/testsuite/ld-ia64/ia64.exp @@ -28,8 +28,8 @@ if { !([istarget "ia64-*-elf*"] } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -37,19 +37,19 @@ if { !([istarget "ia64-*-elf*"] # readelf: Apply readelf options on result. Compare with regex (last arg). set ia64tests { - {"TLS -fpic -shared" "-shared" + {"TLS -fpic -shared" "-shared" "" "-mtune=itanium1" {tlspic1.s tlspic2.s} {{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd} {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} "libtlspic.so"} - {"Helper shared library" "-shared" + {"Helper shared library" "-shared" "" "" {tlslib.s} {} "libtlslib.so"} {"TLS -fpic and -fno-pic exec" - "tmpdir/libtlslib.so" "-mtune=itanium1" {tlsbinpic.s tlsbin.s} + "tmpdir/libtlslib.so" "" "-mtune=itanium1" {tlsbinpic.s tlsbin.s} {{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd} {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} "tlsbin"} - {"TLS in debug sections" "" + {"TLS in debug sections" "" "" "" {tlsg.s} {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"} } diff --git a/ld/testsuite/ld-libs/libs.exp b/ld/testsuite/ld-libs/libs.exp index 6b64d8c..96d9850 100644 --- a/ld/testsuite/ld-libs/libs.exp +++ b/ld/testsuite/ld-libs/libs.exp @@ -24,7 +24,7 @@ file mkdir tmpdir/libtmp # Check that -l: works. The first "test" just creates an object file # for the second one. run_ld_link_tests { - {"-l: test (preparation)" "-r" "" {lib-1.s} {} "libtmp/anobject"} - {"-l: test" "-r -Ltmpdir/libtmp -l:anobject" "" {lib-2.s} + {"-l: test (preparation)" "-r" "" "" {lib-1.s} {} "libtmp/anobject"} + {"-l: test" "-r -Ltmpdir/libtmp -l:anobject" "" "" {lib-2.s} {{nm -C lib-2.d}} "lib-2"} } diff --git a/ld/testsuite/ld-m68k/m68k.exp b/ld/testsuite/ld-m68k/m68k.exp index 843d919..6917436 100644 --- a/ld/testsuite/ld-m68k/m68k.exp +++ b/ld/testsuite/ld-m68k/m68k.exp @@ -25,8 +25,8 @@ if { ![is_elf_format] || ![istarget m68k-*-*] } { } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -34,17 +34,17 @@ if { ![is_elf_format] || ![istarget m68k-*-*] } { # readelf: Apply readelf options on result. Compare with regex (last arg). set m68k_mergeok_tests { - {"merge isa-a isa-a:nodiv" "-T merge.ld" "" + {"merge isa-a isa-a:nodiv" "-T merge.ld" "" "" {isaa.s isaa-nodiv.s} {{objdump -p isaa.d}} "isaa-nodiv"} - {"merge isa-a isa-b" "-T merge.ld" "" + {"merge isa-a isa-b" "-T merge.ld" "" "" {isaa.s isab.s} {{objdump -p isab.d}} "isab"} - {"merge isa-a isa-aplus" "-T merge.ld" "" + {"merge isa-a isa-aplus" "-T merge.ld" "" "" {isaa.s isaaplus.s} {{objdump -p isaaplus.d}} "isaplus"} - {"merge isa-b isa-b:nousp" "-T merge.ld" "" + {"merge isa-b isa-b:nousp" "-T merge.ld" "" "" {isab.s isab-nousp.s} {{objdump -p isab.d}} "isab"} - {"merge isa-a isa-a:mac" "-T merge.ld" "" + {"merge isa-a isa-a:mac" "-T merge.ld" "" "" {isaa.s isaa-mac.s} {{objdump -p isaa-mac.d}} "isaa-mac"} - {"merge isa-b isa-b:float" "-T merge.ld" "" + {"merge isa-b isa-b:float" "-T merge.ld" "" "" {isab.s isab-float.s} {{objdump -p isab-float.d}} "isab-float"}} run_ld_link_tests $m68k_mergeok_tests @@ -61,7 +61,7 @@ run_dump_test "merge-ok-1c" foreach { id sources } { a { plt1.s } b { plt1-empty.s plt1.s } } { foreach arch { 68020 cpu32 isab isac } { run_ld_link_tests [list \ - [list "PLT 1$id ($arch)" "-shared -T plt1.ld" "-m$arch" \ + [list "PLT 1$id ($arch)" "-shared -T plt1.ld" "" "-m$arch" \ $sources [list [list objdump -dr plt1-$arch.d]] \ plt1-${id}-${arch}.so]] } @@ -77,15 +77,15 @@ if { [istarget m68k-*-linux*] } then { set m68k_tls_tests { {"TLS definition" - "-shared" "" {tls-def-1.s} + "-shared" "" "" {tls-def-1.s} {{nm -ngD tls-def-1.d}} "tls-def-1.so"} {"TLS direct symbol use" - "-shared tmpdir/tls-def-1.so" "" {tls-gd-1.s} + "-shared tmpdir/tls-def-1.so" "" "" {tls-gd-1.s} {{nm -ngD tls-gd-1.d2} {readelf -d tls-gd-1.d3}} "tls-gd-1.so"} {"TLS indirect symbol use" - "--copy-dt-needed-entries tmpdir/tls-gd-1.so -rpath-link ./" "" {tls-main-1.s} + "--copy-dt-needed-entries tmpdir/tls-gd-1.so -rpath-link ./" "" "" {tls-main-1.s} {{readelf -d tls-main-1.d}} "tls-main-1"}} diff --git a/ld/testsuite/ld-metag/metag.exp b/ld/testsuite/ld-metag/metag.exp index 928703d..b817e10 100644 --- a/ld/testsuite/ld-metag/metag.exp +++ b/ld/testsuite/ld-metag/metag.exp @@ -26,32 +26,32 @@ if {!([istarget "metag-*-*"]) } { # Set up a list as described in ld-lib.exp set metag_tests { - {"Meta pc-relative relocs linker test" "" "" + {"Meta pc-relative relocs linker test" "" "" "" { "pcrel.s" "external.s" } { {objdump -Dz pcrel.d} } "pcrel" } - {"Simple PIC shared library" "-shared" "" + {"Simple PIC shared library" "-shared" "" "" {shared.s} { {objdump -fdw shared.d} {objdump -Rw shared.r} } "shared.so" } - {"Long branch stub" "" "" + {"Long branch stub" "" "" "" {stub.s} { {objdump -fdw stub.d} } "stub" } - {"Shared library for stub tests" "-shared" "" + {"Shared library for stub tests" "-shared" "" "" {stub_shared.s} { {objdump -fdw stub_shared.d} {objdump -Rw stub_shared.r} } "stub_shared.so" } - {"Long branch stub (PIC, app)" "tmpdir/stub_shared.so" "" + {"Long branch stub (PIC, app)" "tmpdir/stub_shared.so" "" "" {stub_pic_app.s} { {objdump -fdw stub_pic_app.d} {objdump -Rw stub_pic_app.r} } "stub_pic_app" } - {"Long branch stub (PIC, shared)" "-shared" "" + {"Long branch stub (PIC, shared)" "-shared" "" "" {stub_pic_shared.s} { {objdump -fdw stub_pic_shared.d} } "stub_pic_shared.so" diff --git a/ld/testsuite/ld-mips-elf/comm-data.exp b/ld/testsuite/ld-mips-elf/comm-data.exp index 943e852..28ca290 100644 --- a/ld/testsuite/ld-mips-elf/comm-data.exp +++ b/ld/testsuite/ld-mips-elf/comm-data.exp @@ -43,7 +43,7 @@ proc mips_comm_data_test { abi flag emul reloc } { run_ld_link_tests [list \ [list \ "$testname (auxiliary shared object build)" \ - "$LDFLAGS -shared" \ + "$LDFLAGS -shared" "" \ "$AFLAGS -call_shared" \ { ../ld-elf/comm-data1.s } \ { \ @@ -64,7 +64,7 @@ proc mips_comm_data_test { abi flag emul reloc } { run_ld_link_tests [list \ [list \ "$testname" \ - "$LDFLAGS $ZFLAG -Ltmpdir -lmips-$abi-$reloc-comm-data" \ + "$LDFLAGS $ZFLAG -Ltmpdir -lmips-$abi-$reloc-comm-data" "" \ "$AFLAGS -call_nonpic" \ { ../ld-elf/comm-data2.s } \ { \ diff --git a/ld/testsuite/ld-mips-elf/export-class.exp b/ld/testsuite/ld-mips-elf/export-class.exp index b7ce07c..150cc41 100644 --- a/ld/testsuite/ld-mips-elf/export-class.exp +++ b/ld/testsuite/ld-mips-elf/export-class.exp @@ -44,7 +44,7 @@ proc mips_export_class_test { abi flag emul } { run_ld_link_tests [list \ [list \ "$testname (auxiliary shared object)" \ - "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" \ + "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" "" \ "$AFLAGS" \ { ../ld-elf/export-class-lib.s } \ {} \ @@ -58,7 +58,7 @@ proc mips_export_class_test { abi flag emul } { run_ld_link_tests [list \ [list \ "$testname (initial static object)" \ - "$LDFLAGS -r" \ + "$LDFLAGS -r" "" \ "$AFLAGS" \ { ../ld-elf/export-class-ref.s } \ {} \ @@ -75,7 +75,7 @@ proc mips_export_class_test { abi flag emul } { run_ld_link_tests [list \ [list \ "$testname (final shared object)" \ - "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/mips-$abi-export-class-ref-r.o tmpdir/mips-$abi-export-class-lib.so" \ + "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/mips-$abi-export-class-ref-r.o tmpdir/mips-$abi-export-class-lib.so" "" \ "$AFLAGS" \ { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \ [list \ diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index 9860488..902ae00 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -22,23 +22,23 @@ if {[istarget "mips*-*-vxworks"]} { set mipsvxtests { - {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" + {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" "" "-mips2" {vxworks1-lib.s} {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd} {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}} "libvxworks1.so"} {"VxWorks executable test 1 (dynamic)" \ - "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" + "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" "" "-mips2" {vxworks1.s} {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}} "vxworks1"} {"VxWorks executable test 2 (dynamic)" \ - "-Tvxworks1.ld -q --force-dynamic" + "-Tvxworks1.ld -q --force-dynamic" "" "-mips2" {vxworks2.s} {{readelf --segments vxworks2.sd}} "vxworks2"} {"VxWorks executable test 2 (static)" - "-Tvxworks1.ld" + "-Tvxworks1.ld" "" "-mips2" {vxworks2.s} {{readelf --segments vxworks2-static.sd}} "vxworks2"} @@ -89,20 +89,20 @@ if { [istarget mips*-*-linux*] || [istarget mips*-sde-elf*] } { if { $linux_gnu } { run_ld_link_tests [list \ [list "Dummy shared library for MIPS16 PIC test 1" \ - "-shared -melf32btsmip" \ + "-shared -melf32btsmip" "" \ "-EB -32 -mips1" \ { mips16-pic-1-dummy.s } \ {} \ "mips16-pic-1-dummy.so"] \ [list "MIPS16 PIC test 1" \ - "-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-1-dummy.so" \ + "-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-1-dummy.so" "" \ "-EB -32 -mips1 -I $srcdir/$subdir" \ { mips16-pic-1a.s mips16-pic-1b.s } \ { { objdump { -dr -j.text } mips16-pic-1.dd } { readelf -A mips16-pic-1.gd } } \ "mips16-pic-1"] \ [list "MIPS16 PIC test 2" \ - "-melf32btsmip -T mips16-pic-1.ld -shared" \ + "-melf32btsmip -T mips16-pic-1.ld -shared" "" \ "-EB -32 -mips1 -I $srcdir/$subdir" \ { mips16-pic-2a.s mips16-pic-2b.s } \ { { objdump { -dr -j.text } mips16-pic-2.dd } \ @@ -112,7 +112,7 @@ if { $linux_gnu } { { readelf -d mips16-pic-2.ad } } \ "mips16-pic-2"] \ [list "MIPS16 PIC test 3" \ - "-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-1-dummy.so" \ + "-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-1-dummy.so" "" \ "-EB -32 -mips1 -I $srcdir/$subdir" \ { mips16-pic-3a.s mips16-pic-3b.s } \ { { objdump -dr mips16-pic-3.dd } \ @@ -120,7 +120,7 @@ if { $linux_gnu } { { readelf -A mips16-pic-3.gd } } \ "mips16-pic-3"] \ [list "MIPS16 PIC test 4 (shared library)" \ - "-shared -melf32btsmip -T mips16-pic-1.ld --version-script mips16-pic-4.ver" \ + "-shared -melf32btsmip -T mips16-pic-1.ld --version-script mips16-pic-4.ver" "" \ "-EB -32 -mips1" \ { mips16-pic-4a.s mips16-pic-4b.s } \ { { objdump -dr mips16-pic-4a.dd } \ @@ -128,7 +128,7 @@ if { $linux_gnu } { { readelf -A mips16-pic-4a.gd } } \ "mips16-pic-4.so"] \ [list "MIPS16 PIC test 4 (executable)" \ - "-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-4.so" \ + "-melf32btsmip -T mips16-pic-1.ld tmpdir/mips16-pic-4.so" "" \ "-EB -32 -mips1" \ { mips16-pic-4c.s } \ { { objdump -dr mips16-pic-4b.dd } } \ @@ -147,19 +147,19 @@ run_dump_test "jalx-1" if { $linux_gnu } { run_ld_link_tests [list \ [list "Dummy shared library for JALX test 2" \ - "-shared -nostdlib -melf32btsmip" \ + "-shared -nostdlib -melf32btsmip" "" \ "-G0 -EB -mmicromips -no-mdebug -mabi=32 -march=mips32r2 -KPIC" \ { jalx-2-printf.s } \ {} \ "libjalx-2.so"] \ [list "Dummy external function for JALX test 2" \ - "-r -melf32btsmip" \ + "-r -melf32btsmip" "" \ "-G0 -EB -no-mdebug -mabi=32 -march=mips32r2 -mno-shared -call_nonpic" \ { jalx-2-ex.s } \ {} \ "jalx-2-ex.o.r"] \ [list "MIPS JALX test 2" \ - "-nostdlib -T jalx-2.ld tmpdir/libjalx-2.so tmpdir/jalx-2-ex.o.r -melf32btsmip" \ + "-nostdlib -T jalx-2.ld tmpdir/libjalx-2.so tmpdir/jalx-2-ex.o.r -melf32btsmip" "" \ "-G0 -EB -mmicromips -no-mdebug -mabi=32 -march=mips32r2 -mno-shared -call_nonpic" \ { jalx-2-main.s } \ { { objdump -d jalx-2.dd } } \ @@ -232,19 +232,19 @@ if { $linux_gnu } { # The third test checks that we do the same when linking the # result of the first link (with no other source files). run_ld_link_tests { - {"PIC and non-PIC test 1 (relocatable)" "-r -melf32btsmip" + {"PIC and non-PIC test 1 (relocatable)" "-r -melf32btsmip" "" "-32 -EB -mips2" {pic-and-nonpic-1a.s pic-and-nonpic-1b.s} {{objdump -dr pic-and-nonpic-1-rel.dd} {readelf --symbols pic-and-nonpic-1-rel.nd}} "pic-and-nonpic-1-rel.o"} {"PIC and non-PIC test 1 (static 1)" - "-melf32btsmip -Tpic-and-nonpic-1.ld" + "-melf32btsmip -Tpic-and-nonpic-1.ld" "" "-32 -EB -mips2" {pic-and-nonpic-1a.s pic-and-nonpic-1b.s} {{objdump -dr pic-and-nonpic-1.dd} {readelf --symbols pic-and-nonpic-1.nd}} "pic-and-nonpic-1-static1.o"} {"PIC and non-PIC test 1 (static 2)" - "-melf32btsmip -Tpic-and-nonpic-1.ld tmpdir/pic-and-nonpic-1-rel.o" + "-melf32btsmip -Tpic-and-nonpic-1.ld tmpdir/pic-and-nonpic-1-rel.o" "" "" {} {{objdump -dr pic-and-nonpic-1.dd} {readelf --symbols pic-and-nonpic-1.nd}} @@ -253,14 +253,14 @@ if { $linux_gnu } { run_dump_test "pic-and-nonpic-2" run_ld_link_tests { {"PIC and non-PIC test 3 (shared library)" - "-melf32btsmip -shared -Tpic-and-nonpic-3a.ld" + "-melf32btsmip -shared -Tpic-and-nonpic-3a.ld" "" "-32 -EB -mips2" {pic-and-nonpic-3a.s} {{readelf --segments pic-and-nonpic-3a.sd} {readelf -A pic-and-nonpic-3a.gd} {objdump -dr pic-and-nonpic-3a.dd}} "pic-and-nonpic-3a.so"} {"PIC and non-PIC test 3 (executable)" - "-melf32btsmip -Tpic-and-nonpic-3b.ld tmpdir/pic-and-nonpic-3a.so" + "-melf32btsmip -Tpic-and-nonpic-3b.ld tmpdir/pic-and-nonpic-3a.so" "" "-32 -EB -mips2" {pic-and-nonpic-3b.s} {{readelf --segments pic-and-nonpic-3b.sd} {objdump -dr pic-and-nonpic-3b.dd} @@ -274,12 +274,12 @@ if { $linux_gnu } { run_dump_test "pic-and-nonpic-3-error" run_ld_link_tests { {"PIC and non-PIC test 4 (shared library)" - "-melf32btsmip -shared -Tpic-and-nonpic-3a.ld" + "-melf32btsmip -shared -Tpic-and-nonpic-3a.ld" "" "-32 -EB -mips2" {pic-and-nonpic-4a.s} {} "pic-and-nonpic-4a.so"} {"PIC and non-PIC test 4 (executable)" - "-melf32btsmip -Tpic-and-nonpic-4b.ld tmpdir/pic-and-nonpic-4a.so" + "-melf32btsmip -Tpic-and-nonpic-4b.ld tmpdir/pic-and-nonpic-4a.so" "" "-32 -EB -mips2" {pic-and-nonpic-4b.s} {{readelf --segments pic-and-nonpic-4b.sd} {objdump -dr pic-and-nonpic-4b.dd} @@ -292,7 +292,7 @@ if { $linux_gnu } { run_dump_test "pic-and-nonpic-4-error" run_ld_link_tests { {"PIC and non-PIC test 5 (executable)" - "-melf32btsmip -Tpic-and-nonpic-5b.ld tmpdir/pic-and-nonpic-3a.so tmpdir/pic-and-nonpic-4a.so" + "-melf32btsmip -Tpic-and-nonpic-5b.ld tmpdir/pic-and-nonpic-3a.so tmpdir/pic-and-nonpic-4a.so" "" "-32 -EB -mips2" {pic-and-nonpic-5a.s pic-and-nonpic-5b.s} {{readelf --segments pic-and-nonpic-5b.sd} {objdump -dr pic-and-nonpic-5b.dd} @@ -311,12 +311,12 @@ if { $linux_gnu } { foreach { abi flag emul } $abis { run_ld_link_tests [list \ [list "PIC and non-PIC test 6 ($abi shared library)" \ - "-m$emul -shared -Tpic-and-nonpic-3a.ld" \ + "-m$emul -shared -Tpic-and-nonpic-3a.ld" "" \ "$flag -EB -mips3" \ [list "pic-and-nonpic-6-${abi}a.s"] {} \ "pic-and-nonpic-6-${abi}.so"] \ [list "PIC and non-PIC test 6 ($abi executable)" \ - "-m$emul -Tpic-and-nonpic-6.ld tmpdir/pic-and-nonpic-6-${abi}.so" \ + "-m$emul -Tpic-and-nonpic-6.ld tmpdir/pic-and-nonpic-6-${abi}.so" "" \ "$flag -EB -mips3" \ [list "pic-and-nonpic-6-${abi}b.s" \ "pic-and-nonpic-6-${abi}c.s"] \ @@ -341,7 +341,7 @@ if { $linux_gnu } { run_ld_link_tests [list \ [list \ "_gp scope test ($abi shared library)" \ - "$abi_ldflags($abi) -shared" \ + "$abi_ldflags($abi) -shared" "" \ "$abi_asflags($abi) -KPIC" \ { gp-hidden-lib.s } \ [list \ @@ -350,7 +350,7 @@ if { $linux_gnu } { "gp-hidden-lib-${abi}.so"] \ [list \ "_gp scope test ($abi versioned library)" \ - "$abi_ldflags($abi) -shared -version-script gp-hidden-ver.ver tmpdir/gp-hidden-lib-${abi}.so" \ + "$abi_ldflags($abi) -shared -version-script gp-hidden-ver.ver tmpdir/gp-hidden-lib-${abi}.so" "" \ "$abi_asflags($abi) -KPIC" \ { gp-hidden-ver.s } \ [list \ @@ -359,7 +359,7 @@ if { $linux_gnu } { "gp-hidden-ver-${abi}.so"] \ [list \ "_gp scope test ($abi executable)" \ - "$abi_ldflags($abi) -e 0 -rpath-link . tmpdir/gp-hidden-ver-${abi}.so" \ + "$abi_ldflags($abi) -e 0 -rpath-link . tmpdir/gp-hidden-ver-${abi}.so" "" \ "$abi_asflags($abi) -call_nonpic" \ { gp-hidden.s } \ [list \ @@ -394,14 +394,14 @@ if { $has_newabi } { run_ld_link_tests [list \ [list \ "reloc test 6a" \ - "-shared $abi_ldflags(n32)" \ + "-shared $abi_ldflags(n32)" "" \ "$abi_asflags(n32)" \ "reloc-6a.s" \ {} \ "reloc-6a.so"] \ [list \ "reloc test 6b" \ - "$abi_ldflags(n32) tmpdir/reloc-6a.so" \ + "$abi_ldflags(n32) tmpdir/reloc-6a.so" "" \ "$abi_asflags(n32)" \ "reloc-6b.s" \ {} \ @@ -421,7 +421,7 @@ if {$embedded_elf} { if {$linux_gnu} { set eh_frame5_test { {"MIPS eh-frame 5" - "-melf32btsmip -shared -Teh-frame5.ld" + "-melf32btsmip -shared -Teh-frame5.ld" "" "-32 -EB" {eh-frame5.s} {{readelf {--relocs -wf} eh-frame5.d}} @@ -455,12 +455,12 @@ if { $linux_gnu } { run_dump_test "got-page-3" run_ld_link_tests [subst { {"GOT page 4 (one file)" "-shared $abi_ldflags(o32) -T got-page-1.ld" - "$abi_asflags(o32) -mips2" {got-page-4b.s} + "" "$abi_asflags(o32) -mips2" {got-page-4b.s} {{objdump -dr got-page-4a.d} {readelf -A got-page-4a.got}} "got-page-4a.so"} {"GOT page 4 (two files)" "-shared $abi_ldflags(o32) -T got-page-1.ld" - "$abi_asflags(o32) -mips2" {got-page-4a.s got-page-4b.s} + "" "$abi_asflags(o32) -mips2" {got-page-4a.s got-page-4b.s} {{objdump -dr got-page-4b.d} {readelf -A got-page-4b.got}} "got-page-4b.so"} @@ -468,24 +468,24 @@ if { $linux_gnu } { if $has_newabi { run_ld_link_tests [subst { {"GOT page 5" "-shared $abi_ldflags(n32) -T got-page-1.ld" - "$abi_asflags(n32)" {got-page-5.s} + "" "$abi_asflags(n32)" {got-page-5.s} {{objdump -dr got-page-5.d} {readelf -A got-page-5.got}} "got-page-5.so"} {"GOT page 6" "-shared $abi_ldflags(n32) -T got-page-1.ld" - "$abi_asflags(n32)" {got-page-6.s} + "" "$abi_asflags(n32)" {got-page-6.s} {{objdump -dr got-page-6.d} {readelf -A got-page-6.got}} "got-page-6.so"} {"GOT page 7 (order 1)" "-shared $abi_ldflags(n32) -T got-page-1.ld" - "$abi_asflags(n32)" + "" "$abi_asflags(n32)" {got-page-7a.s got-page-7b.s got-page-7c.s got-page-7d.s got-page-7e.s} {{objdump -dr got-page-7.d} {readelf -A got-page-7.got}} "got-page-7a.so"} {"GOT page 7 (order 2)" "-shared $abi_ldflags(n32) -T got-page-1.ld" - "$abi_asflags(n32)" + "" "$abi_asflags(n32)" {got-page-7e.s got-page-7a.s got-page-7b.s got-page-7c.s got-page-7d.s} {{objdump -dr got-page-7.d} @@ -520,7 +520,7 @@ if {[istarget mips*-*-linux*]} { run_ld_link_tests \ [list [list \ "Stub for dynsym 0x$dynsym" \ - "-shared -melf32btsmip -T stub-dynsym-1.ld" \ + "-shared -melf32btsmip -T stub-dynsym-1.ld" "" \ [concat \ "-EB -march=mips1 -32 -KPIC" \ "--defsym base_syms=$base_syms" \ @@ -536,8 +536,8 @@ if {[istarget mips*-*-linux*]} { # For tests which may involve multiple files, use run_ld_link_tests. # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -545,64 +545,64 @@ if {[istarget mips*-*-linux*]} { # readelf: Apply readelf options on result. Compare with regex (last arg). set mips_tls_tests { - {"Static executable with TLS" "-static -melf32btsmip -T mips-dyn.ld" + {"Static executable with TLS" "-static -melf32btsmip -T mips-dyn.ld" "" "-EB -march=mips1 -32 -KPIC" {tlsbin-o32.s} {{objdump {-dr -m mips:isa32r2} tlsbin-o32.d} {objdump -srj.got tlsbin-o32.got}} "tls-static-o32"} - {"Shared library with TLS" "-shared -melf32btsmip -T mips-lib.ld" + {"Shared library with TLS" "-shared -melf32btsmip -T mips-lib.ld" "" "-EB -march=mips1 -32 -KPIC" {tlslib-o32.s} {{objdump {-dr -m mips:isa32r2} tlslib-o32.d} {objdump -Rsj.got tlslib-o32.got}} "tlslib-o32.so"} {"Dynamic executable with TLS" - "-melf32btsmip -T mips-dyn.ld tmpdir/tlslib-o32.so" + "-melf32btsmip -T mips-dyn.ld tmpdir/tlslib-o32.so" "" "-EB -march=mips1 -32 -KPIC" {tlsdyn-o32.s} {{objdump {-dr -m mips:isa32r2} tlsdyn-o32.d} {objdump -Rsj.got tlsdyn-o32.got}} "tls-dynamic-o32"} {"Shared library with multiple GOTs and TLS" - "-shared -melf32btsmip -T mips-lib.ld" + "-shared -melf32btsmip -T mips-lib.ld" "" "-EB -march=mips1 -32 -KPIC" {tls-multi-got-1-1.s tls-multi-got-1-2.s} {{readelf {-d -r} tls-multi-got-1.r} {objdump {-dr -m mips:isa32r2} tls-multi-got-1.d} {objdump -Rsj.got tls-multi-got-1.got}} "tlslib-multi.so"} {"Shared library with TLS and versioning" - "-shared -melf32btsmip -T mips-lib.ld --version-script tlslib.ver" + "-shared -melf32btsmip -T mips-lib.ld --version-script tlslib.ver" "" "-EB -march=mips1 -32 -KPIC" {tlslib-o32.s} {{objdump {-dr -m mips:isa32r2} tlslib-o32.d} {objdump -Rsj.got tlslib-o32-ver.got}} "tlslib-o32-ver.so"} {"Dynamic executable with TLS and versioning" - "-melf32btsmip -T mips-dyn.ld tmpdir/tlslib-o32-ver.so" + "-melf32btsmip -T mips-dyn.ld tmpdir/tlslib-o32-ver.so" "" "-EB -march=mips1 -32 -KPIC" {tlsdyn-o32.s tlsdyn-o32-2.s} {{objdump {-dr -m mips:isa32r2} tlsdyn-o32-1.d} {objdump -Rsj.got tlsdyn-o32-1.got}} "tls-dynamic-o32-ver"} {"Dynamic executable with TLS and versioning (order 2)" - "-melf32btsmip -T mips-dyn.ld tmpdir/tlsdyn-o32.o tmpdir/tlslib-o32-ver.so tmpdir/tlsdyn-o32-2.o" + "-melf32btsmip -T mips-dyn.ld tmpdir/tlsdyn-o32.o tmpdir/tlslib-o32-ver.so tmpdir/tlsdyn-o32-2.o" "" "-EB -march=mips1 -32 -KPIC" {} {{objdump {-dr -m mips:isa32r2} tlsdyn-o32-2.d} {objdump -Rsj.got tlsdyn-o32-2.got}} "tls-dynamic-o32-ver-2"} {"Dynamic executable with TLS and versioning (order 3)" - "-melf32btsmip -T mips-dyn.ld tmpdir/tlsdyn-o32-2.o tmpdir/tlslib-o32-ver.so tmpdir/tlsdyn-o32.o" + "-melf32btsmip -T mips-dyn.ld tmpdir/tlsdyn-o32-2.o tmpdir/tlslib-o32-ver.so tmpdir/tlsdyn-o32.o" "" "-EB -march=mips1 -32 -KPIC" {} {{objdump {-dr -m mips:isa32r2} tlsdyn-o32-3.d} {objdump -Rsj.got tlsdyn-o32-3.got}} "tls-dynamic-o32-ver-3"} {"Shared library with TLS and hidden symbols" - "-shared -melf32btsmip -T mips-lib.ld --version-script tlslib-hidden.ver" + "-shared -melf32btsmip -T mips-lib.ld --version-script tlslib-hidden.ver" "" "-EB -march=mips1 -32 -KPIC" {tlslib-o32.s} {{objdump {-dr -m mips:isa32r2} tlslib-o32.d} {objdump -Rsj.got tlslib-o32-hidden.got}} "tlslib-o32-hidden.so"} {"Shared library with TLS and hidden symbols (2)" - "-shared -melf32btsmip -T mips-lib.ld" + "-shared -melf32btsmip -T mips-lib.ld" "" "-EB -march=mips1 -32 -KPIC" {tls-hidden2a.s tls-hidden2b.s} {{objdump -drj.text tls-hidden2.d} {objdump -sj.got tls-hidden2-got.d}} "tls-hidden2.so"} {"Shared library with TLS and hidden symbols (3)" - "-shared -melf32btsmip -T tls-hidden3.ld" + "-shared -melf32btsmip -T tls-hidden3.ld" "" "-EB -march=mips2 -32 -KPIC" {tls-hidden3a.s tls-hidden3b.s} {{objdump -dj.text tls-hidden3.d} {objdump -sj.got tls-hidden3.got} {readelf --relocs tls-hidden3.r}} "tls-hidden3.so"} {"Shared library with TLS and hidden symbols (4)" - "-shared -melf32btsmip -T tls-hidden3.ld" + "-shared -melf32btsmip -T tls-hidden3.ld" "" "-EB -march=mips2 -32 -KPIC" {tls-hidden4a.s tls-hidden4b.s} {{objdump -sj.got tls-hidden4.got} {readelf --relocs tls-hidden4.r}} "tls-hidden4.so"} @@ -614,7 +614,7 @@ if {[istarget mips*-*-linux*]} { set mips16_call_global_test [list \ [list "Global calls from mips16" \ - "$abi_ldflags(o32) -T no-shared-1.ld" \ + "$abi_ldflags(o32) -T no-shared-1.ld" "" \ "$abi_asflags(o32) -mips32r2" \ {mips16-call-global-1.s mips16-call-global-2.s mips16-call-global-3.s} \ {{objdump -dr mips16-call-global.d}} \ @@ -624,7 +624,7 @@ run_ld_link_tests $mips16_call_global_test set mips16_intermix_test [list \ [list "Intermixing mips32 and mips16 functions" \ - "$abi_ldflags(o32)" \ + "$abi_ldflags(o32)" "" \ "$abi_asflags(o32) -mips32r2" \ {mips16-intermix-1.s mips16-intermix-2.s} \ {{objdump -t mips16-intermix.d}} \ @@ -669,7 +669,7 @@ run_dump_test "attr-gnu-4-51" if { $linux_gnu } { run_ld_link_tests { {"GOT and versioning 1" - "-shared -melf32btsmip --version-script got-vers-1.ver" + "-shared -melf32btsmip --version-script got-vers-1.ver" "" "-EB -mips2 -32" {got-vers-1a.s got-vers-1b.s} {{readelf -d got-vers-1.dd} {readelf --symbols got-vers-1.sd} @@ -701,7 +701,7 @@ foreach { abi } $abis { run_ld_link_tests [list \ [list \ "MIPS export class call relocation test ($abi)" \ - "$abi_ldflags($abi) -shared -Ttext $loadaddr -T export-class-call16.ld" \ + "$abi_ldflags($abi) -shared -Ttext $loadaddr -T export-class-call16.ld" "" \ "$abi_asflags($abi) -mips3 -KPIC" \ [list export-class-call16-${abi}.s export-class-call16-def.s] \ [list \ diff --git a/ld/testsuite/ld-mn10300/mn10300.exp b/ld/testsuite/ld-mn10300/mn10300.exp index 617ad8a..8eb666d 100644 --- a/ld/testsuite/ld-mn10300/mn10300.exp +++ b/ld/testsuite/ld-mn10300/mn10300.exp @@ -25,7 +25,7 @@ if {!([istarget "am3*-*-*"]) && !([istarget "mn10300*-*-*"]) } { set mn10300_tests { { "am33 string merging" - "-relax -Ttext 0x8000074" + "-relax -Ttext 0x8000074" "" "" { "i36434.s" "i36434-2.s" } { {objdump -dz i36434.d} } @@ -33,7 +33,7 @@ set mn10300_tests { } { "difference of two same-section symbols" - "-Ttext 0" + "-Ttext 0" "" "" { "i112045-1.s" } { {objdump -d i112045-1.d} } @@ -41,7 +41,7 @@ set mn10300_tests { } { "difference of two same-section symbols where the difference is held in another section" - "-relax -Ttext 100" + "-relax -Ttext 100" "" "" { "i112045-3.s" } { {objdump -D i112045-3.d} } @@ -49,7 +49,7 @@ set mn10300_tests { } { "relaxation and alignment directives" - "-relax -Ttext 100 -Tbss 300" + "-relax -Ttext 100 -Tbss 300" "" "" { "i127740.s" } { {objdump -d i127740.d} } @@ -57,7 +57,7 @@ set mn10300_tests { } { "adjustment of symbols due to relaxation" - "-Tdata 1f -Ttext 0 -relax" + "-Tdata 1f -Ttext 0 -relax" "" "" { "i135409-1.s" } { {readelf --syms i135409-1.d} } @@ -65,7 +65,7 @@ set mn10300_tests { } { "adjustment of symbols due to relaxation (with alignment directives)" - "-Tdata 1f -Ttext 0 -relax" + "-Tdata 1f -Ttext 0 -relax" "" "" { "i135409-2.s" } { {readelf --syms i135409-2.d} } @@ -73,7 +73,7 @@ set mn10300_tests { } { "adjustment of symbols due to relaxation (with a symbol in the deleted region)" - "-Tdata 1f -Ttext 0 -relax" + "-Tdata 1f -Ttext 0 -relax" "" "" { "i135409-3.s" } { {objdump -d i135409-3.d} } @@ -81,7 +81,7 @@ set mn10300_tests { } { "adjusting a 16-bit forward branch" - "-Ti135409-4.t -relax" + "-Ti135409-4.t -relax" "" "" { "i135409-4.s" } { {objdump -d i135409-4.d} } @@ -89,7 +89,7 @@ set mn10300_tests { } { "adjusting a 16-bit backward branch" - "-Ti135409-5.t -relax" + "-Ti135409-5.t -relax" "" "" { "i135409-5.s" } { {objdump -d i135409-5.d} } @@ -97,7 +97,7 @@ set mn10300_tests { } { "relaxing offsets into a merged string section" - "-Ti143317.t -shared -relax" + "-Ti143317.t -shared -relax" "" "" { "i143317.s" } { {objdump -d i143317.d} } @@ -114,7 +114,7 @@ if {!([istarget "am3*-*-*"])} { set am33_tests { { "difference of two same-section symbols (in a shared library)" - "-shared" + "-shared" "" "" { "i112045-2.s" } { {objdump -R i112045-2.d} } diff --git a/ld/testsuite/ld-pe/pe-compile.exp b/ld/testsuite/ld-pe/pe-compile.exp index d912719..750f5c0 100755 --- a/ld/testsuite/ld-pe/pe-compile.exp +++ b/ld/testsuite/ld-pe/pe-compile.exp @@ -130,13 +130,13 @@ if {[istarget i*86-*-cygwin*] } set align_tests { - {"aligned common 1" "" "" {aligncomm-1.c} + {"aligned common 1" "" "" "" {aligncomm-1.c} {{nm -C aligncomm.d}} "aligncomm-1.x"} - {"aligned common 2" "" "" {aligncomm-2.c} + {"aligned common 2" "" "" "" {aligncomm-2.c} {{nm -C aligncomm.d}} "aligncomm-2.x"} - {"aligned common 3" "" "" {aligncomm-3.c} + {"aligned common 3" "" "" "" {aligncomm-3.c} {{nm -C aligncomm.d}} "aligncomm-3.x"} - {"aligned common 4" "" "" {aligncomm-4.c} + {"aligned common 4" "" "" "" {aligncomm-4.c} {{nm -C aligncomm.d}} "aligncomm-4.x"} } diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp index c72c3b1..df26f6d 100644 --- a/ld/testsuite/ld-pe/pe.exp +++ b/ld/testsuite/ld-pe/pe.exp @@ -34,29 +34,29 @@ if {[istarget i*86-*-cygwin*] if {[istarget x86_64-*-mingw*] } { set pe_tests { - {".secrel32" "" "" {secrel1.s secrel2.s} + {".secrel32" "" "" "" {secrel1.s secrel2.s} {{objdump -s secrel_64.d}} "secrel.x"} - {"Empty export table" "" "" "exports.s" + {"Empty export table" "" "" "" "exports.s" {{objdump -p exports64.d}} "exports.dll"} - {"TLS directory entry" "" "" "tlssec.s" + {"TLS directory entry" "" "" "" "tlssec.s" {{objdump -p tlssec64.d}} "tlssec.dll"} } } elseif {[istarget i*86-*-cygwin*] } { set pe_tests { - {".secrel32" "--disable-auto-import" "" {secrel1.s secrel2.s} + {".secrel32" "--disable-auto-import" "" "" {secrel1.s secrel2.s} {{objdump -s secrel.d}} "secrel.x"} - {"Empty export table" "" "" "exports.s" + {"Empty export table" "" "" "" "exports.s" {{objdump -p exports.d}} "exports.dll"} - {"TLS directory entry" "" "" "tlssec.s" + {"TLS directory entry" "" "" "" "tlssec.s" {{objdump -p tlssec32.d}} "tlssec.dll"} } } else { set pe_tests { - {".secrel32" "" "" {secrel1.s secrel2.s} + {".secrel32" "" "" "" {secrel1.s secrel2.s} {{objdump -s secrel.d}} "secrel.x"} - {"Empty export table" "" "" "exports.s" + {"Empty export table" "" "" "" "exports.s" {{objdump -p exports.d}} "exports.dll"} - {"TLS directory entry" "" "" "tlssec.s" + {"TLS directory entry" "" "" "" "tlssec.s" {{objdump -p tlssec32.d}} "tlssec.dll"} } } @@ -84,7 +84,7 @@ if {[istarget x86_64-*-mingw*] } { } set foreign_sym_test { - {"non-C aligned common" "" "" {non-c-lang-syms.s} + {"non-C aligned common" "" "" "" {non-c-lang-syms.s} {{nm -C non-c-lang-syms.d}} "non-c-lang-syms.x"} } diff --git a/ld/testsuite/ld-plugin/plugin.exp b/ld/testsuite/ld-plugin/plugin.exp index 803ccee..329d511 100644 --- a/ld/testsuite/ld-plugin/plugin.exp +++ b/ld/testsuite/ld-plugin/plugin.exp @@ -95,37 +95,37 @@ set libs "[ld_simple_link_defsyms] --defsym ${_}printf=${_}main --defsym ${_}put set plugin_tests [list \ [list "load plugin" "-plugin $plugin_path \ - $testobjfiles $libs" "" "" {{ld plugin-1.d}} "main.x" ] \ + $testobjfiles $libs" "" "" "" {{ld plugin-1.d}} "main.x" ] \ [list "fail plugin onload" "-plugin $plugin_path -plugin-opt failonload \ - $testobjfiles $libs" "" "" {{ld plugin-2.d}} "main.x" ] \ + $testobjfiles $libs" "" "" "" {{ld plugin-2.d}} "main.x" ] \ [list "fail plugin allsymbolsread" "-plugin $plugin_path $regas \ -plugin-opt failallsymbolsread \ - $testobjfiles $libs" "" "" {{ld plugin-3.d}} "main.x" ] \ + $testobjfiles $libs" "" "" "" {{ld plugin-3.d}} "main.x" ] \ [list "fail plugin cleanup" "-plugin $plugin_path -plugin-opt failcleanup \ $regcln \ - $testobjfiles $libs" "" "" {{ld plugin-4.d}} "main.x" ] \ + $testobjfiles $libs" "" "" "" {{ld plugin-4.d}} "main.x" ] \ [list "plugin all hooks" "-plugin $plugin_path $regclm $regas $regcln \ - $testobjfiles $libs" "" "" {{ld plugin-5.d}} "main.x" ] \ + $testobjfiles $libs" "" "" "" {{ld plugin-5.d}} "main.x" ] \ [list "plugin claimfile lost symbol" "-plugin $plugin_path $regclm \ $regas $regcln -plugin-opt claim:tmpdir/func.o \ - $testobjfiles $libs" "" "" {{ld plugin-6.d}} "main.x" ] \ + $testobjfiles $libs" "" "" "" {{ld plugin-6.d}} "main.x" ] \ [list "plugin claimfile replace symbol" "-plugin $plugin_path $regclm \ $regas $regcln -plugin-opt claim:tmpdir/func.o \ -plugin-opt sym:${_}func::0:0:0 \ - $testobjfiles $libs" "" "" {{ld plugin-7.d}} "main.x" ] \ + $testobjfiles $libs" "" "" "" {{ld plugin-7.d}} "main.x" ] \ [list "plugin claimfile resolve symbol" "-plugin $plugin_path $regclm \ $regas $regcln -plugin-opt claim:tmpdir/func.o \ -plugin-opt sym:${_}func::0:0:0 \ -plugin-opt sym:${_}func2::0:0:0 \ -plugin-opt dumpresolutions \ - $testobjfiles $libs" "" "" {{ld plugin-8.d}} "main.x" ] \ + $testobjfiles $libs" "" "" "" {{ld plugin-8.d}} "main.x" ] \ [list "plugin claimfile replace file" "-plugin $plugin_path $regclm \ $regas $regcln -plugin-opt claim:tmpdir/func.o \ -plugin-opt sym:${_}func::0:0:0 \ -plugin-opt sym:${_}func2::0:0:0 \ -plugin-opt dumpresolutions \ -plugin-opt add:tmpdir/func.o \ - $testobjfiles $libs" "" "" {{ld plugin-9.d}} "main.x" ] \ + $testobjfiles $libs" "" "" "" {{ld plugin-9.d}} "main.x" ] \ ] set plugin_lib_tests [list \ @@ -135,7 +135,7 @@ set plugin_lib_tests [list \ -plugin-opt sym:${_}func2::0:0:0 \ -plugin-opt dumpresolutions \ -plugin-opt add:tmpdir/func.o \ - $testobjfiles_notext -Ltmpdir -ltext $libs" "" "" {{ld plugin-10.d}} "main.x" ] \ + $testobjfiles_notext -Ltmpdir -ltext $libs" "" "" "" {{ld plugin-10.d}} "main.x" ] \ [list "plugin claimfile replace lib" "-plugin $plugin_path $regclm \ $regas $regcln -plugin-opt claim:tmpdir/func.o \ -plugin-opt sym:${_}func::0:0:0 \ @@ -145,7 +145,7 @@ set plugin_lib_tests [list \ -plugin-opt claim:tmpdir/libtext.a \ -plugin-opt sym:${_}text::0:0:0 \ -plugin-opt add:tmpdir/text.o \ - $testobjfiles_notext -Ltmpdir -ltext $libs" "" "" {{ld plugin-11.d}} "main.x" ] \ + $testobjfiles_notext -Ltmpdir -ltext $libs" "" "" "" {{ld plugin-11.d}} "main.x" ] \ ] set plugin_extra_elf_tests [list \ @@ -160,7 +160,7 @@ set plugin_extra_elf_tests [list \ -plugin-opt add:tmpdir/func1p.o \ -plugin-opt add:tmpdir/func2i.o \ -plugin-opt add:tmpdir/func3h.o \ - $testobjfiles $libs --verbose=2" "" "" {{ld plugin-12.d} \ + $testobjfiles $libs --verbose=2" "" "" "" {{ld plugin-12.d} \ {readelf -s plugin-vis-1.d}} "main.x" ] \ ] diff --git a/ld/testsuite/ld-powerpc/aix52.exp b/ld/testsuite/ld-powerpc/aix52.exp index 2f00cff..9241159 100644 --- a/ld/testsuite/ld-powerpc/aix52.exp +++ b/ld/testsuite/ld-powerpc/aix52.exp @@ -57,7 +57,7 @@ proc run_aix_test { size name ldopts asopts sources tools output } { } regsub -all {SIZE} $tools $size tools run_ld_link_tests [list [list "$name ($size-bit)" \ - $ldopts \ + $ldopts "" \ "$asopts -a$size --defsym size=$size" \ $sources \ $tools \ diff --git a/ld/testsuite/ld-powerpc/export-class.exp b/ld/testsuite/ld-powerpc/export-class.exp index c1106bf..5b721fc 100644 --- a/ld/testsuite/ld-powerpc/export-class.exp +++ b/ld/testsuite/ld-powerpc/export-class.exp @@ -53,7 +53,7 @@ proc powerpc_export_class_test { abi emul } { run_ld_link_tests [list \ [list \ "$testname (auxiliary shared object)" \ - "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" \ + "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" "" \ "$AFLAGS" \ { ../ld-elf/export-class-lib.s } \ {} \ @@ -67,7 +67,7 @@ proc powerpc_export_class_test { abi emul } { run_ld_link_tests [list \ [list \ "$testname (initial static object)" \ - "$LDFLAGS -r" \ + "$LDFLAGS -r" "" \ "$AFLAGS" \ { ../ld-elf/export-class-ref.s } \ {} \ @@ -84,7 +84,7 @@ proc powerpc_export_class_test { abi emul } { run_ld_link_tests [list \ [list \ "$testname (final shared object)" \ - "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/powerpc-$abi-export-class-ref-r.o tmpdir/powerpc-$abi-export-class-lib.so" \ + "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/powerpc-$abi-export-class-ref-r.o tmpdir/powerpc-$abi-export-class-lib.so" "" \ "$AFLAGS" \ { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \ [list \ diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp index 8e9b179..f022b95 100644 --- a/ld/testsuite/ld-powerpc/powerpc.exp +++ b/ld/testsuite/ld-powerpc/powerpc.exp @@ -26,37 +26,37 @@ if { ![istarget "powerpc*-*-*"] } { if {[istarget "*-*-vxworks"]} { set ppcvxtests { - {"VxWorks shared library test 1 (default script)" "-shared" + {"VxWorks shared library test 1 (default script)" "-shared" "" "-mregnames" {vxworks1-lib.s} {{readelf --segments vxworks1-lib.sd}} "libvxworks1.so"} - {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" + {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" "" "-mregnames" {vxworks1-lib.s} {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd} {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}} "libvxworks1.so"} {"VxWorks executable test 1 (dynamic)" \ - "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" + "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" "" "-mregnames" {vxworks1.s} {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}} "vxworks1"} {"VxWorks executable test 2 (dynamic)" \ - "-Tvxworks1.ld -q --force-dynamic" + "-Tvxworks1.ld -q --force-dynamic" "" "-mregnames" {vxworks2.s} {{readelf --segments vxworks2.sd}} "vxworks2"} {"VxWorks executable test 2 (static)" - "-Tvxworks1.ld" + "-Tvxworks1.ld" "" "-mregnames" {vxworks2.s} {{readelf --segments vxworks2-static.sd}} "vxworks2"} {"VxWorks relax test" - "-Tvxworks1.ld --relax -q" + "-Tvxworks1.ld --relax -q" "" "-mregnames" {vxworks-relax.s} {{readelf --relocs vxworks-relax.rd}} "vxworks-relax"} {"VxWorks relocatable relax test" - "-Tvxworks1.ld -r --relax -q" + "-Tvxworks1.ld -r --relax -q" "" "-mregnames" {vxworks-relax-2.s} {{readelf --relocs vxworks-relax-2.rd}} "vxworks-relax-2"} @@ -90,8 +90,8 @@ proc supports_ppc64 { } { } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -99,145 +99,145 @@ proc supports_ppc64 { } { # readelf: Apply readelf options on result. Compare with regex (last arg). set ppcelftests { - {"Reloc section order" "-melf32ppc -shared -z nocombreloc" "-a32" {reloc.s} + {"Reloc section order" "-melf32ppc -shared -z nocombreloc" "" "-a32" {reloc.s} {{objdump -hw reloc.d}} "reloc.so"} - {"APUinfo section processing" "-melf32ppc" + {"APUinfo section processing" "-melf32ppc" "" "-a32 -me500" {apuinfo1.s apuinfo-nul.s apuinfo2.s} {{readelf -x2 apuinfo.rd}} "apuinfo"} - {"APUinfo NULL section processing" "-melf32ppc" + {"APUinfo NULL section processing" "-melf32ppc" "" "-a32 -me500" {apuinfo-nul1.s apuinfo-nul.s} {{readelf -x2 apuinfo-nul.rd}} "apuinfo"} - {"TLS32 static exec" "-melf32ppc" "-a32" {tls32.s tlslib32.s} + {"TLS32 static exec" "-melf32ppc" "" "-a32" {tls32.s tlslib32.s} {{objdump -dr tls32.d} {objdump -sj.got tls32.g} {objdump -sj.tdata tls32.t}} "tls32"} - {"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" {} + {"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" "" {} {} "libtlslib32.so"} - {"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o tmpdir/libtlslib32.so" "" {} + {"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {} {{readelf -WSsrl tlsexe32.r} {objdump -dr tlsexe32.d} {objdump -sj.got tlsexe32.g} {objdump -sj.tdata tlsexe32.t}} "tlsexe32"} - {"TLS32 shared" "-shared -melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o" "" {} + {"TLS32 shared" "-shared -melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o" "" "" {} {{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d} {objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}} "tls32.so"} - {"TLS32 markers" "-melf32ppc" "-a32" {tlsmark32.s tlslib32.s} + {"TLS32 markers" "-melf32ppc" "" "-a32" {tlsmark32.s tlslib32.s} {{objdump -dr tlsmark32.d}} "tlsmark32"} - {"TLS32 opt 1" "-melf32ppc" "-a32" {tlsopt1_32.s tlslib32.s} + {"TLS32 opt 1" "-melf32ppc" "" "-a32" {tlsopt1_32.s tlslib32.s} {{objdump -dr tlsopt1_32.d}} "tlsopt1_32"} - {"TLS32 opt 2" "-melf32ppc" "-a32" {tlsopt2_32.s tlslib32.s} + {"TLS32 opt 2" "-melf32ppc" "" "-a32" {tlsopt2_32.s tlslib32.s} {{objdump -dr tlsopt2_32.d}} "tlsopt2_32"} - {"TLS32 opt 3" "-melf32ppc" "-a32" {tlsopt3_32.s tlslib32.s} + {"TLS32 opt 3" "-melf32ppc" "" "-a32" {tlsopt3_32.s tlslib32.s} {{objdump -dr tlsopt3_32.d}} "tlsopt3_32"} - {"TLS32 opt 4" "-melf32ppc" "-a32" {tlsopt4_32.s tlslib32.s} + {"TLS32 opt 4" "-melf32ppc" "" "-a32" {tlsopt4_32.s tlslib32.s} {{objdump -dr tlsopt4_32.d}} "tlsopt4_32"} - {"Shared library with global symbol" "-shared -melf32ppc" "-a32" {sdalib.s} + {"Shared library with global symbol" "-shared -melf32ppc" "" "-a32" {sdalib.s} {} "sdalib.so"} - {"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "-a32" {sdadyn.s} + {"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "" "-a32" {sdadyn.s} {{objdump -R sdadyn.d}} "sdadyn"} - {"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "-a32" "relax.s" + {"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "" "-a32" "relax.s" {{objdump -dr relax.d}} "relax"} - {"relocatable relaxing" "-melf32ppc -r --relax" "-a32" "relax.s" + {"relocatable relaxing" "-melf32ppc -r --relax" "" "-a32" "relax.s" {{objdump -dr relaxr.d}} "relax"} } set ppc64elftests { - {"TLS static exec" "-melf64ppc" "-a64" {tls.s tlslib.s} + {"TLS static exec" "-melf64ppc" "" "-a64" {tls.s tlslib.s} {{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}} "tls"} - {"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" {} + {"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" "" {} {} "libtlslib.so"} - {"TLS helper old shared lib" "-shared -melf64ppc" "-a64" {oldtlslib.s} + {"TLS helper old shared lib" "-shared -melf64ppc" "" "-a64" {oldtlslib.s} {} "liboldlib.so"} - {"TLS dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/libtlslib.so" "" {} + {"TLS dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/libtlslib.so" "" "" {} {{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d} {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}} "tlsexe"} - {"TLS dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/liboldlib.so" "" {} + {"TLS dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/liboldlib.so" "" "" {} {{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d} {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}} "tlsexeold"} - {"TLS shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o" "" {} + {"TLS shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o" "" "" {} {{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d} {objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}} "tls.so"} - {"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "-a64" {tlstoc.s} + {"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "" "-a64" {tlstoc.s} {{objdump -dr tlstoc.d} {objdump -sj.got tlstoc.g} {objdump -sj.tdata tlstoc.t}} "tlstoc"} - {"TLSTOC dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/libtlslib.so" + {"TLSTOC dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/libtlslib.so" "" "" {} {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d} {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}} "tlsexetoc"} - {"TLSTOC dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/liboldlib.so" + {"TLSTOC dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/liboldlib.so" "" "" {} {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d} {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}} "tlsexetocold"} - {"TLSTOC shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o" "" {} + {"TLSTOC shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o" "" "" {} {{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d} {objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}} "tlstoc.so"} - {"TLS markers" "-melf64ppc" "-a64" {tlsmark.s tlslib.s} + {"TLS markers" "-melf64ppc" "" "-a64" {tlsmark.s tlslib.s} {{objdump -dr tlsmark.d}} "tlsmark"} - {"TLS opt 1" "-melf64ppc" "-a64" {tlsopt1.s tlslib.s} + {"TLS opt 1" "-melf64ppc" "" "-a64" {tlsopt1.s tlslib.s} {{objdump -dr tlsopt1.d}} "tlsopt1"} - {"TLS opt 2" "-melf64ppc" "-a64" {tlsopt2.s tlslib.s} + {"TLS opt 2" "-melf64ppc" "" "-a64" {tlsopt2.s tlslib.s} {{objdump -dr tlsopt2.d}} "tlsopt2"} - {"TLS opt 3" "-melf64ppc" "-a64" {tlsopt3.s tlslib.s} + {"TLS opt 3" "-melf64ppc" "" "-a64" {tlsopt3.s tlslib.s} {{objdump -dr tlsopt3.d}} "tlsopt3"} - {"TLS opt 4" "-melf64ppc" "-a64" {tlsopt4.s tlslib.s} + {"TLS opt 4" "-melf64ppc" "" "-a64" {tlsopt4.s tlslib.s} {{objdump -dr tlsopt4.d}} "tlsopt4"} - {"sym@tocbase" "-shared -melf64ppc" "-a64" {symtocbase-1.s symtocbase-2.s} + {"sym@tocbase" "-shared -melf64ppc" "" "-a64" {symtocbase-1.s symtocbase-2.s} {{objdump -dj.data symtocbase.d}} "symtocbase.so"} - {"TOC opt" "-melf64ppc" "-a64" {tocopt.s} + {"TOC opt" "-melf64ppc" "" "-a64" {tocopt.s} {{ld tocopt.out} {objdump -s tocopt.d}} "tocopt"} - {"TOC opt2" "-melf64ppc --defsym x=2" "-a64" {tocopt2.s} + {"TOC opt2" "-melf64ppc --defsym x=2" "" "-a64" {tocopt2.s} {{ld tocopt2.out} {objdump -s tocopt2.d}} "tocopt2"} - {"TOC opt3" "-melf64ppc -no-keep-memory --defsym x=2" "-a64" {tocopt3.s} + {"TOC opt3" "-melf64ppc -no-keep-memory --defsym x=2" "" "-a64" {tocopt3.s} {{objdump -s tocopt3.d}} "tocopt3"} - {"TOC opt4" "-melf64ppc -no-keep-memory --defsym x=2" "-a64" + {"TOC opt4" "-melf64ppc -no-keep-memory --defsym x=2" "" "-a64" {tocopt4a.s tocopt4b.s} {{objdump -s tocopt4.d}} "tocopt4"} - {"TOC opt5" "-melf64ppc" "-a64" {tocopt5.s} + {"TOC opt5" "-melf64ppc" "" "-a64" {tocopt5.s} {{objdump -s tocopt5.d}} "tocopt5"} } set ppceabitests { - {"VLE multiple segments 1" "-T vle-multiseg-1.ld" + {"VLE multiple segments 1" "-T vle-multiseg-1.ld" "" "-mregnames -mvle" {vle-multiseg.s} {{readelf "-l" vle-multiseg-1.d}} "vle-multiseg-1"} - {"VLE multiple segments 2" "-T vle-multiseg-2.ld" + {"VLE multiple segments 2" "-T vle-multiseg-2.ld" "" "-mregnames -mvle" {vle-multiseg.s} {{readelf "-l" vle-multiseg-2.d}} "vle-multiseg-2"} - {"VLE multiple segments 3" "-T vle-multiseg-3.ld" + {"VLE multiple segments 3" "-T vle-multiseg-3.ld" "" "-mregnames -mvle" {vle-multiseg.s} {{readelf "-l" vle-multiseg-3.d}} "vle-multiseg-3"} - {"VLE multiple segments 4" "-T vle-multiseg-4.ld" + {"VLE multiple segments 4" "-T vle-multiseg-4.ld" "" "-mregnames -mvle" {vle-multiseg.s} {{readelf "-l" vle-multiseg-4.d}} "vle-multiseg-4"} - {"VLE multiple segments 5" "-T vle-multiseg-5.ld" + {"VLE multiple segments 5" "-T vle-multiseg-5.ld" "" "-mregnames -mvle" {vle-multiseg.s} {{readelf "-l" vle-multiseg-5.d}} "vle-multiseg-5"} - {"VLE relocations 1" "-T vle.ld" + {"VLE relocations 1" "-T vle.ld" "" "-mvle" {vle-reloc-1.s vle-reloc-def-1.s} {{objdump "-Mvle -d" vle-reloc-1.d}} "vle-reloc-1"} - {"VLE relocations 2" "-T vle.ld" + {"VLE relocations 2" "-T vle.ld" "" "-mvle" {vle-reloc-2.s vle-reloc-def-2.s} {{objdump "-Mvle -d" vle-reloc-2.d}} "vle-reloc-2"} - {"VLE relocations 3" "-T vle.ld" + {"VLE relocations 3" "-T vle.ld" "" "-mvle" {vle-reloc-3.s vle-reloc-def-3.s} {{objdump "-Mvle -d" vle-reloc-3.d}} "vle-reloc-3"} } diff --git a/ld/testsuite/ld-s390/s390.exp b/ld/testsuite/ld-s390/s390.exp index fe0a6c1..34c5b33 100644 --- a/ld/testsuite/ld-s390/s390.exp +++ b/ld/testsuite/ld-s390/s390.exp @@ -27,8 +27,8 @@ if { !([istarget "s390-*-*"] || [istarget "s390x-*-*"]) } { } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -36,30 +36,30 @@ if { !([istarget "s390-*-*"] || [istarget "s390x-*-*"]) } { # readelf: Apply readelf options on result. Compare with regex (last arg). set s390tests { - {"TLS -fpic -shared transitions" "-shared -melf_s390" + {"TLS -fpic -shared transitions" "-shared -melf_s390" "" "-m31" {tlspic1.s tlspic2.s} {{readelf -Ssrl tlspic.rd} {objdump -dzrj.text tlspic.dd} {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} "libtlspic.so"} - {"Helper shared library" "-shared -melf_s390" + {"Helper shared library" "-shared -melf_s390" "" "-m31" {tlslib.s} {} "libtlslib.so"} {"TLS -fpic and -fno-pic exec transitions" - "-melf_s390 tmpdir/libtlslib.so" "-m31" {tlsbinpic.s tlsbin.s} + "-melf_s390 tmpdir/libtlslib.so" "" "-m31" {tlsbinpic.s tlsbin.s} {{readelf -Ssrl tlsbin.rd} {objdump -dzrj.text tlsbin.dd} {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} "tlsbin"} } set s390xtests { - {"TLS -fpic -shared transitions" "-shared -melf64_s390" + {"TLS -fpic -shared transitions" "-shared -melf64_s390" "" "-m64 -Aesame" {tlspic1_64.s tlspic2_64.s} {{readelf -WSsrl tlspic_64.rd} {objdump -dzrj.text tlspic_64.dd} {objdump -sj.got tlspic_64.sd} {objdump -sj.tdata tlspic_64.td}} "libtlspic_64.so"} - {"Helper shared library" "-shared -melf64_s390" + {"Helper shared library" "-shared -melf64_s390" "" "-m64 -Aesame" {tlslib_64.s} {} "libtlslib_64.so"} {"TLS -fpic and -fno-pic exec transitions" - "-melf64_s390 tmpdir/libtlslib_64.so" "-m64 -Aesame" + "-melf64_s390 tmpdir/libtlslib_64.so" "" "-m64 -Aesame" {tlsbinpic_64.s tlsbin_64.s} {{readelf -WSsrl tlsbin_64.rd} {objdump -dzrj.text tlsbin_64.dd} {objdump -sj.got tlsbin_64.sd} {objdump -sj.tdata tlsbin_64.td}} diff --git a/ld/testsuite/ld-sh/sh-vxworks.exp b/ld/testsuite/ld-sh/sh-vxworks.exp index 09e2cee..ab2c1c8 100644 --- a/ld/testsuite/ld-sh/sh-vxworks.exp +++ b/ld/testsuite/ld-sh/sh-vxworks.exp @@ -26,33 +26,33 @@ set endians { "--big" "-EB" "" "--little" "-EL" "-le" } foreach { gas_option ld_option suffix } $endians { set vxworkstests { - {"VxWorks shared library test 1" "-shared -Tvxworks1.ld $ld_option" + {"VxWorks shared library test 1" "-shared -Tvxworks1.ld $ld_option" "" "$gas_option" {vxworks1-lib.s} {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib$suffix.dd} {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}} "libvxworks1.so"} {"VxWorks executable test 1 (dynamic)" \ - "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic $ld_option" + "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic $ld_option" "" "$gas_option" {vxworks1.s} {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1$suffix.dd}} "vxworks1"} {"VxWorks executable test 2 (dynamic)" \ - "-Tvxworks1.ld -q --force-dynamic $ld_option" + "-Tvxworks1.ld -q --force-dynamic $ld_option" "" "$gas_option" {vxworks2.s} {{readelf --segments vxworks2.sd}} "vxworks2"} {"VxWorks executable test 2 (static)" - "-Tvxworks1.ld $ld_option" + "-Tvxworks1.ld $ld_option" "" "$gas_option" {vxworks2.s} {{readelf --segments vxworks2-static.sd}} "vxworks2"} - {"VxWorks shared library test 3" "-shared -Tvxworks1.ld $ld_option" + {"VxWorks shared library test 3" "-shared -Tvxworks1.ld $ld_option" "" "$gas_option" {vxworks3-lib.s} {{objdump -dr vxworks3-lib$suffix.dd}} "libvxworks3.so"} {"VxWorks executable test 3 (dynamic)" \ - "tmpdir/libvxworks3.so -Tvxworks1.ld -q --force-dynamic $ld_option" + "tmpdir/libvxworks3.so -Tvxworks1.ld -q --force-dynamic $ld_option" "" "$gas_option" {vxworks3.s} {{objdump -d vxworks3$suffix.dd}} "vxworks3"} diff --git a/ld/testsuite/ld-sh/sh64/sh64.exp b/ld/testsuite/ld-sh/sh64/sh64.exp index af6cbfe..2c64775 100644 --- a/ld/testsuite/ld-sh/sh64/sh64.exp +++ b/ld/testsuite/ld-sh/sh64/sh64.exp @@ -35,8 +35,8 @@ if { [istarget sh64*-*-netbsd*] || [istarget sh5*-*-netbsd*] } then { } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -47,89 +47,89 @@ if { [istarget sh64*-*-netbsd*] || [istarget sh5*-*-netbsd*] } then { # references, 64-bit ABI" as for 32-bit ABI and ELF so we re-use it. set sh64tests { - {"SH64 linking, 64-bit ABI" "-mshelf64" + {"SH64 linking, 64-bit ABI" "-mshelf64" "" "--abi=64" {sh64-1.s sh64-2.s} {{objdump -sr abi64.sd} {objdump -x abi64.xd}} "abi64.bin" } - {"SH64 linking, 64-bit ABI, -no-expand" "-mshelf64" + {"SH64 linking, 64-bit ABI, -no-expand" "-mshelf64" "" "--abi=64 -no-expand" {sh64-1.s sh64-2.s} {{objdump -sr abixx-noexp.sd}} "abi64-noexp.bin" } - {"SH64 linking, 32-bit ABI" "-mshelf32" + {"SH64 linking, 32-bit ABI" "-mshelf32" "" "--abi=32" {sh64-1.s sh64-2.s} {{objdump -sr abi32.sd} {objdump -x abi32.xd}} "abi32.bin" } - {"SH64 linking, 32-bit ABI, -no-expand" "-mshelf32" + {"SH64 linking, 32-bit ABI, -no-expand" "-mshelf32" "" "--abi=32 -no-expand" {sh64-1.s sh64-2.s} {{objdump -sr abixx-noexp.sd}} "abi32-noexp.bin" } - {"SH64 linking, single multi-ISA object" "-mshelf32" + {"SH64 linking, single multi-ISA object" "-mshelf32" "" "--abi=32" {shmix-1.s} {{objdump -sr mix1.sd} {objdump -x mix1.xd}} "mix1.bin" } - {"SH64 linking, single multi-ISA object, -no-expand" "-mshelf32" + {"SH64 linking, single multi-ISA object, -no-expand" "-mshelf32" "" "--abi=32 -no-expand" {shmix-1.s} {{objdump -sr mix1-noexp.sd}} "mix1-noexp.bin" } - {"SH64 linking, two different-ISA objects" "-mshelf32" + {"SH64 linking, two different-ISA objects" "-mshelf32" "" "--abi=32" {shmix-2.s shmix-3.s} {{objdump -sr mix2.sd} {objdump -x mix2.xd}} "mix2.bin" } - {"SH64 linking, two different-ISA objects, -no-expand" "-mshelf32" + {"SH64 linking, two different-ISA objects, -no-expand" "-mshelf32" "" "--abi=32 -no-expand" {shmix-2.s shmix-3.s} {{objdump -sr mix2-noexp.sd}} "mix2-noexp.bin" } - {"SH64 linking, single SHcompact" "-mshelf32" + {"SH64 linking, single SHcompact" "-mshelf32" "" "--isa=SHcompact" {shcmp-1.s} {{objdump -sr cmpct1.sd} {objdump -x cmpct1.xd}} "cmpct1.bin" } - {"SH64 inter-file datalabel references, 64-bit ABI" "-mshelf64" + {"SH64 inter-file datalabel references, 64-bit ABI" "-mshelf64" "" "--abi=64" {shdl-1.s shdl-2.s} {{objdump -sr shdl64.sd} {objdump -x shdl64.xd}} "shdl64.bin" } - {"SH64 inter-file datalabel references, 32-bit ABI" "-mshelf32" + {"SH64 inter-file datalabel references, 32-bit ABI" "-mshelf32" "" "--abi=32" {shdl-1.s shdl-2.s} {{objdump -sr shdl64.sd} {objdump -x shdl32.xd}} "shdl32.bin" } - {"SH64 inter-file datalabel references and gc-sections, 32-bit ABI" "-mshelf32 --gc-sections" + {"SH64 inter-file datalabel references and gc-sections, 32-bit ABI" "-mshelf32 --gc-sections" "" "--abi=32" {dlsection-1.s } {{objdump -sr dlsection.sd}} "dlsection32.bin" } - {"SH64 inter-file datalabel references and gc-sections, 64-bit ABI" "-mshelf64 --gc-sections" + {"SH64 inter-file datalabel references and gc-sections, 64-bit ABI" "-mshelf64 --gc-sections" "" "--abi=64" {dlsection-1.s } {{objdump -sr dlsection.sd}} "dlsection64.bin" } - {"SH64 simple partial linking, 32-bit ABI" "-mshelf32 -r" + {"SH64 simple partial linking, 32-bit ABI" "-mshelf32 -r" "" "--abi=32" {rel-1.s rel-2.s} {{objdump -sx rel32.xd}} "rel32.bin" } - {"SH64 simple partial linking, 64-bit ABI" "-mshelf64 -r" + {"SH64 simple partial linking, 64-bit ABI" "-mshelf64 -r" "" "--abi=64" {rel-1.s rel-2.s} {{objdump -sx rel64.xd}} "rel64.bin" } - {"SH64 partial linking with datalabel references, 32-bit ABI" "-mshelf32 -r" + {"SH64 partial linking with datalabel references, 32-bit ABI" "-mshelf32 -r" "" "--abi=32" {reldl-1.s reldl-2.s} {{readelf {-s -r -x 1 -x 3} reldl32.rd}} "reldl32.bin" } - {"SH64 partial linking with datalabel references, 64-bit ABI" "-mshelf64 -r" + {"SH64 partial linking with datalabel references, 64-bit ABI" "-mshelf64 -r" "" "--abi=64" {reldl-1.s reldl-2.s} {{readelf {-s -r -x 1 -x 3} reldl64.rd}} "reldl64.bin" } - {"Handling SH64 assembler-generated .cranges" "-mshelf32" + {"Handling SH64 assembler-generated .cranges" "-mshelf32" "" "--abi=32" {crange-2a.s crange-1.s} {{readelf {-S -s -r -x 1 -x 2 -x 4} crange1.rd}} "crange1.bin" } - {"Handling SH64 assembler-generated .cranges, partial linking" "-mshelf32 -r" + {"Handling SH64 assembler-generated .cranges, partial linking" "-mshelf32 -r" "" "--abi=32" {crange-2a.s} {{readelf {-S -s -r -x 2 -x 6} crangerel1.rd}} "crangerel1.bin" } - {"Mixing SH64 assembler-generated with linker-generated .cranges" "-mshelf32" + {"Mixing SH64 assembler-generated with linker-generated .cranges" "-mshelf32" "" "--abi=32" {crange-2a.s crange-2b.s crange-1.s} {{readelf {-S -s -r -x 2 -x 4} crange2.rd}} "crange2.bin" } {"Mixing SH64 assembler-generated with linker-generated .cranges, partial linking" - "-mshelf32 -r" + "-mshelf32 -r" "" "--abi=32" {crange-2a.s crange-2c.s crange-2d.s crange-2e.s} {{readelf {-S -s -r -x 2 -x 6} crangerel2.rd}} "crangerel2.bin" } - {"Merge and use of SH64 .cranges, some not originally in order" "-mshelf32" + {"Merge and use of SH64 .cranges, some not originally in order" "-mshelf32" "" "--abi=32" {crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s crange-2h.s crange-1.s} {{readelf {-S -s -x 2 -x 4} crange3.rd} {objdump -d crange3.dd}} "crange3.bin" } - {"Sorted SH64 .cranges, entry at SHcompact code" "-mshelf32 --entry diversion" + {"Sorted SH64 .cranges, entry at SHcompact code" "-mshelf32 --entry diversion" "" "--abi=32" {crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s crange-2h.s crange-1.s} {{readelf {-h -S -s -x 2 -x 4} crange3-cmpct.rd}} "crange3-cmpct.bin" } - {"Sorted SH64 .cranges, entry at SHmedia code" "-mshelf32 --entry diversion2" + {"Sorted SH64 .cranges, entry at SHmedia code" "-mshelf32 --entry diversion2" "" "--abi=32" {crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s crange-2h.s crange-1.s} {{readelf {-h -S -s -x 2 -x 4} crange3-media.rd}} "crange3-media.bin" } - {"SH64 Big Endianness" "-mshelf64 -Tendian.ld" + {"SH64 Big Endianness" "-mshelf64 -Tendian.ld" "" "--abi=64" {endian.s} {{objdump -s endian.sbd} {objdump -d endian.dbd}} "endianb.bin" } - {"SH64 Little Endianness" "-mshlelf64 -Tendian.ld" + {"SH64 Little Endianness" "-mshlelf64 -Tendian.ld" "" "--abi=64 --little" {endian.s} {{objdump -s endian.sld} {objdump -d endian.dld}} "endinanl.bin" } } diff --git a/ld/testsuite/ld-sparc/sparc.exp b/ld/testsuite/ld-sparc/sparc.exp index 2ecded2..3caa494 100644 --- a/ld/testsuite/ld-sparc/sparc.exp +++ b/ld/testsuite/ld-sparc/sparc.exp @@ -24,23 +24,23 @@ if {[istarget "sparc-*-vxworks"]} { set sparcvxworkstests { - {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" + {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" "" "-KPIC" {vxworks1-lib.s} {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd} {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}} "libvxworks1.so"} {"VxWorks executable test 1 (dynamic)" \ - "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" + "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" "" "" {vxworks1.s} {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}} "vxworks1"} {"VxWorks executable test 2 (dynamic)" \ - "-Tvxworks1.ld -q --force-dynamic" + "-Tvxworks1.ld -q --force-dynamic" "" "" {vxworks2.s} {{readelf --segments vxworks2.sd}} "vxworks2"} {"VxWorks executable test 2 (static)" - "-Tvxworks1.ld" + "-Tvxworks1.ld" "" "" {vxworks2.s} {{readelf --segments vxworks2-static.sd}} "vxworks2"} @@ -58,8 +58,8 @@ if { !([istarget "sparc*-*-elf*"] } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -67,58 +67,58 @@ if { !([istarget "sparc*-*-elf*"] # readelf: Apply readelf options on result. Compare with regex (last arg). set sparctests { - {"32-bit: TLS -fpic -shared transitions" "-shared -melf32_sparc" + {"32-bit: TLS -fpic -shared transitions" "-shared -melf32_sparc" "" "--32 -K PIC" {tlssunpic32.s tlspic.s} {{readelf -WSsrl tlssunpic32.rd} {objdump -drj.text tlssunpic32.dd} {objdump -sj.got tlssunpic32.sd} {objdump -sj.tdata tlssunpic32.td}} "libtlssunpic32.so"} - {"32-bit: Helper shared library" "-shared -melf32_sparc" + {"32-bit: Helper shared library" "-shared -melf32_sparc" "" "--32 -K PIC" {tlslib.s} {} "libtlslib32.so"} - {"32-bit: Another helper shared library" "-shared -melf32_sparc" + {"32-bit: Another helper shared library" "-shared -melf32_sparc" "" "--32 -K PIC" {tlssunbinpic32.s} {} "libtlssunbinpic32.so"} {"32-bit: TLS -fpic and -fno-pic exec transitions" - "-melf32_sparc tmpdir/libtlslib32.so tmpdir/tlssunbinpic32.o" + "-melf32_sparc tmpdir/libtlslib32.so tmpdir/tlssunbinpic32.o" "" "--32" {tlssunbin32.s} {{readelf -WSsrl tlssunbin32.rd} {objdump -drj.text tlssunbin32.dd} {objdump -sj.got tlssunbin32.sd} {objdump -sj.tdata tlssunbin32.td}} "tlssunbin32"} - {"32-bit: TLS -fno-pic -shared" "-shared -melf32_sparc" + {"32-bit: TLS -fno-pic -shared" "-shared -melf32_sparc" "" "--32" {tlssunnopic32.s tlsnopic.s} {{readelf -WSsrl tlssunnopic32.rd} {objdump -drj.text tlssunnopic32.dd} {objdump -sj.got tlssunnopic32.sd}} "libtlssunnopic32.so"} - {"32-bit: TLS in debug sections" "-melf32_sparc" + {"32-bit: TLS in debug sections" "-melf32_sparc" "" "--32" {tlsg32.s} {{objdump -sj.debug_foobar tlsg32.sd}} "tlsg32"} - {"32-bit: GOTDATA relocations" "-shared -melf32_sparc" + {"32-bit: GOTDATA relocations" "-shared -melf32_sparc" "" "--32 -K PIC" {gotop32.s} {{readelf -WSsrl gotop32.rd} {objdump -drj.text gotop32.dd} {objdump -sj.got gotop32.sd} {objdump -sj.data gotop32.td}} "libgotop32.so"} } set sparc64tests { - {"64-bit: TLS -fpic -shared transitions" "-shared -melf64_sparc" + {"64-bit: TLS -fpic -shared transitions" "-shared -melf64_sparc" "" "--64 -Av9 -K PIC" {tlssunpic64.s tlspic.s} {{readelf -WSsrl tlssunpic64.rd} {objdump -drj.text tlssunpic64.dd} {objdump -sj.got tlssunpic64.sd} {objdump -sj.tdata tlssunpic64.td}} "libtlssunpic64.so"} - {"64-bit: Helper shared library" "-shared -melf64_sparc" + {"64-bit: Helper shared library" "-shared -melf64_sparc" "" "--64 -Av9 -K PIC" {tlslib.s} {} "libtlslib64.so"} - {"64-bit: Another helper shared library" "-shared -melf64_sparc" + {"64-bit: Another helper shared library" "-shared -melf64_sparc" "" "--64 -Av9 -K PIC" {tlssunbinpic64.s} {} "libtlssunbinpic64.so"} {"64-bit: TLS -fpic and -fno-pic exec transitions" - "-melf64_sparc tmpdir/libtlslib64.so tmpdir/tlssunbinpic64.o" + "-melf64_sparc tmpdir/libtlslib64.so tmpdir/tlssunbinpic64.o" "" "--64 -Av9" {tlssunbin64.s} {{readelf -WSsrl tlssunbin64.rd} {objdump -drj.text tlssunbin64.dd} {objdump -sj.got tlssunbin64.sd} {objdump -sj.tdata tlssunbin64.td}} "tlssunbin64"} - {"64-bit: TLS -fno-pic -shared" "-shared -melf64_sparc" + {"64-bit: TLS -fno-pic -shared" "-shared -melf64_sparc" "" "--64 -Av9" {tlssunnopic64.s tlsnopic.s} {{readelf -WSsrl tlssunnopic64.rd} {objdump -drj.text tlssunnopic64.dd} {objdump -sj.got tlssunnopic64.sd}} "libtlssunnopic64.so"} - {"64-bit: TLS in debug sections" "-melf64_sparc" + {"64-bit: TLS in debug sections" "-melf64_sparc" "" "--64 -Av9" {tlsg64.s} {{objdump -sj.debug_foobar tlsg64.sd}} "tlsg64"} - {"64-bit: GOTDATA relocations" "-shared -melf64_sparc" + {"64-bit: GOTDATA relocations" "-shared -melf64_sparc" "" "--64 -K PIC" {gotop64.s} {{readelf -WSsrl gotop64.rd} {objdump -drj.text gotop64.dd} {objdump -sj.got gotop64.sd} {objdump -sj.data gotop64.td}} diff --git a/ld/testsuite/ld-tic6x/tic6x.exp b/ld/testsuite/ld-tic6x/tic6x.exp index 858e879..fe47650 100644 --- a/ld/testsuite/ld-tic6x/tic6x.exp +++ b/ld/testsuite/ld-tic6x/tic6x.exp @@ -31,21 +31,21 @@ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.d]] { set shlibtests { {"C6X shared library without --dsbt-index" - "-shared -Tdsbt.ld --dsbt-size=3" + "-shared -Tdsbt.ld --dsbt-size=3" "" "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s} {{readelf -WSsrld shlib-noindex.rd} {objdump "-drj.plt -j.text" shlib-noindex.dd} {objdump -sj.got shlib-noindex.sd}} "libtestn.so"} {"C6X shared library, LE, RELA" - "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" + "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" "" "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s} {{readelf -WSsrld shlib-1.rd} {objdump "-drj.plt -j.text" shlib-1.dd} {objdump -sj.got shlib-1.sd}} "libtest.so"} {"C6X nonstatic app using shared library, LE, RELA" - "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtest.so" + "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtest.so" "" "-mdsbt -mpic -mpid=near" {shlib-app-1.s} {{readelf -WSsrld shlib-app-1.rd} {objdump "-drj.plt -j.text" shlib-app-1.dd} @@ -53,14 +53,14 @@ set shlibtests { {objdump -R shlib-app-1.od}} "shlib-dynapp-1"} {"C6X shared library, LE, REL" - "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" + "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" "" "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s} {{readelf -WSsrld shlib-1r.rd} {objdump "-drj.plt -j.text" shlib-1r.dd} {objdump -sj.got shlib-1r.sd}} "libtestr.so"} {"C6X nonstatic app using shared library, LE, REL" - "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestr.so" + "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestr.so" "" "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-app-1r.s} {{readelf -WSsrld shlib-app-1r.rd} {objdump "-drj.plt -j.text" shlib-app-1r.dd} @@ -68,14 +68,14 @@ set shlibtests { {objdump -R shlib-app-1r.od}} "shlib-dynapp-1r"} {"C6X shared library, BE, RELA" - "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" + "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" "" "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s} {{readelf -WSsrld shlib-1b.rd} {objdump "-drj.plt -j.text" shlib-1b.dd} {objdump -sj.got shlib-1b.sd}} "libtestb.so"} {"C6X nonstatic app using shared library, BE, RELA" - "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestb.so" + "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestb.so" "" "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-app-1.s} {{readelf -WSsrld shlib-app-1b.rd} {objdump "-drj.plt -j.text" shlib-app-1b.dd} @@ -83,14 +83,14 @@ set shlibtests { {objdump -R shlib-app-1b.od}} "shlib-dynapp-1b"} {"C6X shared library, BE, REL" - "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" + "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" "" "-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-1.s shlib-2.s} {{readelf -WSsrld shlib-1rb.rd} {objdump "-drj.plt -j.text" shlib-1rb.dd} {objdump -sj.got shlib-1rb.sd}} "libtestrb.so"} {"C6X nonstatic app using shared library, BE, REL" - "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestrb.so" + "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestrb.so" "" "-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-app-1r.s} {{readelf -WSsrld shlib-app-1rb.rd} {objdump "-drj.plt -j.text" shlib-app-1rb.dd} @@ -99,7 +99,7 @@ set shlibtests { "shlib-dynapp-1rb"} {"C6X static app, LE, RELA" - "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" + "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" "" "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s shlib-app-1.s} {{readelf -WSsrld static-app-1.rd} {objdump "-drj.plt -j.text" static-app-1.dd} @@ -107,7 +107,7 @@ set shlibtests { {objdump -R static-app-1.od}} "static-app-1"} {"C6X static app, LE, REL" - "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" + "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" "" "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s} {{readelf -WSsrld static-app-1r.rd} {objdump "-drj.plt -j.text" static-app-1r.dd} @@ -115,7 +115,7 @@ set shlibtests { {objdump -R static-app-1r.od}} "static-app-1r"} {"C6X static app, BE, RELA" - "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" + "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" "" "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s shlib-app-1.s} {{readelf -WSsrld static-app-1b.rd} {objdump "-drj.plt -j.text" static-app-1b.dd} @@ -123,7 +123,7 @@ set shlibtests { {objdump -R static-app-1b.od}} "static-app-1b"} {"C6X static app, BE, REL" - "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" + "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" "" "-mdsbt -mpic -mpid=near -mbig-endian -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s} {{readelf -WSsrld static-app-1rb.rd} {objdump "-drj.plt -j.text" static-app-1rb.dd} diff --git a/ld/testsuite/ld-tilegx/tilegx.exp b/ld/testsuite/ld-tilegx/tilegx.exp index fbc80a2..7e0dbf9 100644 --- a/ld/testsuite/ld-tilegx/tilegx.exp +++ b/ld/testsuite/ld-tilegx/tilegx.exp @@ -26,14 +26,14 @@ if {!([istarget "tilegx-*-*"]) } { set tilegx_tests { { "tilegx little-endian relocation resolution linker test" - "-EL" + "-EL" "" "-EL" { "reloc.s" "external.s" } { {objdump -ds reloc-le.d} } "reloc" } { "tilegx big-endian relocation resolution linker test" - "-EB" + "-EB" "" "-EB" { "reloc.s" "external.s" } { {objdump -ds reloc-be.d} } diff --git a/ld/testsuite/ld-tilepro/tilepro.exp b/ld/testsuite/ld-tilepro/tilepro.exp index 1cb4fde..be10a20 100644 --- a/ld/testsuite/ld-tilepro/tilepro.exp +++ b/ld/testsuite/ld-tilepro/tilepro.exp @@ -26,7 +26,7 @@ if {!([istarget "tilepro-*-*"]) } { set tilepro_tests { { "tilepro relocation resolution linker test" - "" + "" "" "" { "reloc.s" "external.s" } { {objdump -ds reloc.d} } diff --git a/ld/testsuite/ld-undefined/entry.exp b/ld/testsuite/ld-undefined/entry.exp index 76e50f8..d90fbbb 100644 --- a/ld/testsuite/ld-undefined/entry.exp +++ b/ld/testsuite/ld-undefined/entry.exp @@ -21,7 +21,7 @@ set build_tests { {"Build libentry.a" - "" "" + "" "" "" {entry.s} {} "libentry.a"} } diff --git a/ld/testsuite/ld-vax-elf/vax-elf.exp b/ld/testsuite/ld-vax-elf/vax-elf.exp index 3240b1a..6941953 100644 --- a/ld/testsuite/ld-vax-elf/vax-elf.exp +++ b/ld/testsuite/ld-vax-elf/vax-elf.exp @@ -25,25 +25,25 @@ if { ![istarget vax-*-*] || ![is_elf_format] } { run_ld_link_tests [list \ [list "PLT test (shared library)" \ - "-shared -T plt-local-lib.ld" \ + "-shared -T plt-local-lib.ld" "" \ "-k" \ { plt-local-lib.s } \ { { objdump -d plt-local-lib.dd } } \ "plt-local-lib.so"] \ [list "PLT test (object 1)" \ - "-r" \ + "-r" "" \ "-k" \ { plt-local-hidden-pic.s } \ {} \ "plt-local-hidden-pic-r.o"] \ [list "PLT test (object 2)" \ - "-r" \ + "-r" "" \ "-k" \ { plt-local-rehidden-pic.s } \ {} \ "plt-local-rehidden-pic-r.o"] \ [list "PLT test (executable)" \ - "-T plt-local.ld tmpdir/plt-local-hidden-pic-r.o tmpdir/plt-local-rehidden-pic-r.o tmpdir/plt-local-lib.so" \ + "-T plt-local.ld tmpdir/plt-local-hidden-pic-r.o tmpdir/plt-local-rehidden-pic-r.o tmpdir/plt-local-lib.so" "" \ "" \ { plt-local.s } \ { { objdump -d plt-local.dd } } \ diff --git a/ld/testsuite/ld-x86-64/dwarfreloc.exp b/ld/testsuite/ld-x86-64/dwarfreloc.exp index 9de192e..b7e133e 100644 --- a/ld/testsuite/ld-x86-64/dwarfreloc.exp +++ b/ld/testsuite/ld-x86-64/dwarfreloc.exp @@ -42,10 +42,10 @@ if { !([istarget "x86_64-*-elf*"] set build_tests_ld { {"Build dwarfreloc1x.o" - "-r" "" + "-r" "" "" {dwarfreloc1.s} {} "dwarfreloc1x.o"} {"Build dwarfreloc2.o" - "-r" "" + "-r" "" "" {dwarfreloc2.s} {} "dwarfreloc2x.o"} } diff --git a/ld/testsuite/ld-x86-64/export-class.exp b/ld/testsuite/ld-x86-64/export-class.exp index af75b77..7bad2a8 100644 --- a/ld/testsuite/ld-x86-64/export-class.exp +++ b/ld/testsuite/ld-x86-64/export-class.exp @@ -44,7 +44,7 @@ proc x86_64_export_class_test { abi flag emul } { run_ld_link_tests [list \ [list \ "$testname (auxiliary shared object)" \ - "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" \ + "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" "" \ "$AFLAGS" \ { ../ld-elf/export-class-lib.s } \ {} \ @@ -58,7 +58,7 @@ proc x86_64_export_class_test { abi flag emul } { run_ld_link_tests [list \ [list \ "$testname (initial static object)" \ - "$LDFLAGS -r" \ + "$LDFLAGS -r" "" \ "$AFLAGS" \ { ../ld-elf/export-class-ref.s } \ {} \ @@ -75,7 +75,7 @@ proc x86_64_export_class_test { abi flag emul } { run_ld_link_tests [list \ [list \ "$testname (final shared object)" \ - "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/x86-64-$abi-export-class-ref-r.o tmpdir/x86-64-$abi-export-class-lib.so" \ + "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/x86-64-$abi-export-class-ref-r.o tmpdir/x86-64-$abi-export-class-lib.so" "" \ "$AFLAGS" \ { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \ [list \ diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp index 1ad54e6..0fd0312 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -36,8 +36,8 @@ if [istarget "*-*-nacl*"] { } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -46,87 +46,88 @@ if [istarget "*-*-nacl*"] { set x86_64tests { {"Helper shared library (basic PLT test)" - "-shared -melf_x86_64" "--64" {pltlib.s} {} "libpltlib.so"} + "-shared -melf_x86_64" "" "--64" {pltlib.s} {} "libpltlib.so"} {"basic PLT generation" - "-melf_x86_64 tmpdir/libpltlib.so" "--64" {plt.s} + "-melf_x86_64 tmpdir/libpltlib.so" "" "--64" {plt.s} {{objdump -drj.plt plt.pd}} "plt"} {"TLS -fpic -shared transitions" - "-shared -melf_x86_64 --no-ld-generated-unwind-info" + "-shared -melf_x86_64 --no-ld-generated-unwind-info" "" "--64" {tlspic1.s tlspic2.s} {{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd} {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} "libtlspic.so"} {"TLS descriptor -fpic -shared transitions" - "-shared -melf_x86_64 --no-ld-generated-unwind-info" + "-shared -melf_x86_64 --no-ld-generated-unwind-info" "" "--64" {tlsdesc.s tlspic2.s} {{readelf -WSsrld tlsdesc.rd} {objdump -drj.text tlsdesc.dd} {objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td} {objdump -drj.plt tlsdesc.pd}} "libtlsdesc.so"} - {"Helper shared library" "-shared -melf_x86_64" + {"Helper shared library" "-shared -melf_x86_64" "" "--64" {tlslib.s} {} "libtlslib.so"} {"TLS -fpic and -fno-pic exec transitions" - "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" + "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" "" "--64" {tlsbinpic.s tlsbin.s} {{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd} {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} "tlsbin"} {"TLS descriptor -fpic and -fno-pic exec transitions" - "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" + "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" "" "--64" {tlsbindesc.s tlsbin.s} {{readelf -WSsrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd} {objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}} "tlsbindesc"} {"TLS with global dynamic and descriptors" - "-shared -melf_x86_64 --no-ld-generated-unwind-info" + "-shared -melf_x86_64 --no-ld-generated-unwind-info" "" "--64" {tlsgdesc.s} {{readelf -WSsrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}} "libtlsgdesc.so"} - {"TLS in debug sections" "-melf_x86_64" + {"TLS in debug sections" "-melf_x86_64" "" "--64" {tlsg.s} {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"} - {"TLS GD->LE transition" "-melf_x86_64" + {"TLS GD->LE transition" "-melf_x86_64" "" "--64" {tlsgd1.s} {{objdump -dwr tlsgd1.dd}} "tlsgd1"} - {"TLS LD->LE transition" "-melf_x86_64" + {"TLS LD->LE transition" "-melf_x86_64" "" "--64" {tlsld1.s} {{objdump -dwr tlsld1.dd}} "tlsld1"} - {"TLS IE->LE transition" "-melf_x86_64" + {"TLS IE->LE transition" "-melf_x86_64" "" "--64" {tlsie1.s} {{objdump -dwr tlsie1.dd}} "tlsie1"} - {"Helper 64bit object 1" "-r -melf_x86_64" + {"Helper 64bit object 1" "-r -melf_x86_64" "" "--64" {mixed1a.s} {} "libmixe1a.o"} - {"Helper 32bit object 1" "-r -melf_i386" + {"Helper 32bit object 1" "-r -melf_i386" "" "--32" {mixed1b.s} {} "libmixe1b.o"} - {"Helper 64bit object 2" "-r -melf_x86_64" + {"Helper 64bit object 2" "-r -melf_x86_64" "" "--64" {mixed2a.s} {} "libmixe2a.o"} - {"Helper 32bit object 2" "-r -melf_i386" + {"Helper 32bit object 2" "-r -melf_i386" "" "--32" {mixed2b.s} {} "libmixe2b.o"} - {"Split by file with 'l' flag on section." "-split-by-file -r -melf_x86_64" + {"Split by file with 'l' flag on section." + "-split-by-file -r -melf_x86_64" "" "--64" {split-by-file1.s split-by-file2.s} {{readelf -SW split-by-file.rd}} "split-by-file.o"} - {"TLS X32 IE->LE transition" "-melf32_x86_64" + {"TLS X32 IE->LE transition" "-melf32_x86_64" "" "--x32" {tlsie4.s} {{objdump -dwr tlsie4.dd}} "tlsie4"} - {"TLS X32 GD->LE transition" "-melf32_x86_64" + {"TLS X32 GD->LE transition" "-melf32_x86_64" "" "--x32" {tlsgd4.s} {{objdump -dwr tlsgd4.dd}} "tlsgd4"} - {"Helper TLS GD->IE transition DSO" "-shared -melf_x86_64" + {"Helper TLS GD->IE transition DSO" "-shared -melf_x86_64" "" "--64" {tlsgd5b.s} {} "libtlsgd5.so"} - {"TLS GD->IE transition" "-melf_x86_64 tmpdir/libtlsgd5.so" + {"TLS GD->IE transition" "-melf_x86_64 tmpdir/libtlsgd5.so" "" "--64" {tlsgd5a.s} {{objdump -dwr tlsgd5.dd}} "tlsgd5"} - {"Helper TLS X32 GD->IE transition DSO" "-shared -melf32_x86_64" + {"Helper TLS X32 GD->IE transition DSO" "-shared -melf32_x86_64" "" "--x32" {tlsgd6b.s} {} "libtlsgd6.so"} - {"TLS X32 GD->IE transition" "-melf32_x86_64 tmpdir/libtlsgd6.so" + {"TLS X32 GD->IE transition" "-melf32_x86_64 tmpdir/libtlsgd6.so" "" "--x32" {tlsgd6a.s} {{objdump -dwr tlsgd6.dd}} "tlsgd6"} - {"TLS X32 LD->LE transition" "-melf32_x86_64" + {"TLS X32 LD->LE transition" "-melf32_x86_64" "" "--x32" {tlsld2.s} {{objdump -dwr tlsld2.dd}} "tlsld2"} - {"build 32-bit object with 33 locals" "-melf_x86_64 -e 0" "--32" {32bit.s} {{ ld incompatible.l }} "dummy" } - {"build 64-bit object" "-melf_x86_64 -e 0 --defsym foo=1" "--64" {64bit.s} {} "dummy" } - {"link mixed objects" "-melf_x86_64 -e 0 tmpdir/32bit.o tmpdir/64bit.o" "" {} { { ld incompatible.l } } "mixed"} + {"build 32-bit object with 33 locals" "-melf_x86_64 -e 0" "" "--32" {32bit.s} {{ ld incompatible.l }} "dummy" } + {"build 64-bit object" "-melf_x86_64 -e 0 --defsym foo=1" "" "--64" {64bit.s} {} "dummy" } + {"link mixed objects" "-melf_x86_64 -e 0 tmpdir/32bit.o tmpdir/64bit.o" "" "" {} { { ld incompatible.l } } "mixed"} } # So as to avoid rewriting every last test case here in a nacl variant, @@ -311,7 +312,7 @@ if { [isnative] && [which $CC] != 0 } { run_ld_link_tests { {"X32 DSO from x86-64 object" - "-shared -melf32_x86_64 tmpdir/simple-x32.o" "--x32" + "-shared -melf32_x86_64 tmpdir/simple-x32.o" "" "--x32" {dummy.s} {{readelf {-s --wide} x86-64-x32.rd}} "x86-64-x32"} } } diff --git a/ld/testsuite/ld-xc16x/xc16x.exp b/ld/testsuite/ld-xc16x/xc16x.exp index 2f7b9ff..5ab08c10 100644 --- a/ld/testsuite/ld-xc16x/xc16x.exp +++ b/ld/testsuite/ld-xc16x/xc16x.exp @@ -31,7 +31,7 @@ if {!([istarget "xc16x*-*-*"]) } { set xc16x_tests { { "xc16x pc-relative relocs linker test" - "" + "" "" "" { "pcreloc.s" } { {objdump -Dz pcreloc.d} } @@ -42,7 +42,7 @@ set xc16x_tests { set xc16xabs_tests { { "xc16x absolute relative address linker test" - "" + "" "" "" { "absrel.s" } { {objdump -Dz absrel.d} } @@ -53,7 +53,7 @@ set xc16xabs_tests { set xc16xoffset_tests { { "xc16x offset linker test" - "" + "" "" "" { "offset.s" } { {objdump -Dz offset.d} } diff --git a/ld/testsuite/ld-xstormy16/xstormy16.exp b/ld/testsuite/ld-xstormy16/xstormy16.exp index 27e9eeb..ceb6075 100644 --- a/ld/testsuite/ld-xstormy16/xstormy16.exp +++ b/ld/testsuite/ld-xstormy16/xstormy16.exp @@ -30,7 +30,7 @@ if {!([istarget "xstormy16*-*-*"]) } { set xstormy16_tests { { "xstormy16 pc-relative relocs linker test" - "" + "" "" "" { "pcrel.s" "external.s" } { {objdump -Dz pcrel.d} } diff --git a/ld/testsuite/ld-xtensa/xtensa.exp b/ld/testsuite/ld-xtensa/xtensa.exp index e6dc827..f2986ab 100644 --- a/ld/testsuite/ld-xtensa/xtensa.exp +++ b/ld/testsuite/ld-xtensa/xtensa.exp @@ -24,8 +24,8 @@ if { !([istarget "xtensa*-*-linux*"]) } { } # List contains test-items with 3 items followed by 2 lists: -# 0:name 1:ld options 2:assembler options -# 3:filenames of assembler files 4: action and options. 5: name of output file +# 0:name 1:ld early options 2:ld late options 3:assembler options +# 4:filenames of assembler files 5: action and options. 6: name of output file # Actions: # objdump: Apply objdump options on result. Compare with regex (last arg). @@ -34,16 +34,16 @@ if { !([istarget "xtensa*-*-linux*"]) } { set xtensatests { {"TLS -shared transitions" - "-shared -melf32xtensa" "" {tlspic1.s tlspic2.s} + "-shared -melf32xtensa" "" "" {tlspic1.s tlspic2.s} {{readelf -WSsrl tlspic.rd} {objdump "-drj.text --start-address=0x350" tlspic.dd} {objdump "-sj.text --stop-address=0x350" tlspic.sd} {objdump -sj.tdata tlspic.td}} "libtlspic.so"} - {"Helper shared library" "-shared -melf32xtensa" + {"Helper shared library" "-shared -melf32xtensa" "" "" {tlslib.s} {} "libtlslib.so"} {"TLS exec transitions" - "-melf32xtensa tmpdir/libtlslib.so" "" {tlsbin.s} + "-melf32xtensa tmpdir/libtlslib.so" "" "" {tlsbin.s} {{readelf -WSsrl tlsbin.rd} {objdump "-drj.text --start-address=0x400238" tlsbin.dd} {objdump "-sj.text --stop-address=0x400238" tlsbin.sd} diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index 0b156a1..4cd671d 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -1000,12 +1000,13 @@ proc ar_simple_create { ar aropts target objects } { # List contains test-items with 3 items followed by 2 lists, one item and # one optional item: # 0:name -# 1:ld/ar options -# 2:assembler options -# 3:filenames of assembler files -# 4:list of actions, options and expected outputs. -# 5:name of output file -# 6:compiler flags (optional) +# 1:ld/ar leading options, placed before object files +# 2:ld/ar trailing options, placed after object files +# 3:assembler options +# 4:filenames of assembler files +# 5:list of actions, options and expected outputs. +# 6:name of output file +# 7:compiler flags (optional) # # Actions: { command command-line-options file-containg-expected-output-regexps } # Commands: @@ -1041,11 +1042,12 @@ proc run_ld_link_tests { ldtests } { } set ld_options [lindex $testitem 1] - set as_options [lindex $testitem 2] - set src_files [lindex $testitem 3] - set actions [lindex $testitem 4] - set binfile tmpdir/[lindex $testitem 5] - set cflags [lindex $testitem 6] + set ld_after [lindex $testitem 2] + set as_options [lindex $testitem 3] + set src_files [lindex $testitem 4] + set actions [lindex $testitem 5] + set binfile tmpdir/[lindex $testitem 6] + set cflags [lindex $testitem 7] set objfiles {} set is_unresolved 0 set failed 0 @@ -1054,6 +1056,7 @@ proc run_ld_link_tests { ldtests } { # verbose -log "Testname is $testname" # verbose -log "ld_options is $ld_options" +# verbose -log "ld_after is $ld_after" # verbose -log "as_options is $as_options" # verbose -log "src_files is $src_files" # verbose -log "actions is $actions" @@ -1087,10 +1090,10 @@ proc run_ld_link_tests { ldtests } { } if { [regexp ".*\\.a$" $binfile] } { - if { ![ar_simple_create $ar $ld_options $binfile "$objfiles"] } { + if { ![ar_simple_create $ar $ld_options $binfile "$objfiles $ld_after"] } { set failed 1 } - } elseif { ![ld_simple_link $ld $binfile "-L$srcdir/$subdir $ld_options $objfiles"] } { + } elseif { ![ld_simple_link $ld $binfile "-L$srcdir/$subdir $ld_options $objfiles $ld_after"] } { set maybe_failed 1 set ld_output "$exec_output" } |