* lib/ld-lib.exp (run_ld_link_tests): Add another argument, pass
authorMaciej W. Rozycki <macro@linux-mips.org>
Tue, 19 Feb 2013 01:10:06 +0000 (01:10 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Tue, 19 Feb 2013 01:10:06 +0000 (01:10 +0000)
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.

43 files changed:
ld/testsuite/ChangeLog
ld/testsuite/ld-aarch64/aarch64-elf.exp
ld/testsuite/ld-alpha/alpha.exp
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/export-class.exp
ld/testsuite/ld-elf/comm-data.exp
ld/testsuite/ld-elf/eh-group.exp
ld/testsuite/ld-elf/elf.exp
ld/testsuite/ld-elf/export-class.exp
ld/testsuite/ld-elfvers/vers.exp
ld/testsuite/ld-frv/tls.exp
ld/testsuite/ld-i386/export-class.exp
ld/testsuite/ld-i386/i386.exp
ld/testsuite/ld-ia64/ia64.exp
ld/testsuite/ld-libs/libs.exp
ld/testsuite/ld-m68k/m68k.exp
ld/testsuite/ld-metag/metag.exp
ld/testsuite/ld-mips-elf/comm-data.exp
ld/testsuite/ld-mips-elf/export-class.exp
ld/testsuite/ld-mips-elf/mips-elf.exp
ld/testsuite/ld-mn10300/mn10300.exp
ld/testsuite/ld-pe/pe-compile.exp
ld/testsuite/ld-pe/pe.exp
ld/testsuite/ld-plugin/plugin.exp
ld/testsuite/ld-powerpc/aix52.exp
ld/testsuite/ld-powerpc/export-class.exp
ld/testsuite/ld-powerpc/powerpc.exp
ld/testsuite/ld-s390/s390.exp
ld/testsuite/ld-sh/sh-vxworks.exp
ld/testsuite/ld-sh/sh64/sh64.exp
ld/testsuite/ld-sparc/sparc.exp
ld/testsuite/ld-tic6x/tic6x.exp
ld/testsuite/ld-tilegx/tilegx.exp
ld/testsuite/ld-tilepro/tilepro.exp
ld/testsuite/ld-undefined/entry.exp
ld/testsuite/ld-vax-elf/vax-elf.exp
ld/testsuite/ld-x86-64/dwarfreloc.exp
ld/testsuite/ld-x86-64/export-class.exp
ld/testsuite/ld-x86-64/x86-64.exp
ld/testsuite/ld-xc16x/xc16x.exp
ld/testsuite/ld-xstormy16/xstormy16.exp
ld/testsuite/ld-xtensa/xtensa.exp
ld/testsuite/lib/ld-lib.exp

index a8e6c2c..6d034f8 100644 (file)
@@ -1,3 +1,50 @@
+2013-02-19  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * lib/ld-lib.exp (run_ld_link_tests): Add another argument, pass
+       its contents to ar_simple_create and ld_simple_link after
+       objfiles.
+       * ld-aarch64/aarch64-elf.exp: Adjust accordingly.
+       * ld-alpha/alpha.exp: Likewise.
+       * ld-arm/arm-elf.exp: Likewise.
+       * ld-arm/export-class.exp: Likewise.
+       * ld-elf/comm-data.exp: Likewise.
+       * ld-elf/eh-group.exp: Likewise.
+       * ld-elf/elf.exp: Likewise.
+       * ld-elf/export-class.exp: Likewise.
+       * ld-elfvers/vers.exp: Likewise.
+       * ld-frv/tls.exp: Likewise.
+       * ld-i386/export-class.exp: Likewise.
+       * ld-i386/i386.exp: Likewise.
+       * ld-ia64/ia64.exp: Likewise.
+       * ld-libs/libs.exp: Likewise.
+       * ld-m68k/m68k.exp: Likewise.
+       * ld-metag/metag.exp: Likewise.
+       * ld-mips-elf/comm-data.exp: Likewise.
+       * ld-mips-elf/export-class.exp: Likewise.
+       * ld-mips-elf/mips-elf.exp: Likewise.
+       * ld-mn10300/mn10300.exp: Likewise.
+       * ld-pe/pe-compile.exp: Likewise.
+       * ld-pe/pe.exp: Likewise.
+       * ld-plugin/plugin.exp: Likewise.
+       * ld-powerpc/aix52.exp: Likewise.
+       * ld-powerpc/export-class.exp: Likewise.
+       * ld-powerpc/powerpc.exp: Likewise.
+       * ld-s390/s390.exp: Likewise.
+       * ld-sh/sh-vxworks.exp: Likewise.
+       * ld-sh/sh64/sh64.exp: Likewise.
+       * ld-sparc/sparc.exp: Likewise.
+       * ld-tic6x/tic6x.exp: Likewise.
+       * ld-tilegx/tilegx.exp: Likewise.
+       * ld-tilepro/tilepro.exp: Likewise.
+       * ld-undefined/entry.exp: Likewise.
+       * ld-vax-elf/vax-elf.exp: Likewise.
+       * ld-x86-64/dwarfreloc.exp: Likewise.
+       * ld-x86-64/export-class.exp: Likewise.
+       * ld-x86-64/x86-64.exp: Likewise.
+       * ld-xc16x/xc16x.exp: Likewise.
+       * ld-xstormy16/xstormy16.exp: Likewise.
+       * ld-xtensa/xtensa.exp: Likewise.
+
 2013-02-18  Maciej W. Rozycki  <macro@codesourcery.com>
 
         * ld-mips-elf/jalx-2.ld: Include .rel.plt in output, give .plt a
index e85d1db..d4f6235 100644 (file)
@@ -24,8 +24,8 @@ if { ![is_elf_format] || ![istarget "aarch64*-*-*"] } {
 }
 
 # List contains test-items with 3 items followed by 2 lists:
-# 0:name 1:ld options 2:assembler options
-# 3:filenames of assembler files 4: action and options. 5: name of output file
+# 0:name 1:ld early options 2:ld late options 3:assembler options
+# 4:filenames of assembler files 5: action and options. 6: name of output file
 
 # Actions:
 # objdump: Apply objdump options on result.  Compare with regex (last arg).
@@ -33,7 +33,7 @@ if { ![is_elf_format] || ![istarget "aarch64*-*-*"] } {
 # readelf: Apply readelf options on result.  Compare with regex (last arg).
 
 set aarch64elftests {
-    {"EH Frame merge" "-Ttext 0x8000" "" {eh-frame-bar.s eh-frame-foo.s}
+    {"EH Frame merge" "-Ttext 0x8000" "" "" {eh-frame-bar.s eh-frame-foo.s}
        {{objdump --dwarf=frames eh-frame.d}} "eh-frame"}
 }
 
index ed95d88..c04a798 100644 (file)
@@ -28,8 +28,8 @@ if { !([istarget "alpha*-*-elf*"]
 }
 
 # List contains test-items with 3 items followed by 2 lists:
-# 0:name 1:ld options 2:assembler options
-# 3:filenames of assembler files 4: action and options. 5: name of output file
+# 0:name 1:ld early options 2:ld late options 3:assembler options
+# 4:filenames of assembler files 5: action and options. 6: name of output file
 
 # Actions:
 # objdump: Apply objdump options on result.  Compare with regex (last arg).
@@ -37,32 +37,33 @@ if { !([istarget "alpha*-*-elf*"]
 # readelf: Apply readelf options on result.  Compare with regex (last arg).
 
 set alphatests {
-    {"TLS -fpic -shared" "-shared -melf64alpha"
+    {"TLS -fpic -shared" "-shared -melf64alpha" ""
      "" {align.s tlspic1.s tlspic2.s}
      {{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd}
       {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
      "libtlspic.so"}
-    {"Helper shared library" "-shared -melf64alpha"
+    {"Helper shared library" "-shared -melf64alpha" ""
      "" {tlslib.s} {} "libtlslib.so"}
     {"TLS -fpic and -fno-pic exec"
-     "-melf64alpha tmpdir/libtlslib.so" "" {align.s tlsbinpic.s tlsbin.s}
+     "-melf64alpha tmpdir/libtlslib.so" "" "" {align.s tlsbinpic.s tlsbin.s}
      {{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
       {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
      "tlsbin"}
     {"TLS -fpic and -fno-pic exec -relax"
-     "-relax -melf64alpha tmpdir/libtlslib.so" "" {align.s tlsbinpic.s tlsbin.s}
+     "-relax -melf64alpha tmpdir/libtlslib.so" ""
+     "" {align.s tlsbinpic.s tlsbin.s}
      {{readelf -WSsrl tlsbinr.rd} {objdump -drj.text tlsbinr.dd}
       {objdump -sj.got tlsbinr.sd}}
      "tlsbinr"}
     {"empty got"
-     "-melf64alpha" ""
+     "-melf64alpha" "" ""
      {emptygot.s}
      {{nm "-n" emptygot.nm}}
      "emptygot"}
 }
 
 # Not implemented yet
-#   {"TLS in debug sections" "-melf64alpha"
+#   {"TLS in debug sections" "-melf64alpha" ""
 #    "" {tlsg.s}
 #    {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}
 
index 81ee0bd..414bc69 100644 (file)
 
 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"}
 }
index 2f8e866..1eeb9c3 100644 (file)
@@ -37,7 +37,7 @@ set testname "ARM symbol export class test"
 run_ld_link_tests [list \
     [list \
        "$testname (auxiliary shared object)" \
-       "-marmelf_linux_eabi -shared -version-script ../ld-elf/export-class-lib.ver" \
+       "-marmelf_linux_eabi -shared -version-script ../ld-elf/export-class-lib.ver" "" \
        "-EL" \
        { ../ld-elf/export-class-lib.s } \
        {} \
@@ -51,7 +51,7 @@ run_ld_link_tests [list \
 run_ld_link_tests [list \
     [list \
        "$testname (initial static object)" \
-       "-marmelf_linux_eabi -r" \
+       "-marmelf_linux_eabi -r" "" \
        "-EL" \
        { ../ld-elf/export-class-ref.s } \
        {} \
@@ -68,7 +68,7 @@ run_ld_link_tests [list \
 run_ld_link_tests [list \
     [list \
        "$testname (final shared object)" \
-       "-marmelf_linux_eabi -shared -Tdata=0x12340000 tmpdir/arm-export-class-ref-r.o tmpdir/arm-export-class-lib.so" \
+       "-marmelf_linux_eabi -shared -Tdata=0x12340000 tmpdir/arm-export-class-ref-r.o tmpdir/arm-export-class-lib.so" "" \
        "-EL" \
        { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
        { \
index 71b856d..e180693 100644 (file)
@@ -43,7 +43,7 @@ set testname "Common symbol override test"
 run_ld_link_tests [list \
     [list \
        "$testname (auxiliary shared object build)" \
-       "-shared" \
+       "-shared" "" \
        "" \
        { comm-data1.s } \
        { \
@@ -67,7 +67,7 @@ setup_xfail "arm*-*-*" "ld/13802"
 run_ld_link_tests [list \
     [list \
        "$testname" \
-       "-Ltmpdir -lcomm-data" \
+       "-Ltmpdir -lcomm-data" "" \
        "$AFLAGS" \
        { comm-data2.s } \
        { \
@@ -79,7 +79,7 @@ run_ld_link_tests [list \
     ] \
     [list \
        "$testname 3a" \
-       "-static" \
+       "-static" "" \
        "" \
        { comm-data3a.s comm-data3b.s } \
        { \
@@ -89,7 +89,7 @@ run_ld_link_tests [list \
     ] \
     [list \
        "$testname 3b" \
-       "-static" \
+       "-static" "" \
        "" \
        { comm-data3b.s comm-data3a.s } \
        { \
index 6de3ecb..6fe7058 100644 (file)
@@ -58,7 +58,7 @@ if [is_elf64 "tmpdir/eh-group1size.o"] {
 
 set build_tests_ld [list                       \
   [list "Build eh-group1.o"                    \
-   "-r" "$as_options"                          \
+   "-r" "" "$as_options"                       \
    {eh-group1.s eh-group2.s} {} "eh-group.o"]  \
 ]
 
index 50634c6..236e15b 100644 (file)
@@ -56,23 +56,23 @@ if { [is_remote host] } then {
 if { ![istarget hppa64*-hpux*] } {
     run_ld_link_tests {
        {"Build symbol3.a"
-           "" ""
+           "" "" ""
            {symbol3.s} {} "symbol3.a"}
        {"Build symbol3w.a"
-           "" ""
+           "" "" ""
            {symbol3w.s} {} "symbol3w.a"}
     }
 
     if { [check_shared_lib_support] } then {
        run_ld_link_tests {
-           {"Build pr14170a.o" "" "" "pr14170a.s" {} "pr14170.a" }
+           {"Build pr14170a.o" "" "" "" "pr14170a.s" {} "pr14170.a" }
        }
        setup_xfail "tic6x-*-*"
        run_ld_link_tests {
            {"Build shared library for pr14170"
-               "-shared" "" "pr14170b.s" {} "pr14170.so" }
+               "-shared" "" "" "pr14170b.s" {} "pr14170.so" }
            {"PR ld/14170"
-               "tmpdir/pr14170a.o tmpdir/pr14170.so" "" "pr14170c.s"
+               "tmpdir/pr14170a.o tmpdir/pr14170.so" "" "" "pr14170c.s"
                { } "pr14170" }
        }
     }
@@ -88,9 +88,9 @@ if { [check_shared_lib_support] } then {
     setup_xfail "tic6x-*-*"
     run_ld_link_tests {
        {"Build shared library for next test"
-           "-shared" "" "note-3.s" {} "note-3.so" }
+           "-shared" "" "" "note-3.s" {} "note-3.so" }
        {"Link using broken linker script"
-           "--script note-3.t tmpdir/note-3.so" "" ""
+           "--script note-3.t tmpdir/note-3.so" "" "" ""
            { { ld "note-3.l" } }
            "a.out" }
     }
@@ -108,11 +108,11 @@ if { [istarget *-*-linux*]
      || [istarget *-*-gnu*] } {
     run_ld_link_tests {
        {"Weak symbols in dynamic objects 1 (support)"
-           "-shared" "" {weak-dyn-1a.s}
+           "-shared" "" "" {weak-dyn-1a.s}
            {}
            "libweakdyn1a.so"}
        {"Weak symbols in dynamic objects 1 (main test)"
-           "-shared tmpdir/libweakdyn1a.so -Tweak-dyn-1.ld" "" {weak-dyn-1b.s}
+           "-shared tmpdir/libweakdyn1a.so -Tweak-dyn-1.ld" "" "" {weak-dyn-1b.s}
            {{readelf {--relocs --wide} weak-dyn-1.rd}}
            "libweakdyn1b.so"}
     }
@@ -122,7 +122,7 @@ if { [istarget *-*-linux*]
 if { [check_gc_sections_available] && ![istarget "v850-*-*"] } {
     run_ld_link_tests {
        {"--gc-sections on tls variable"
-           "--gc-section" "" {tls_gc.s} {} "tls_gc"}
+           "--gc-section" "" "" {tls_gc.s} {} "tls_gc"}
     }
 }
 
@@ -130,9 +130,9 @@ if { [istarget *-*-*linux*]
      || [istarget *-*-nacl*]
      || [istarget *-*-gnu*] } {
     run_ld_link_tests {
-       {"stack exec" "-z execstack" "" {stack.s}
+       {"stack exec" "-z execstack" "" "" {stack.s}
            {{readelf {-Wl} stack-exec.rd}} "stack-exec.exe"}
-       {"stack size" "-z stack-size=0x123400" "" {stack.s}
+       {"stack size" "-z stack-size=0x123400" "" "" {stack.s}
            {{readelf {-Wl} stack-size.rd}} "stack-size.exe"}
     }
 }
index 81ce55a..38c635c 100644 (file)
@@ -44,7 +44,7 @@ set testname "Symbol export class test"
 run_ld_link_tests [list \
     [list \
        "$testname (auxiliary shared object)" \
-       "-shared -version-script export-class-lib.ver" \
+       "-shared -version-script export-class-lib.ver" "" \
        "" \
        { export-class-lib.s } \
        {} \
@@ -58,7 +58,7 @@ run_ld_link_tests [list \
 run_ld_link_tests [list \
     [list \
        "$testname (initial static object)" \
-       "-r" \
+       "-r" "" \
        "" \
        { export-class-ref.s } \
        {} \
@@ -75,7 +75,7 @@ run_ld_link_tests [list \
 run_ld_link_tests [list \
     [list \
        "$testname (final shared object)" \
-       "-shared -Tdata=0x12340000 tmpdir/export-class-ref-r.o tmpdir/export-class-lib.so" \
+       "-shared -Tdata=0x12340000 tmpdir/export-class-ref-r.o tmpdir/export-class-lib.so" "" \
        "" \
        { export-class-dep.s export-class-def.s } \
        { \
index 1e9ff53..39ee1b0 100644 (file)
@@ -934,15 +934,15 @@ if [istarget sparc*-*-*] {
   set as_pic_flags "-K PIC"
 }
 run_ld_link_tests [list "\"vers24a\"
-                        \"-shared --version-script $srcdir/$subdir/vers24.map\"
+                        \"-shared --version-script $srcdir/$subdir/vers24.map\" \"\"
                         \"$as_pic_flags $as_options\" {vers24a.c vers24b.c} { { readelf -Wrs vers24.rd } }
                         \"libvers24a.so\" \"-fpic\""]
 run_ld_link_tests [list "\"vers24b\"
-                        \"-shared --version-script $srcdir/$subdir/vers24.map\"
+                        \"-shared --version-script $srcdir/$subdir/vers24.map\" \"\"
                         \"$as_pic_flags $as_options\" {vers24b.c vers24a.c} { { readelf -Wrs vers24.rd } }
                         \"libvers24b.so\" \"-fpic\""]
 run_ld_link_tests [list "\"vers24c\"
-                        \"-shared --version-script $srcdir/$subdir/vers24.map\"
+                        \"-shared --version-script $srcdir/$subdir/vers24.map\" \"\"
                         \"$as_pic_flags $as_options\" {vers24c.c} { { readelf -Wrs vers24.rd } }
                         \"libvers24c.so\" \"-fpic\""]
 
index bb3d6a3..1266be7 100644 (file)
@@ -31,7 +31,7 @@ global LDFLAGS
 set saved_LDFLAGS "$LDFLAGS"
 set LDFLAGS "$LDFLAGS -melf32frvfd"
 
-run_ld_link_tests [list [list "tls-1-dep" "$LDFLAGS -shared" "" "tls-1-dep.s" [list] "tls-1-dep.so" ""]]
+run_ld_link_tests [list [list "tls-1-dep" "$LDFLAGS -shared" "" "" "tls-1-dep.s" [list] "tls-1-dep.so" ""]]
 run_dump_test "tls-static-1"
 run_dump_test "tls-dynamic-1"
 run_dump_test "tls-pie-1"
index 88f47b5..98524a3 100644 (file)
@@ -44,7 +44,7 @@ set testname "i386 symbol export class test"
 run_ld_link_tests [list \
     [list \
        "$testname (auxiliary shared object)" \
-       "-shared -version-script ../ld-elf/export-class-lib.ver" \
+       "-shared -version-script ../ld-elf/export-class-lib.ver" "" \
        "" \
        { ../ld-elf/export-class-lib.s } \
        {} \
@@ -58,7 +58,7 @@ run_ld_link_tests [list \
 run_ld_link_tests [list \
     [list \
        "$testname (initial static object)" \
-       "-r" \
+       "-r" "" \
        "" \
        { ../ld-elf/export-class-ref.s } \
        {} \
@@ -75,7 +75,7 @@ run_ld_link_tests [list \
 run_ld_link_tests [list \
     [list \
        "$testname (final shared object)" \
-       "-shared -Tdata=0x12340000 tmpdir/i386-export-class-ref-r.o tmpdir/i386-export-class-lib.so" \
+       "-shared -Tdata=0x12340000 tmpdir/i386-export-class-ref-r.o tmpdir/i386-export-class-lib.so" "" \
        "" \
        { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
        { \
index f5835ac..2667381 100644 (file)
 
 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"}
 }
index 6d4860e..1f658ac 100644 (file)
@@ -28,8 +28,8 @@ if { !([istarget "ia64-*-elf*"]
 }
 
 # List contains test-items with 3 items followed by 2 lists:
-# 0:name 1:ld options 2:assembler options
-# 3:filenames of assembler files 4: action and options. 5: name of output file
+# 0:name 1:ld early options 2:ld late options 3:assembler options
+# 4:filenames of assembler files 5: action and options. 6: name of output file
 
 # Actions:
 # objdump: Apply objdump options on result.  Compare with regex (last arg).
@@ -37,19 +37,19 @@ if { !([istarget "ia64-*-elf*"]
 # readelf: Apply readelf options on result.  Compare with regex (last arg).
 
 set ia64tests {
-    {"TLS -fpic -shared" "-shared"
+    {"TLS -fpic -shared" "-shared" ""
      "-mtune=itanium1" {tlspic1.s tlspic2.s}
      {{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd}
       {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
       "libtlspic.so"}
-    {"Helper shared library" "-shared"
+    {"Helper shared library" "-shared" ""
      "" {tlslib.s} {} "libtlslib.so"}
     {"TLS -fpic and -fno-pic exec"
-     "tmpdir/libtlslib.so" "-mtune=itanium1" {tlsbinpic.s tlsbin.s}
+     "tmpdir/libtlslib.so" "" "-mtune=itanium1" {tlsbinpic.s tlsbin.s}
      {{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
       {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
       "tlsbin"}
-    {"TLS in debug sections" ""
+    {"TLS in debug sections" "" ""
      "" {tlsg.s}
      {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}
 }
index 6b64d8c..96d9850 100644 (file)
@@ -24,7 +24,7 @@ file mkdir tmpdir/libtmp
 # Check that -l: works.  The first "test" just creates an object file
 # for the second one.
 run_ld_link_tests {
-    {"-l: test (preparation)" "-r" "" {lib-1.s} {} "libtmp/anobject"}
-    {"-l: test" "-r -Ltmpdir/libtmp -l:anobject" "" {lib-2.s}
+    {"-l: test (preparation)" "-r" "" "" {lib-1.s} {} "libtmp/anobject"}
+    {"-l: test" "-r -Ltmpdir/libtmp -l:anobject" "" "" {lib-2.s}
      {{nm -C lib-2.d}} "lib-2"}
 }
index 843d919..6917436 100644 (file)
@@ -25,8 +25,8 @@ if { ![is_elf_format] || ![istarget m68k-*-*] } {
 }
 
 # List contains test-items with 3 items followed by 2 lists:
-# 0:name 1:ld options 2:assembler options
-# 3:filenames of assembler files 4: action and options. 5: name of output file
+# 0:name 1:ld early options 2:ld late options 3:assembler options
+# 4:filenames of assembler files 5: action and options. 6: name of output file
 
 # Actions:
 # objdump: Apply objdump options on result.  Compare with regex (last arg).
@@ -34,17 +34,17 @@ if { ![is_elf_format] || ![istarget m68k-*-*] } {
 # readelf: Apply readelf options on result.  Compare with regex (last arg).
 
 set m68k_mergeok_tests {
-    {"merge isa-a isa-a:nodiv" "-T merge.ld" ""
+    {"merge isa-a isa-a:nodiv" "-T merge.ld" "" ""
        {isaa.s isaa-nodiv.s} {{objdump -p isaa.d}} "isaa-nodiv"}
-    {"merge isa-a isa-b" "-T merge.ld" ""
+    {"merge isa-a isa-b" "-T merge.ld" "" ""
        {isaa.s isab.s} {{objdump -p isab.d}} "isab"}
-    {"merge isa-a isa-aplus" "-T merge.ld" ""
+    {"merge isa-a isa-aplus" "-T merge.ld" "" ""
        {isaa.s isaaplus.s} {{objdump -p isaaplus.d}} "isaplus"}
-    {"merge isa-b isa-b:nousp" "-T merge.ld" ""
+    {"merge isa-b isa-b:nousp" "-T merge.ld" "" ""
        {isab.s isab-nousp.s} {{objdump -p isab.d}} "isab"}
-    {"merge isa-a isa-a:mac" "-T merge.ld" ""
+    {"merge isa-a isa-a:mac" "-T merge.ld" "" ""
        {isaa.s isaa-mac.s} {{objdump -p isaa-mac.d}} "isaa-mac"}
-    {"merge isa-b isa-b:float" "-T merge.ld" ""
+    {"merge isa-b isa-b:float" "-T merge.ld" "" ""
        {isab.s isab-float.s} {{objdump -p isab-float.d}} "isab-float"}}
 
 run_ld_link_tests $m68k_mergeok_tests
@@ -61,7 +61,7 @@ run_dump_test "merge-ok-1c"
 foreach { id sources } { a { plt1.s } b { plt1-empty.s plt1.s } } {
     foreach arch { 68020 cpu32 isab isac } {
        run_ld_link_tests [list \
-           [list "PLT 1$id ($arch)" "-shared -T plt1.ld" "-m$arch" \
+           [list "PLT 1$id ($arch)" "-shared -T plt1.ld" "" "-m$arch" \
                 $sources [list [list objdump -dr plt1-$arch.d]] \
                 plt1-${id}-${arch}.so]]
     }
@@ -77,15 +77,15 @@ if { [istarget m68k-*-linux*] } then {
 
     set m68k_tls_tests {
        {"TLS definition"
-           "-shared" "" {tls-def-1.s}
+           "-shared" "" "" {tls-def-1.s}
            {{nm -ngD tls-def-1.d}}
            "tls-def-1.so"}
        {"TLS direct symbol use"
-           "-shared tmpdir/tls-def-1.so" "" {tls-gd-1.s}
+           "-shared tmpdir/tls-def-1.so" "" "" {tls-gd-1.s}
            {{nm -ngD tls-gd-1.d2} {readelf -d tls-gd-1.d3}}
            "tls-gd-1.so"}
        {"TLS indirect symbol use"
-           "--copy-dt-needed-entries tmpdir/tls-gd-1.so -rpath-link ./" "" {tls-main-1.s}
+           "--copy-dt-needed-entries tmpdir/tls-gd-1.so -rpath-link ./" "" "" {tls-main-1.s}
            {{readelf -d tls-main-1.d}}
            "tls-main-1"}}
 
index 928703d..b817e10 100644 (file)
@@ -26,32 +26,32 @@ if {!([istarget "metag-*-*"]) } {
 # Set up a list as described in ld-lib.exp
 
 set metag_tests {
-    {"Meta pc-relative relocs linker test" "" ""
+    {"Meta pc-relative relocs linker test" "" "" ""
      { "pcrel.s" "external.s" }
      { {objdump -Dz pcrel.d} }
      "pcrel"
     }
-    {"Simple PIC shared library" "-shared" ""
+    {"Simple PIC shared library" "-shared" "" ""
      {shared.s}
      { {objdump -fdw shared.d} {objdump -Rw shared.r} }
      "shared.so"
     }
-    {"Long branch stub" "" ""
+    {"Long branch stub" "" "" ""
      {stub.s}
      { {objdump -fdw stub.d} }
      "stub"
     }
-    {"Shared library for stub tests" "-shared" ""
+    {"Shared library for stub tests" "-shared" "" ""
      {stub_shared.s}
      { {objdump -fdw stub_shared.d} {objdump -Rw stub_shared.r} }
      "stub_shared.so"
     }
-    {"Long branch stub (PIC, app)" "tmpdir/stub_shared.so" ""
+    {"Long branch stub (PIC, app)" "tmpdir/stub_shared.so" "" ""
      {stub_pic_app.s}
      { {objdump -fdw stub_pic_app.d} {objdump -Rw stub_pic_app.r} }
      "stub_pic_app"
     }
-    {"Long branch stub (PIC, shared)" "-shared" ""
+    {"Long branch stub (PIC, shared)" "-shared" "" ""
      {stub_pic_shared.s}
      { {objdump -fdw stub_pic_shared.d} }
      "stub_pic_shared.so"
index 943e852..28ca290 100644 (file)
@@ -43,7 +43,7 @@ proc mips_comm_data_test { abi flag emul reloc } {
     run_ld_link_tests [list \
        [list \
            "$testname (auxiliary shared object build)" \
-           "$LDFLAGS -shared" \
+           "$LDFLAGS -shared" "" \
            "$AFLAGS -call_shared" \
            { ../ld-elf/comm-data1.s } \
            { \
@@ -64,7 +64,7 @@ proc mips_comm_data_test { abi flag emul reloc } {
     run_ld_link_tests [list \
        [list \
            "$testname" \
-           "$LDFLAGS $ZFLAG -Ltmpdir -lmips-$abi-$reloc-comm-data" \
+           "$LDFLAGS $ZFLAG -Ltmpdir -lmips-$abi-$reloc-comm-data" "" \
            "$AFLAGS -call_nonpic" \
            { ../ld-elf/comm-data2.s } \
            { \
index b7ce07c..150cc41 100644 (file)
@@ -44,7 +44,7 @@ proc mips_export_class_test { abi flag emul } {
     run_ld_link_tests [list \
        [list \
            "$testname (auxiliary shared object)" \
-           "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" \
+           "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" "" \
            "$AFLAGS" \
            { ../ld-elf/export-class-lib.s } \
            {} \
@@ -58,7 +58,7 @@ proc mips_export_class_test { abi flag emul } {
     run_ld_link_tests [list \
        [list \
            "$testname (initial static object)" \
-           "$LDFLAGS -r" \
+           "$LDFLAGS -r" "" \
            "$AFLAGS" \
            { ../ld-elf/export-class-ref.s } \
            {} \
@@ -75,7 +75,7 @@ proc mips_export_class_test { abi flag emul } {
     run_ld_link_tests [list \
        [list \
            "$testname (final shared object)" \
-           "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/mips-$abi-export-class-ref-r.o tmpdir/mips-$abi-export-class-lib.so" \
+           "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/mips-$abi-export-class-ref-r.o tmpdir/mips-$abi-export-class-lib.so" "" \
            "$AFLAGS" \
            { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
            [list \
index 9860488..902ae00 100644 (file)
 
 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 \
index 617ad8a..8eb666d 100644 (file)
@@ -25,7 +25,7 @@ if {!([istarget "am3*-*-*"]) && !([istarget "mn10300*-*-*"]) } {
 set mn10300_tests {
     {
        "am33 string merging"
-       "-relax -Ttext 0x8000074"
+       "-relax -Ttext 0x8000074" ""
        ""
        { "i36434.s" "i36434-2.s" }
        { {objdump -dz i36434.d} }
@@ -33,7 +33,7 @@ set mn10300_tests {
     }
     {
        "difference of two same-section symbols"
-       "-Ttext 0"
+       "-Ttext 0" ""
        ""
        { "i112045-1.s" }
        { {objdump -d i112045-1.d} }
@@ -41,7 +41,7 @@ set mn10300_tests {
     }
     {
        "difference of two same-section symbols where the difference is held in another section"
-       "-relax -Ttext 100"
+       "-relax -Ttext 100" ""
        ""
        { "i112045-3.s" }
        { {objdump -D i112045-3.d} }
@@ -49,7 +49,7 @@ set mn10300_tests {
     }
     {
        "relaxation and alignment directives"
-       "-relax -Ttext 100 -Tbss 300"
+       "-relax -Ttext 100 -Tbss 300" ""
        ""
        { "i127740.s" }
        { {objdump -d i127740.d} }
@@ -57,7 +57,7 @@ set mn10300_tests {
     }
     {
        "adjustment of symbols due to relaxation"
-       "-Tdata 1f -Ttext 0 -relax"
+       "-Tdata 1f -Ttext 0 -relax" ""
        ""
        { "i135409-1.s" }
        { {readelf --syms i135409-1.d} }
@@ -65,7 +65,7 @@ set mn10300_tests {
     }
     {
        "adjustment of symbols due to relaxation (with alignment directives)"
-       "-Tdata 1f -Ttext 0 -relax"
+       "-Tdata 1f -Ttext 0 -relax" ""
        ""
        { "i135409-2.s" }
        { {readelf --syms i135409-2.d} }
@@ -73,7 +73,7 @@ set mn10300_tests {
     }
     {
        "adjustment of symbols due to relaxation (with a symbol in the deleted region)"
-       "-Tdata 1f -Ttext 0 -relax"
+       "-Tdata 1f -Ttext 0 -relax" ""
        ""
        { "i135409-3.s" }
        { {objdump -d i135409-3.d} }
@@ -81,7 +81,7 @@ set mn10300_tests {
     }
     {
        "adjusting a 16-bit forward branch"
-       "-Ti135409-4.t -relax"
+       "-Ti135409-4.t -relax" ""
        ""
        { "i135409-4.s" }
        { {objdump -d i135409-4.d} }
@@ -89,7 +89,7 @@ set mn10300_tests {
     }
     {
        "adjusting a 16-bit backward branch"
-       "-Ti135409-5.t -relax"
+       "-Ti135409-5.t -relax" ""
        ""
        { "i135409-5.s" }
        { {objdump -d i135409-5.d} }
@@ -97,7 +97,7 @@ set mn10300_tests {
     }
     {
        "relaxing offsets into a merged string section"
-       "-Ti143317.t -shared -relax"
+       "-Ti143317.t -shared -relax" ""
        ""
        { "i143317.s" }
        { {objdump -d i143317.d} }
@@ -114,7 +114,7 @@ if {!([istarget "am3*-*-*"])} {
 set am33_tests {
     {
        "difference of two same-section symbols (in a shared library)"
-       "-shared"
+       "-shared" ""
        ""
        { "i112045-2.s" }
        { {objdump -R i112045-2.d} }
index d912719..750f5c0 100755 (executable)
@@ -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"}
 }
 
index c72c3b1..df26f6d 100644 (file)
@@ -34,29 +34,29 @@ if {[istarget i*86-*-cygwin*]
 
     if {[istarget x86_64-*-mingw*] } {
       set pe_tests {
-       {".secrel32" "" "" {secrel1.s secrel2.s}
+       {".secrel32" "" "" "" {secrel1.s secrel2.s}
         {{objdump -s secrel_64.d}} "secrel.x"}
-       {"Empty export table" "" "" "exports.s"
+       {"Empty export table" "" "" "" "exports.s"
         {{objdump -p exports64.d}} "exports.dll"}
-       {"TLS directory entry" "" "" "tlssec.s"
+       {"TLS directory entry" "" "" "" "tlssec.s"
         {{objdump -p tlssec64.d}} "tlssec.dll"}
       }
     } elseif {[istarget i*86-*-cygwin*] } {
       set pe_tests {
-       {".secrel32" "--disable-auto-import" "" {secrel1.s secrel2.s}
+       {".secrel32" "--disable-auto-import" "" "" {secrel1.s secrel2.s}
         {{objdump -s secrel.d}} "secrel.x"}
-       {"Empty export table" "" "" "exports.s"
+       {"Empty export table" "" "" "" "exports.s"
         {{objdump -p exports.d}} "exports.dll"}
-       {"TLS directory entry" "" "" "tlssec.s"
+       {"TLS directory entry" "" "" "" "tlssec.s"
         {{objdump -p tlssec32.d}} "tlssec.dll"}
       }
     } else {
       set pe_tests {
-       {".secrel32" "" "" {secrel1.s secrel2.s}
+       {".secrel32" "" "" "" {secrel1.s secrel2.s}
         {{objdump -s secrel.d}} "secrel.x"}
-       {"Empty export table" "" "" "exports.s"
+       {"Empty export table" "" "" "" "exports.s"
         {{objdump -p exports.d}} "exports.dll"}
-       {"TLS directory entry" "" "" "tlssec.s"
+       {"TLS directory entry" "" "" "" "tlssec.s"
         {{objdump -p tlssec32.d}} "tlssec.dll"}
       }
     }
@@ -84,7 +84,7 @@ if {[istarget x86_64-*-mingw*] } {
 }
 
 set foreign_sym_test {
-  {"non-C aligned common" "" "" {non-c-lang-syms.s}
+  {"non-C aligned common" "" "" "" {non-c-lang-syms.s}
    {{nm -C non-c-lang-syms.d}} "non-c-lang-syms.x"}
 }
 
index 803ccee..329d511 100644 (file)
@@ -95,37 +95,37 @@ set libs "[ld_simple_link_defsyms] --defsym ${_}printf=${_}main --defsym ${_}put
 
 set plugin_tests [list \
     [list "load plugin" "-plugin $plugin_path \
-    $testobjfiles $libs" "" "" {{ld plugin-1.d}} "main.x" ] \
+    $testobjfiles $libs" "" "" "" {{ld plugin-1.d}} "main.x" ] \
     [list "fail plugin onload" "-plugin $plugin_path -plugin-opt failonload \
-    $testobjfiles $libs" "" "" {{ld plugin-2.d}} "main.x" ] \
+    $testobjfiles $libs" "" "" "" {{ld plugin-2.d}} "main.x" ] \
     [list "fail plugin allsymbolsread" "-plugin $plugin_path $regas \
                        -plugin-opt failallsymbolsread \
-    $testobjfiles $libs" "" "" {{ld plugin-3.d}} "main.x" ] \
+    $testobjfiles $libs" "" "" "" {{ld plugin-3.d}} "main.x" ] \
     [list "fail plugin cleanup" "-plugin $plugin_path -plugin-opt failcleanup \
                        $regcln \
-    $testobjfiles $libs" "" "" {{ld plugin-4.d}} "main.x" ] \
+    $testobjfiles $libs" "" "" "" {{ld plugin-4.d}} "main.x" ] \
     [list "plugin all hooks" "-plugin $plugin_path $regclm $regas $regcln \
-    $testobjfiles $libs" "" "" {{ld plugin-5.d}} "main.x" ] \
+    $testobjfiles $libs" "" "" "" {{ld plugin-5.d}} "main.x" ] \
     [list "plugin claimfile lost symbol" "-plugin $plugin_path $regclm \
                        $regas $regcln -plugin-opt claim:tmpdir/func.o \
-    $testobjfiles $libs" "" "" {{ld plugin-6.d}} "main.x" ] \
+    $testobjfiles $libs" "" "" "" {{ld plugin-6.d}} "main.x" ] \
     [list "plugin claimfile replace symbol" "-plugin $plugin_path $regclm \
                        $regas $regcln -plugin-opt claim:tmpdir/func.o \
                        -plugin-opt sym:${_}func::0:0:0 \
-    $testobjfiles $libs" "" "" {{ld plugin-7.d}} "main.x" ] \
+    $testobjfiles $libs" "" "" "" {{ld plugin-7.d}} "main.x" ] \
     [list "plugin claimfile resolve symbol" "-plugin $plugin_path $regclm \
                        $regas $regcln -plugin-opt claim:tmpdir/func.o \
                        -plugin-opt sym:${_}func::0:0:0 \
                        -plugin-opt sym:${_}func2::0:0:0 \
                        -plugin-opt dumpresolutions \
-    $testobjfiles $libs" "" "" {{ld plugin-8.d}} "main.x" ] \
+    $testobjfiles $libs" "" "" "" {{ld plugin-8.d}} "main.x" ] \
     [list "plugin claimfile replace file" "-plugin $plugin_path $regclm \
                        $regas $regcln -plugin-opt claim:tmpdir/func.o \
                        -plugin-opt sym:${_}func::0:0:0 \
                        -plugin-opt sym:${_}func2::0:0:0 \
                        -plugin-opt dumpresolutions \
                        -plugin-opt add:tmpdir/func.o \
-    $testobjfiles $libs" "" "" {{ld plugin-9.d}} "main.x" ] \
+    $testobjfiles $libs" "" "" "" {{ld plugin-9.d}} "main.x" ] \
 ]
 
 set plugin_lib_tests [list \
@@ -135,7 +135,7 @@ set plugin_lib_tests [list \
                        -plugin-opt sym:${_}func2::0:0:0 \
                        -plugin-opt dumpresolutions \
                        -plugin-opt add:tmpdir/func.o \
-    $testobjfiles_notext -Ltmpdir -ltext $libs" "" "" {{ld plugin-10.d}} "main.x" ] \
+    $testobjfiles_notext -Ltmpdir -ltext $libs" "" "" "" {{ld plugin-10.d}} "main.x" ] \
     [list "plugin claimfile replace lib" "-plugin $plugin_path $regclm \
                        $regas $regcln -plugin-opt claim:tmpdir/func.o \
                        -plugin-opt sym:${_}func::0:0:0 \
@@ -145,7 +145,7 @@ set plugin_lib_tests [list \
                        -plugin-opt claim:tmpdir/libtext.a \
                        -plugin-opt sym:${_}text::0:0:0 \
                        -plugin-opt add:tmpdir/text.o \
-    $testobjfiles_notext -Ltmpdir -ltext $libs" "" "" {{ld plugin-11.d}} "main.x" ] \
+    $testobjfiles_notext -Ltmpdir -ltext $libs" "" "" "" {{ld plugin-11.d}} "main.x" ] \
 ]
 
 set plugin_extra_elf_tests [list \
@@ -160,7 +160,7 @@ set plugin_extra_elf_tests [list \
                        -plugin-opt add:tmpdir/func1p.o \
                        -plugin-opt add:tmpdir/func2i.o \
                        -plugin-opt add:tmpdir/func3h.o \
-    $testobjfiles $libs --verbose=2" "" "" {{ld plugin-12.d} \
+    $testobjfiles $libs --verbose=2" "" "" "" {{ld plugin-12.d} \
                                {readelf -s plugin-vis-1.d}} "main.x" ] \
 ]
 
index 2f00cff..9241159 100644 (file)
@@ -57,7 +57,7 @@ proc run_aix_test { size name ldopts asopts sources tools output } {
     }
     regsub -all {SIZE} $tools $size tools
     run_ld_link_tests [list [list "$name ($size-bit)" \
-                                $ldopts \
+                                $ldopts "" \
                                 "$asopts -a$size --defsym size=$size" \
                                 $sources \
                                 $tools \
index c1106bf..5b721fc 100644 (file)
@@ -53,7 +53,7 @@ proc powerpc_export_class_test { abi emul } {
     run_ld_link_tests [list \
        [list \
            "$testname (auxiliary shared object)" \
-           "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" \
+           "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" "" \
            "$AFLAGS" \
            { ../ld-elf/export-class-lib.s } \
            {} \
@@ -67,7 +67,7 @@ proc powerpc_export_class_test { abi emul } {
     run_ld_link_tests [list \
        [list \
            "$testname (initial static object)" \
-           "$LDFLAGS -r" \
+           "$LDFLAGS -r" "" \
            "$AFLAGS" \
            { ../ld-elf/export-class-ref.s } \
            {} \
@@ -84,7 +84,7 @@ proc powerpc_export_class_test { abi emul } {
     run_ld_link_tests [list \
        [list \
            "$testname (final shared object)" \
-           "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/powerpc-$abi-export-class-ref-r.o tmpdir/powerpc-$abi-export-class-lib.so" \
+           "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/powerpc-$abi-export-class-ref-r.o tmpdir/powerpc-$abi-export-class-lib.so" "" \
            "$AFLAGS" \
            { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
            [list \
index 8e9b179..f022b95 100644 (file)
@@ -26,37 +26,37 @@ if { ![istarget "powerpc*-*-*"]     } {
 
 if {[istarget "*-*-vxworks"]} {
     set ppcvxtests {
-       {"VxWorks shared library test 1 (default script)" "-shared"
+       {"VxWorks shared library test 1 (default script)" "-shared" ""
         "-mregnames" {vxworks1-lib.s}
         {{readelf --segments vxworks1-lib.sd}}
         "libvxworks1.so"}
-       {"VxWorks shared library test 1" "-shared -Tvxworks1.ld"
+       {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" ""
         "-mregnames" {vxworks1-lib.s}
         {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
          {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
         "libvxworks1.so"}
        {"VxWorks executable test 1 (dynamic)" \
-        "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic"
+        "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
         "-mregnames" {vxworks1.s}
         {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
         "vxworks1"}
        {"VxWorks executable test 2 (dynamic)" \
-        "-Tvxworks1.ld -q --force-dynamic"
+        "-Tvxworks1.ld -q --force-dynamic" ""
         "-mregnames" {vxworks2.s}
         {{readelf --segments vxworks2.sd}}
         "vxworks2"}
        {"VxWorks executable test 2 (static)"
-        "-Tvxworks1.ld"
+        "-Tvxworks1.ld" ""
         "-mregnames" {vxworks2.s}
         {{readelf --segments vxworks2-static.sd}}
         "vxworks2"}
        {"VxWorks relax test"
-        "-Tvxworks1.ld --relax -q"
+        "-Tvxworks1.ld --relax -q" ""
         "-mregnames" {vxworks-relax.s}
         {{readelf --relocs vxworks-relax.rd}}
         "vxworks-relax"}
        {"VxWorks relocatable relax test"
-        "-Tvxworks1.ld -r --relax -q"
+        "-Tvxworks1.ld -r --relax -q" ""
         "-mregnames" {vxworks-relax-2.s}
         {{readelf --relocs vxworks-relax-2.rd}}
         "vxworks-relax-2"}
@@ -90,8 +90,8 @@ proc supports_ppc64 { } {
 }
 
 # List contains test-items with 3 items followed by 2 lists:
-# 0:name 1:ld options 2:assembler options
-# 3:filenames of assembler files 4: action and options. 5: name of output file
+# 0:name 1:ld early options 2:ld late options 3:assembler options
+# 4:filenames of assembler files 5: action and options. 6: name of output file
 
 # Actions:
 # objdump: Apply objdump options on result.  Compare with regex (last arg).
@@ -99,145 +99,145 @@ proc supports_ppc64 { } {
 # readelf: Apply readelf options on result.  Compare with regex (last arg).
 
 set ppcelftests {
-    {"Reloc section order" "-melf32ppc -shared -z nocombreloc" "-a32" {reloc.s}
+    {"Reloc section order" "-melf32ppc -shared -z nocombreloc" "" "-a32" {reloc.s}
      {{objdump -hw reloc.d}} "reloc.so"}
-    {"APUinfo section processing" "-melf32ppc"
+    {"APUinfo section processing" "-melf32ppc" ""
      "-a32 -me500" {apuinfo1.s apuinfo-nul.s apuinfo2.s}
     {{readelf -x2 apuinfo.rd}} "apuinfo"}
-    {"APUinfo NULL section processing" "-melf32ppc"
+    {"APUinfo NULL section processing" "-melf32ppc" ""
      "-a32 -me500" {apuinfo-nul1.s apuinfo-nul.s}
     {{readelf -x2 apuinfo-nul.rd}} "apuinfo"}
-    {"TLS32 static exec" "-melf32ppc" "-a32"  {tls32.s tlslib32.s}
+    {"TLS32 static exec" "-melf32ppc" "" "-a32"  {tls32.s tlslib32.s}
      {{objdump -dr tls32.d} {objdump -sj.got tls32.g}
       {objdump -sj.tdata tls32.t}}
      "tls32"}
-    {"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" {}
+    {"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" "" {}
      {} "libtlslib32.so"}
-    {"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o tmpdir/libtlslib32.so" "" {}
+    {"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {}
      {{readelf -WSsrl tlsexe32.r} {objdump -dr tlsexe32.d}
       {objdump -sj.got tlsexe32.g} {objdump -sj.tdata tlsexe32.t}}
       "tlsexe32"}
-    {"TLS32 shared" "-shared -melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o" "" {}
+    {"TLS32 shared" "-shared -melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o" "" "" {}
      {{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d}
       {objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}}
       "tls32.so"}
-    {"TLS32 markers" "-melf32ppc" "-a32"  {tlsmark32.s tlslib32.s}
+    {"TLS32 markers" "-melf32ppc" "" "-a32"  {tlsmark32.s tlslib32.s}
      {{objdump -dr tlsmark32.d}}
       "tlsmark32"}
-    {"TLS32 opt 1" "-melf32ppc" "-a32"  {tlsopt1_32.s tlslib32.s}
+    {"TLS32 opt 1" "-melf32ppc" "" "-a32"  {tlsopt1_32.s tlslib32.s}
      {{objdump -dr tlsopt1_32.d}}
       "tlsopt1_32"}
-    {"TLS32 opt 2" "-melf32ppc" "-a32"  {tlsopt2_32.s tlslib32.s}
+    {"TLS32 opt 2" "-melf32ppc" "" "-a32"  {tlsopt2_32.s tlslib32.s}
      {{objdump -dr tlsopt2_32.d}}
       "tlsopt2_32"}
-    {"TLS32 opt 3" "-melf32ppc" "-a32"  {tlsopt3_32.s tlslib32.s}
+    {"TLS32 opt 3" "-melf32ppc" "" "-a32"  {tlsopt3_32.s tlslib32.s}
      {{objdump -dr tlsopt3_32.d}}
       "tlsopt3_32"}
-    {"TLS32 opt 4" "-melf32ppc" "-a32"  {tlsopt4_32.s tlslib32.s}
+    {"TLS32 opt 4" "-melf32ppc" "" "-a32"  {tlsopt4_32.s tlslib32.s}
      {{objdump -dr tlsopt4_32.d}}
       "tlsopt4_32"}
-    {"Shared library with global symbol" "-shared -melf32ppc" "-a32" {sdalib.s}
+    {"Shared library with global symbol" "-shared -melf32ppc" "" "-a32" {sdalib.s}
      {} "sdalib.so"}
-    {"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "-a32" {sdadyn.s}
+    {"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "" "-a32" {sdadyn.s}
      {{objdump -R sdadyn.d}} "sdadyn"}
-    {"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "-a32" "relax.s"
+    {"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "" "-a32" "relax.s"
      {{objdump -dr relax.d}}
       "relax"}
-    {"relocatable relaxing" "-melf32ppc -r --relax" "-a32" "relax.s"
+    {"relocatable relaxing" "-melf32ppc -r --relax" "" "-a32" "relax.s"
      {{objdump -dr relaxr.d}}
       "relax"}
 }
 
 set ppc64elftests {
-    {"TLS static exec" "-melf64ppc" "-a64"  {tls.s tlslib.s}
+    {"TLS static exec" "-melf64ppc" "" "-a64"  {tls.s tlslib.s}
      {{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}}
       "tls"}
-    {"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" {}
+    {"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" "" {}
      {} "libtlslib.so"}
-    {"TLS helper old shared lib" "-shared -melf64ppc" "-a64" {oldtlslib.s}
+    {"TLS helper old shared lib" "-shared -melf64ppc" "" "-a64" {oldtlslib.s}
      {} "liboldlib.so"}
-    {"TLS dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/libtlslib.so" "" {}
+    {"TLS dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
      {{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
       {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
       "tlsexe"}
-    {"TLS dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/liboldlib.so" "" {}
+    {"TLS dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/liboldlib.so" "" "" {}
      {{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
       {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
       "tlsexeold"}
-    {"TLS shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o" "" {}
+    {"TLS shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o" "" "" {}
      {{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d}
       {objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}}
       "tls.so"}
-    {"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "-a64"  {tlstoc.s}
+    {"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "" "-a64"  {tlstoc.s}
      {{objdump -dr tlstoc.d} {objdump -sj.got tlstoc.g}
       {objdump -sj.tdata tlstoc.t}}
       "tlstoc"}
-    {"TLSTOC dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/libtlslib.so"
+    {"TLSTOC dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
      "" {}
      {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
       {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
       "tlsexetoc"}
-    {"TLSTOC dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/liboldlib.so"
+    {"TLSTOC dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/liboldlib.so" ""
      "" {}
      {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
       {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
       "tlsexetocold"}
-    {"TLSTOC shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o" "" {}
+    {"TLSTOC shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o" "" "" {}
      {{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d}
       {objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}}
       "tlstoc.so"}
-    {"TLS markers" "-melf64ppc" "-a64"  {tlsmark.s tlslib.s}
+    {"TLS markers" "-melf64ppc" "" "-a64"  {tlsmark.s tlslib.s}
      {{objdump -dr tlsmark.d}}
       "tlsmark"}
-    {"TLS opt 1" "-melf64ppc" "-a64"  {tlsopt1.s tlslib.s}
+    {"TLS opt 1" "-melf64ppc" "" "-a64"  {tlsopt1.s tlslib.s}
      {{objdump -dr tlsopt1.d}}
       "tlsopt1"}
-    {"TLS opt 2" "-melf64ppc" "-a64"  {tlsopt2.s tlslib.s}
+    {"TLS opt 2" "-melf64ppc" "" "-a64"  {tlsopt2.s tlslib.s}
      {{objdump -dr tlsopt2.d}}
       "tlsopt2"}
-    {"TLS opt 3" "-melf64ppc" "-a64"  {tlsopt3.s tlslib.s}
+    {"TLS opt 3" "-melf64ppc" "" "-a64"  {tlsopt3.s tlslib.s}
      {{objdump -dr tlsopt3.d}}
       "tlsopt3"}
-    {"TLS opt 4" "-melf64ppc" "-a64"  {tlsopt4.s tlslib.s}
+    {"TLS opt 4" "-melf64ppc" "" "-a64"  {tlsopt4.s tlslib.s}
      {{objdump -dr tlsopt4.d}}
       "tlsopt4"}
-    {"sym@tocbase" "-shared -melf64ppc" "-a64" {symtocbase-1.s symtocbase-2.s}
+    {"sym@tocbase" "-shared -melf64ppc" "" "-a64" {symtocbase-1.s symtocbase-2.s}
        {{objdump -dj.data symtocbase.d}} "symtocbase.so"}
-    {"TOC opt" "-melf64ppc" "-a64"  {tocopt.s}
+    {"TOC opt" "-melf64ppc" "" "-a64"  {tocopt.s}
        {{ld tocopt.out} {objdump -s tocopt.d}} "tocopt"}
-    {"TOC opt2" "-melf64ppc --defsym x=2" "-a64"  {tocopt2.s}
+    {"TOC opt2" "-melf64ppc --defsym x=2" "" "-a64"  {tocopt2.s}
        {{ld tocopt2.out} {objdump -s tocopt2.d}} "tocopt2"}
-    {"TOC opt3" "-melf64ppc -no-keep-memory --defsym x=2" "-a64"  {tocopt3.s}
+    {"TOC opt3" "-melf64ppc -no-keep-memory --defsym x=2" "" "-a64"  {tocopt3.s}
        {{objdump -s tocopt3.d}} "tocopt3"}
-    {"TOC opt4" "-melf64ppc -no-keep-memory --defsym x=2" "-a64"
+    {"TOC opt4" "-melf64ppc -no-keep-memory --defsym x=2" "" "-a64"
         {tocopt4a.s tocopt4b.s} {{objdump -s tocopt4.d}} "tocopt4"}
-    {"TOC opt5" "-melf64ppc" "-a64"  {tocopt5.s}
+    {"TOC opt5" "-melf64ppc" "" "-a64"  {tocopt5.s}
        {{objdump -s tocopt5.d}} "tocopt5"}
 }
 
 set ppceabitests {
-    {"VLE multiple segments 1" "-T vle-multiseg-1.ld"
+    {"VLE multiple segments 1" "-T vle-multiseg-1.ld" ""
      "-mregnames -mvle" {vle-multiseg.s}
     {{readelf "-l" vle-multiseg-1.d}} "vle-multiseg-1"}
-    {"VLE multiple segments 2" "-T vle-multiseg-2.ld"
+    {"VLE multiple segments 2" "-T vle-multiseg-2.ld" ""
      "-mregnames -mvle" {vle-multiseg.s}
     {{readelf "-l" vle-multiseg-2.d}} "vle-multiseg-2"}
-    {"VLE multiple segments 3" "-T vle-multiseg-3.ld"
+    {"VLE multiple segments 3" "-T vle-multiseg-3.ld" ""
      "-mregnames -mvle" {vle-multiseg.s}
     {{readelf "-l" vle-multiseg-3.d}} "vle-multiseg-3"}
-    {"VLE multiple segments 4" "-T vle-multiseg-4.ld"
+    {"VLE multiple segments 4" "-T vle-multiseg-4.ld" ""
      "-mregnames -mvle" {vle-multiseg.s}
     {{readelf "-l" vle-multiseg-4.d}} "vle-multiseg-4"}
-    {"VLE multiple segments 5" "-T vle-multiseg-5.ld"
+    {"VLE multiple segments 5" "-T vle-multiseg-5.ld" ""
      "-mregnames -mvle" {vle-multiseg.s}
     {{readelf "-l" vle-multiseg-5.d}} "vle-multiseg-5"}
-    {"VLE relocations 1" "-T vle.ld"
+    {"VLE relocations 1" "-T vle.ld" ""
      "-mvle" {vle-reloc-1.s vle-reloc-def-1.s}
     {{objdump "-Mvle -d" vle-reloc-1.d}} "vle-reloc-1"}
-    {"VLE relocations 2" "-T vle.ld"
+    {"VLE relocations 2" "-T vle.ld" ""
      "-mvle" {vle-reloc-2.s vle-reloc-def-2.s}
     {{objdump "-Mvle -d" vle-reloc-2.d}} "vle-reloc-2"}
-    {"VLE relocations 3" "-T vle.ld"
+    {"VLE relocations 3" "-T vle.ld" ""
      "-mvle" {vle-reloc-3.s vle-reloc-def-3.s}
     {{objdump "-Mvle -d" vle-reloc-3.d}} "vle-reloc-3"}
 }
index fe0a6c1..34c5b33 100644 (file)
@@ -27,8 +27,8 @@ if { !([istarget "s390-*-*"] || [istarget "s390x-*-*"]) } {
 }
 
 # List contains test-items with 3 items followed by 2 lists:
-# 0:name 1:ld options 2:assembler options
-# 3:filenames of assembler files 4: action and options. 5: name of output file
+# 0:name 1:ld early options 2:ld late options 3:assembler options
+# 4:filenames of assembler files 5: action and options. 6: name of output file
 
 # Actions:
 # objdump: Apply objdump options on result.  Compare with regex (last arg).
@@ -36,30 +36,30 @@ if { !([istarget "s390-*-*"] || [istarget "s390x-*-*"]) } {
 # readelf: Apply readelf options on result.  Compare with regex (last arg).
 
 set s390tests {
-    {"TLS -fpic -shared transitions" "-shared -melf_s390"
+    {"TLS -fpic -shared transitions" "-shared -melf_s390" ""
      "-m31" {tlspic1.s tlspic2.s}
      {{readelf -Ssrl tlspic.rd} {objdump -dzrj.text tlspic.dd}
       {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
      "libtlspic.so"}
-    {"Helper shared library" "-shared -melf_s390"
+    {"Helper shared library" "-shared -melf_s390" ""
      "-m31" {tlslib.s} {} "libtlslib.so"}
     {"TLS -fpic and -fno-pic exec transitions"
-     "-melf_s390 tmpdir/libtlslib.so" "-m31" {tlsbinpic.s tlsbin.s}
+     "-melf_s390 tmpdir/libtlslib.so" "" "-m31" {tlsbinpic.s tlsbin.s}
      {{readelf -Ssrl tlsbin.rd} {objdump -dzrj.text tlsbin.dd}
       {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
      "tlsbin"}
 }
 
 set s390xtests {
-    {"TLS -fpic -shared transitions" "-shared -melf64_s390"
+    {"TLS -fpic -shared transitions" "-shared -melf64_s390" ""
      "-m64 -Aesame" {tlspic1_64.s tlspic2_64.s}
      {{readelf -WSsrl tlspic_64.rd} {objdump -dzrj.text tlspic_64.dd}
       {objdump -sj.got tlspic_64.sd} {objdump -sj.tdata tlspic_64.td}}
      "libtlspic_64.so"}
-    {"Helper shared library" "-shared -melf64_s390"
+    {"Helper shared library" "-shared -melf64_s390" ""
      "-m64 -Aesame" {tlslib_64.s} {} "libtlslib_64.so"}
     {"TLS -fpic and -fno-pic exec transitions"
-     "-melf64_s390 tmpdir/libtlslib_64.so" "-m64 -Aesame"
+     "-melf64_s390 tmpdir/libtlslib_64.so" "" "-m64 -Aesame"
      {tlsbinpic_64.s tlsbin_64.s}
      {{readelf -WSsrl tlsbin_64.rd} {objdump -dzrj.text tlsbin_64.dd}
       {objdump -sj.got tlsbin_64.sd} {objdump -sj.tdata tlsbin_64.td}}
index 09e2cee..ab2c1c8 100644 (file)
@@ -26,33 +26,33 @@ set endians { "--big" "-EB" "" "--little" "-EL" "-le" }
 
 foreach { gas_option ld_option suffix } $endians {
     set vxworkstests {
-       {"VxWorks shared library test 1" "-shared -Tvxworks1.ld $ld_option"
+       {"VxWorks shared library test 1" "-shared -Tvxworks1.ld $ld_option" ""
         "$gas_option" {vxworks1-lib.s}
         {{readelf --relocs vxworks1-lib.rd}
          {objdump -dr vxworks1-lib$suffix.dd}
          {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
         "libvxworks1.so"}
        {"VxWorks executable test 1 (dynamic)" \
-        "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic $ld_option"
+        "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic $ld_option" ""
         "$gas_option" {vxworks1.s}
         {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1$suffix.dd}}
         "vxworks1"}
        {"VxWorks executable test 2 (dynamic)" \
-        "-Tvxworks1.ld -q --force-dynamic $ld_option"
+        "-Tvxworks1.ld -q --force-dynamic $ld_option" ""
         "$gas_option" {vxworks2.s}
         {{readelf --segments vxworks2.sd}}
         "vxworks2"}
        {"VxWorks executable test 2 (static)"
-        "-Tvxworks1.ld $ld_option"
+        "-Tvxworks1.ld $ld_option" ""
         "$gas_option" {vxworks2.s}
         {{readelf --segments vxworks2-static.sd}}
         "vxworks2"}
-       {"VxWorks shared library test 3" "-shared -Tvxworks1.ld $ld_option"
+       {"VxWorks shared library test 3" "-shared -Tvxworks1.ld $ld_option" ""
         "$gas_option" {vxworks3-lib.s}
            {{objdump -dr vxworks3-lib$suffix.dd}}
         "libvxworks3.so"}
        {"VxWorks executable test 3 (dynamic)" \
-        "tmpdir/libvxworks3.so -Tvxworks1.ld -q --force-dynamic $ld_option"
+        "tmpdir/libvxworks3.so -Tvxworks1.ld -q --force-dynamic $ld_option" ""
         "$gas_option" {vxworks3.s}
         {{objdump -d vxworks3$suffix.dd}}
         "vxworks3"}
index af6cbfe..2c64775 100644 (file)
@@ -35,8 +35,8 @@ if { [istarget sh64*-*-netbsd*] || [istarget sh5*-*-netbsd*] } then {
 }
 
 # List contains test-items with 3 items followed by 2 lists:
-# 0:name 1:ld options 2:assembler options
-# 3:filenames of assembler files 4: action and options. 5: name of output file
+# 0:name 1:ld early options 2:ld late options 3:assembler options
+# 4:filenames of assembler files 5: action and options. 6: name of output file
 
 # Actions:
 # objdump: Apply objdump options on result.  Compare with regex (last arg).
@@ -47,89 +47,89 @@ if { [istarget sh64*-*-netbsd*] || [istarget sh5*-*-netbsd*] } then {
 # references, 64-bit ABI" as for 32-bit ABI and ELF so we re-use it.
 
 set sh64tests {
-    {"SH64 linking, 64-bit ABI" "-mshelf64"
+    {"SH64 linking, 64-bit ABI" "-mshelf64" ""
      "--abi=64" {sh64-1.s sh64-2.s}
      {{objdump -sr abi64.sd} {objdump -x abi64.xd}} "abi64.bin" }
-    {"SH64 linking, 64-bit ABI, -no-expand" "-mshelf64"
+    {"SH64 linking, 64-bit ABI, -no-expand" "-mshelf64" ""
      "--abi=64 -no-expand" {sh64-1.s sh64-2.s}
      {{objdump -sr abixx-noexp.sd}} "abi64-noexp.bin" }
-    {"SH64 linking, 32-bit ABI" "-mshelf32"
+    {"SH64 linking, 32-bit ABI" "-mshelf32" ""
      "--abi=32" {sh64-1.s sh64-2.s}
      {{objdump -sr abi32.sd} {objdump -x abi32.xd}} "abi32.bin" }
-    {"SH64 linking, 32-bit ABI, -no-expand" "-mshelf32"
+    {"SH64 linking, 32-bit ABI, -no-expand" "-mshelf32" ""
      "--abi=32 -no-expand" {sh64-1.s sh64-2.s}
      {{objdump -sr abixx-noexp.sd}} "abi32-noexp.bin" }
-    {"SH64 linking, single multi-ISA object" "-mshelf32"
+    {"SH64 linking, single multi-ISA object" "-mshelf32" ""
      "--abi=32" {shmix-1.s}
      {{objdump -sr mix1.sd} {objdump -x mix1.xd}} "mix1.bin" }
-    {"SH64 linking, single multi-ISA object, -no-expand" "-mshelf32"
+    {"SH64 linking, single multi-ISA object, -no-expand" "-mshelf32" ""
      "--abi=32 -no-expand" {shmix-1.s}
      {{objdump -sr mix1-noexp.sd}} "mix1-noexp.bin" }
-    {"SH64 linking, two different-ISA objects" "-mshelf32"
+    {"SH64 linking, two different-ISA objects" "-mshelf32" ""
      "--abi=32" {shmix-2.s shmix-3.s}
      {{objdump -sr mix2.sd} {objdump -x mix2.xd}} "mix2.bin" }
-    {"SH64 linking, two different-ISA objects, -no-expand" "-mshelf32"
+    {"SH64 linking, two different-ISA objects, -no-expand" "-mshelf32" ""
      "--abi=32 -no-expand" {shmix-2.s shmix-3.s}
      {{objdump -sr mix2-noexp.sd}} "mix2-noexp.bin" }
-    {"SH64 linking, single SHcompact" "-mshelf32"
+    {"SH64 linking, single SHcompact" "-mshelf32" ""
      "--isa=SHcompact" {shcmp-1.s}
      {{objdump -sr cmpct1.sd} {objdump -x cmpct1.xd}} "cmpct1.bin" }
-    {"SH64 inter-file datalabel references, 64-bit ABI" "-mshelf64"
+    {"SH64 inter-file datalabel references, 64-bit ABI" "-mshelf64" ""
      "--abi=64" {shdl-1.s shdl-2.s}
      {{objdump -sr shdl64.sd} {objdump -x shdl64.xd}} "shdl64.bin" }
-    {"SH64 inter-file datalabel references, 32-bit ABI" "-mshelf32"
+    {"SH64 inter-file datalabel references, 32-bit ABI" "-mshelf32" ""
      "--abi=32" {shdl-1.s shdl-2.s}
      {{objdump -sr shdl64.sd} {objdump -x shdl32.xd}} "shdl32.bin" }
-    {"SH64 inter-file datalabel references and gc-sections, 32-bit ABI" "-mshelf32 --gc-sections"
+    {"SH64 inter-file datalabel references and gc-sections, 32-bit ABI" "-mshelf32 --gc-sections" ""
      "--abi=32" {dlsection-1.s }
      {{objdump -sr dlsection.sd}} "dlsection32.bin" }
-    {"SH64 inter-file datalabel references and gc-sections, 64-bit ABI" "-mshelf64 --gc-sections"
+    {"SH64 inter-file datalabel references and gc-sections, 64-bit ABI" "-mshelf64 --gc-sections" ""
      "--abi=64" {dlsection-1.s }
      {{objdump -sr dlsection.sd}} "dlsection64.bin" }
-    {"SH64 simple partial linking, 32-bit ABI" "-mshelf32 -r"
+    {"SH64 simple partial linking, 32-bit ABI" "-mshelf32 -r" ""
      "--abi=32" {rel-1.s rel-2.s}
      {{objdump -sx rel32.xd}} "rel32.bin" }
-    {"SH64 simple partial linking, 64-bit ABI" "-mshelf64 -r"
+    {"SH64 simple partial linking, 64-bit ABI" "-mshelf64 -r" ""
      "--abi=64" {rel-1.s rel-2.s}
      {{objdump -sx rel64.xd}} "rel64.bin" }
-    {"SH64 partial linking with datalabel references, 32-bit ABI" "-mshelf32 -r"
+    {"SH64 partial linking with datalabel references, 32-bit ABI" "-mshelf32 -r" ""
      "--abi=32" {reldl-1.s reldl-2.s}
      {{readelf {-s -r -x 1 -x 3} reldl32.rd}} "reldl32.bin" }
-    {"SH64 partial linking with datalabel references, 64-bit ABI" "-mshelf64 -r"
+    {"SH64 partial linking with datalabel references, 64-bit ABI" "-mshelf64 -r" ""
      "--abi=64" {reldl-1.s reldl-2.s}
      {{readelf {-s -r -x 1 -x 3} reldl64.rd}} "reldl64.bin" }
-    {"Handling SH64 assembler-generated .cranges" "-mshelf32"
+    {"Handling SH64 assembler-generated .cranges" "-mshelf32" ""
      "--abi=32" {crange-2a.s crange-1.s}
      {{readelf {-S -s -r -x 1 -x 2 -x 4} crange1.rd}} "crange1.bin" }
-    {"Handling SH64 assembler-generated .cranges, partial linking" "-mshelf32 -r"
+    {"Handling SH64 assembler-generated .cranges, partial linking" "-mshelf32 -r" ""
      "--abi=32" {crange-2a.s}
      {{readelf {-S -s -r -x 2 -x 6} crangerel1.rd}} "crangerel1.bin" }
-    {"Mixing SH64 assembler-generated with linker-generated .cranges" "-mshelf32"
+    {"Mixing SH64 assembler-generated with linker-generated .cranges" "-mshelf32" ""
      "--abi=32" {crange-2a.s crange-2b.s crange-1.s}
      {{readelf {-S -s -r -x 2 -x 4} crange2.rd}} "crange2.bin" }
     {"Mixing SH64 assembler-generated with linker-generated .cranges, partial linking"
-     "-mshelf32 -r"
+     "-mshelf32 -r" ""
      "--abi=32" {crange-2a.s crange-2c.s crange-2d.s crange-2e.s}
      {{readelf {-S -s -r -x 2 -x 6} crangerel2.rd}} "crangerel2.bin" }
-    {"Merge and use of SH64 .cranges, some not originally in order" "-mshelf32"
+    {"Merge and use of SH64 .cranges, some not originally in order" "-mshelf32" ""
      "--abi=32"
      {crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s
       crange-2h.s crange-1.s}
       {{readelf {-S -s -x 2 -x 4} crange3.rd} {objdump -d crange3.dd}} "crange3.bin" }
-    {"Sorted SH64 .cranges, entry at SHcompact code" "-mshelf32 --entry diversion"
+    {"Sorted SH64 .cranges, entry at SHcompact code" "-mshelf32 --entry diversion" ""
      "--abi=32"
      {crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s
       crange-2h.s crange-1.s}
       {{readelf {-h -S -s -x 2 -x 4} crange3-cmpct.rd}} "crange3-cmpct.bin" }
-    {"Sorted SH64 .cranges, entry at SHmedia code" "-mshelf32 --entry diversion2"
+    {"Sorted SH64 .cranges, entry at SHmedia code" "-mshelf32 --entry diversion2" ""
      "--abi=32"
      {crange-2e.s crange-2f.s crange-2g.s crange-2a.s crange-2d.s crange-2i.s
       crange-2h.s crange-1.s}
       {{readelf {-h -S -s -x 2 -x 4} crange3-media.rd}} "crange3-media.bin" }
-    {"SH64 Big Endianness" "-mshelf64 -Tendian.ld"
+    {"SH64 Big Endianness" "-mshelf64 -Tendian.ld" ""
      "--abi=64" {endian.s}
      {{objdump -s endian.sbd} {objdump -d endian.dbd}} "endianb.bin" }
-    {"SH64 Little Endianness" "-mshlelf64 -Tendian.ld"
+    {"SH64 Little Endianness" "-mshlelf64 -Tendian.ld" ""
      "--abi=64 --little" {endian.s}
      {{objdump -s endian.sld} {objdump -d endian.dld}} "endinanl.bin" }
 }
index 2ecded2..3caa494 100644 (file)
 
 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}}
index 858e879..fe47650 100644 (file)
@@ -31,21 +31,21 @@ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.d]] {
 
 set shlibtests {
     {"C6X shared library without --dsbt-index"
-     "-shared  -Tdsbt.ld --dsbt-size=3"
+     "-shared  -Tdsbt.ld --dsbt-size=3" ""
      "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s}
      {{readelf -WSsrld shlib-noindex.rd}
       {objdump "-drj.plt -j.text" shlib-noindex.dd}
       {objdump -sj.got shlib-noindex.sd}}
       "libtestn.so"}
     {"C6X shared library, LE, RELA"
-     "-shared  -Tdsbt.ld --dsbt-index=2 --dsbt-size=3"
+     "-shared  -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" ""
      "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s}
      {{readelf -WSsrld shlib-1.rd}
       {objdump "-drj.plt -j.text" shlib-1.dd}
       {objdump -sj.got shlib-1.sd}}
       "libtest.so"}
     {"C6X nonstatic app using shared library, LE, RELA"
-     "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtest.so"
+     "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtest.so" ""
      "-mdsbt -mpic -mpid=near" {shlib-app-1.s}
      {{readelf -WSsrld shlib-app-1.rd}
       {objdump "-drj.plt -j.text" shlib-app-1.dd}
@@ -53,14 +53,14 @@ set shlibtests {
       {objdump -R shlib-app-1.od}}
      "shlib-dynapp-1"}
     {"C6X shared library, LE, REL"
-     "-shared  -Tdsbt.ld --dsbt-index=2 --dsbt-size=3"
+     "-shared  -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" ""
      "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s}
      {{readelf -WSsrld shlib-1r.rd}
       {objdump "-drj.plt -j.text" shlib-1r.dd}
       {objdump -sj.got shlib-1r.sd}}
       "libtestr.so"}
     {"C6X nonstatic app using shared library, LE, REL"
-     "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestr.so"
+     "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestr.so" ""
      "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-app-1r.s}
      {{readelf -WSsrld shlib-app-1r.rd}
       {objdump "-drj.plt -j.text" shlib-app-1r.dd}
@@ -68,14 +68,14 @@ set shlibtests {
       {objdump -R shlib-app-1r.od}}
      "shlib-dynapp-1r"}
     {"C6X shared library, BE, RELA"
-     "-shared  -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3"
+     "-shared  -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" ""
      "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s}
      {{readelf -WSsrld shlib-1b.rd}
       {objdump "-drj.plt -j.text" shlib-1b.dd}
       {objdump -sj.got shlib-1b.sd}}
       "libtestb.so"}
     {"C6X nonstatic app using shared library, BE, RELA"
-     "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestb.so"
+     "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestb.so" ""
      "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-app-1.s}
      {{readelf -WSsrld shlib-app-1b.rd}
       {objdump "-drj.plt -j.text" shlib-app-1b.dd}
@@ -83,14 +83,14 @@ set shlibtests {
       {objdump -R shlib-app-1b.od}}
      "shlib-dynapp-1b"}
     {"C6X shared library, BE, REL"
-     "-shared  -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3"
+     "-shared  -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" ""
      "-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-1.s shlib-2.s}
      {{readelf -WSsrld shlib-1rb.rd}
       {objdump "-drj.plt -j.text" shlib-1rb.dd}
       {objdump -sj.got shlib-1rb.sd}}
       "libtestrb.so"}
     {"C6X nonstatic app using shared library, BE, REL"
-     "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestrb.so"
+     "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestrb.so" ""
      "-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-app-1r.s}
      {{readelf -WSsrld shlib-app-1rb.rd}
       {objdump "-drj.plt -j.text" shlib-app-1rb.dd}
@@ -99,7 +99,7 @@ set shlibtests {
      "shlib-dynapp-1rb"}
 
     {"C6X static app, LE, RELA"
-     "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3"
+     "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" ""
      "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s shlib-app-1.s}
      {{readelf -WSsrld static-app-1.rd}
       {objdump "-drj.plt -j.text" static-app-1.dd}
@@ -107,7 +107,7 @@ set shlibtests {
       {objdump -R static-app-1.od}}
      "static-app-1"}
     {"C6X static app, LE, REL"
-     "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3"
+     "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" ""
      "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s}
      {{readelf -WSsrld static-app-1r.rd}
       {objdump "-drj.plt -j.text" static-app-1r.dd}
@@ -115,7 +115,7 @@ set shlibtests {
       {objdump -R static-app-1r.od}}
      "static-app-1r"}
     {"C6X static app, BE, RELA"
-     "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3"
+     "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" ""
      "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s shlib-app-1.s}
      {{readelf -WSsrld static-app-1b.rd}
       {objdump "-drj.plt -j.text" static-app-1b.dd}
@@ -123,7 +123,7 @@ set shlibtests {
       {objdump -R static-app-1b.od}}
      "static-app-1b"}
     {"C6X static app, BE, REL"
-     "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3"
+     "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" ""
      "-mdsbt -mpic -mpid=near -mbig-endian -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s}
      {{readelf -WSsrld static-app-1rb.rd}
       {objdump "-drj.plt -j.text" static-app-1rb.dd}
index fbc80a2..7e0dbf9 100644 (file)
@@ -26,14 +26,14 @@ if {!([istarget "tilegx-*-*"]) } {
 
 set tilegx_tests {
     {   "tilegx little-endian relocation resolution linker test"
-        "-EL"
+        "-EL" ""
         "-EL"
         { "reloc.s" "external.s" }
         { {objdump -ds reloc-le.d} }
         "reloc"
     }
     {   "tilegx big-endian relocation resolution linker test"
-        "-EB"
+        "-EB" ""
         "-EB"
         { "reloc.s" "external.s" }
         { {objdump -ds reloc-be.d} }
index 1cb4fde..be10a20 100644 (file)
@@ -26,7 +26,7 @@ if {!([istarget "tilepro-*-*"]) } {
 
 set tilepro_tests {
     {   "tilepro relocation resolution linker test"
-        ""
+        "" ""
         ""
         { "reloc.s" "external.s" }
         { {objdump -ds reloc.d} }
index 76e50f8..d90fbbb 100644 (file)
@@ -21,7 +21,7 @@
 
 set build_tests {
   {"Build libentry.a"
-   "" ""
+   "" "" ""
    {entry.s} {} "libentry.a"}
 }
 
index 3240b1a..6941953 100644 (file)
@@ -25,25 +25,25 @@ if { ![istarget vax-*-*] || ![is_elf_format] } {
 
 run_ld_link_tests [list \
     [list "PLT test (shared library)" \
-         "-shared -T plt-local-lib.ld" \
+         "-shared -T plt-local-lib.ld" "" \
          "-k" \
          { plt-local-lib.s } \
          { { objdump -d plt-local-lib.dd } } \
          "plt-local-lib.so"] \
     [list "PLT test (object 1)" \
-         "-r" \
+         "-r" "" \
          "-k" \
          { plt-local-hidden-pic.s } \
          {} \
          "plt-local-hidden-pic-r.o"] \
     [list "PLT test (object 2)" \
-         "-r" \
+         "-r" "" \
          "-k" \
          { plt-local-rehidden-pic.s } \
          {} \
          "plt-local-rehidden-pic-r.o"] \
     [list "PLT test (executable)" \
-         "-T plt-local.ld tmpdir/plt-local-hidden-pic-r.o tmpdir/plt-local-rehidden-pic-r.o tmpdir/plt-local-lib.so" \
+         "-T plt-local.ld tmpdir/plt-local-hidden-pic-r.o tmpdir/plt-local-rehidden-pic-r.o tmpdir/plt-local-lib.so" "" \
          "" \
          { plt-local.s } \
          { { objdump -d plt-local.dd } } \
index 9de192e..b7e133e 100644 (file)
@@ -42,10 +42,10 @@ if { !([istarget "x86_64-*-elf*"]
 
 set build_tests_ld {
   {"Build dwarfreloc1x.o"
-   "-r" ""
+   "-r" "" ""
    {dwarfreloc1.s} {} "dwarfreloc1x.o"}
   {"Build dwarfreloc2.o"
-   "-r" ""
+   "-r" "" ""
    {dwarfreloc2.s} {} "dwarfreloc2x.o"}
 }
 
index af75b77..7bad2a8 100644 (file)
@@ -44,7 +44,7 @@ proc x86_64_export_class_test { abi flag emul } {
     run_ld_link_tests [list \
        [list \
            "$testname (auxiliary shared object)" \
-           "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" \
+           "$LDFLAGS -shared -version-script ../ld-elf/export-class-lib.ver" "" \
            "$AFLAGS" \
            { ../ld-elf/export-class-lib.s } \
            {} \
@@ -58,7 +58,7 @@ proc x86_64_export_class_test { abi flag emul } {
     run_ld_link_tests [list \
        [list \
            "$testname (initial static object)" \
-           "$LDFLAGS -r" \
+           "$LDFLAGS -r" "" \
            "$AFLAGS" \
            { ../ld-elf/export-class-ref.s } \
            {} \
@@ -75,7 +75,7 @@ proc x86_64_export_class_test { abi flag emul } {
     run_ld_link_tests [list \
        [list \
            "$testname (final shared object)" \
-           "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/x86-64-$abi-export-class-ref-r.o tmpdir/x86-64-$abi-export-class-lib.so" \
+           "$LDFLAGS -shared -Tdata=0x12340000 tmpdir/x86-64-$abi-export-class-ref-r.o tmpdir/x86-64-$abi-export-class-lib.so" "" \
            "$AFLAGS" \
            { ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
            [list \
index 1ad54e6..0fd0312 100644 (file)
@@ -36,8 +36,8 @@ if [istarget "*-*-nacl*"] {
 }
 
 # List contains test-items with 3 items followed by 2 lists:
-# 0:name 1:ld options 2:assembler options
-# 3:filenames of assembler files 4: action and options. 5: name of output file
+# 0:name 1:ld early options 2:ld late options 3:assembler options
+# 4:filenames of assembler files 5: action and options. 6: name of output file
 
 # Actions:
 # objdump: Apply objdump options on result.  Compare with regex (last arg).
@@ -46,87 +46,88 @@ if [istarget "*-*-nacl*"] {
 
 set x86_64tests {
     {"Helper shared library (basic PLT test)"
-      "-shared -melf_x86_64" "--64" {pltlib.s} {} "libpltlib.so"}
+      "-shared -melf_x86_64" "" "--64" {pltlib.s} {} "libpltlib.so"}
     {"basic PLT generation"
-     "-melf_x86_64 tmpdir/libpltlib.so" "--64" {plt.s}
+     "-melf_x86_64 tmpdir/libpltlib.so" "" "--64" {plt.s}
      {{objdump -drj.plt plt.pd}} "plt"}
     {"TLS -fpic -shared transitions"
-     "-shared -melf_x86_64 --no-ld-generated-unwind-info"
+     "-shared -melf_x86_64 --no-ld-generated-unwind-info" ""
      "--64" {tlspic1.s tlspic2.s}
      {{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd}
       {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
       "libtlspic.so"}
     {"TLS descriptor -fpic -shared transitions"
-     "-shared -melf_x86_64 --no-ld-generated-unwind-info"
+     "-shared -melf_x86_64 --no-ld-generated-unwind-info" ""
      "--64" {tlsdesc.s tlspic2.s}
      {{readelf -WSsrld tlsdesc.rd} {objdump -drj.text tlsdesc.dd}
       {objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}
       {objdump -drj.plt tlsdesc.pd}} "libtlsdesc.so"}
-    {"Helper shared library" "-shared -melf_x86_64"
+    {"Helper shared library" "-shared -melf_x86_64" ""
      "--64" {tlslib.s} {} "libtlslib.so"}
     {"TLS -fpic and -fno-pic exec transitions"
-     "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info"
+     "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
      "--64" {tlsbinpic.s tlsbin.s}
      {{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
       {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
       "tlsbin"}
     {"TLS descriptor -fpic and -fno-pic exec transitions"
-     "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info"
+     "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info" ""
      "--64" {tlsbindesc.s tlsbin.s}
      {{readelf -WSsrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd}
       {objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}}
       "tlsbindesc"}
     {"TLS with global dynamic and descriptors"
-     "-shared -melf_x86_64 --no-ld-generated-unwind-info"
+     "-shared -melf_x86_64 --no-ld-generated-unwind-info" ""
      "--64" {tlsgdesc.s}
      {{readelf -WSsrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}}
       "libtlsgdesc.so"}
-    {"TLS in debug sections" "-melf_x86_64"
+    {"TLS in debug sections" "-melf_x86_64" ""
      "--64" {tlsg.s}
      {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}
-    {"TLS GD->LE transition" "-melf_x86_64"
+    {"TLS GD->LE transition" "-melf_x86_64" ""
      "--64" {tlsgd1.s}
      {{objdump -dwr tlsgd1.dd}} "tlsgd1"}
-    {"TLS LD->LE transition" "-melf_x86_64"
+    {"TLS LD->LE transition" "-melf_x86_64" ""
      "--64" {tlsld1.s}
      {{objdump -dwr tlsld1.dd}} "tlsld1"}
-    {"TLS IE->LE transition" "-melf_x86_64"
+    {"TLS IE->LE transition" "-melf_x86_64" ""
      "--64" {tlsie1.s}
      {{objdump -dwr tlsie1.dd}} "tlsie1"}
-    {"Helper 64bit object 1" "-r -melf_x86_64"
+    {"Helper 64bit object 1" "-r -melf_x86_64" ""
      "--64" {mixed1a.s} {} "libmixe1a.o"}
-    {"Helper 32bit object 1" "-r -melf_i386"
+    {"Helper 32bit object 1" "-r -melf_i386" ""
      "--32" {mixed1b.s} {} "libmixe1b.o"}
-    {"Helper 64bit object 2" "-r -melf_x86_64"
+    {"Helper 64bit object 2" "-r -melf_x86_64" ""
      "--64" {mixed2a.s} {} "libmixe2a.o"}
-    {"Helper 32bit object 2" "-r -melf_i386"
+    {"Helper 32bit object 2" "-r -melf_i386" ""
      "--32" {mixed2b.s} {} "libmixe2b.o"}
-    {"Split by file with 'l' flag on section." "-split-by-file -r -melf_x86_64"
+    {"Split by file with 'l' flag on section."
+     "-split-by-file -r -melf_x86_64" ""
      "--64" {split-by-file1.s split-by-file2.s}
      {{readelf -SW split-by-file.rd}} "split-by-file.o"}
-    {"TLS X32 IE->LE transition" "-melf32_x86_64"
+    {"TLS X32 IE->LE transition" "-melf32_x86_64" ""
      "--x32" {tlsie4.s}
      {{objdump -dwr tlsie4.dd}} "tlsie4"}
-    {"TLS X32 GD->LE transition" "-melf32_x86_64"
+    {"TLS X32 GD->LE transition" "-melf32_x86_64" ""
      "--x32" {tlsgd4.s}
      {{objdump -dwr tlsgd4.dd}} "tlsgd4"}
-    {"Helper TLS GD->IE transition DSO" "-shared -melf_x86_64"
+    {"Helper TLS GD->IE transition DSO" "-shared -melf_x86_64" ""
      "--64" {tlsgd5b.s} {} "libtlsgd5.so"}
-    {"TLS GD->IE transition" "-melf_x86_64 tmpdir/libtlsgd5.so"
+    {"TLS GD->IE transition" "-melf_x86_64 tmpdir/libtlsgd5.so" ""
      "--64" {tlsgd5a.s}
      {{objdump -dwr tlsgd5.dd}} "tlsgd5"}
-    {"Helper TLS X32 GD->IE transition DSO" "-shared -melf32_x86_64"
+    {"Helper TLS X32 GD->IE transition DSO" "-shared -melf32_x86_64" ""
      "--x32" {tlsgd6b.s} {} "libtlsgd6.so"}
-    {"TLS X32 GD->IE transition" "-melf32_x86_64 tmpdir/libtlsgd6.so"
+    {"TLS X32 GD->IE transition" "-melf32_x86_64 tmpdir/libtlsgd6.so" ""
      "--x32" {tlsgd6a.s}
      {{objdump -dwr tlsgd6.dd}} "tlsgd6"}
-    {"TLS X32 LD->LE transition" "-melf32_x86_64"
+    {"TLS X32 LD->LE transition" "-melf32_x86_64" ""
      "--x32" {tlsld2.s}
      {{objdump -dwr tlsld2.dd}} "tlsld2"}
 
-     {"build 32-bit object with 33 locals" "-melf_x86_64 -e 0" "--32" {32bit.s} {{ ld incompatible.l }} "dummy" }
-     {"build 64-bit object" "-melf_x86_64 -e 0 --defsym foo=1" "--64" {64bit.s} {} "dummy" }
-     {"link mixed objects"  "-melf_x86_64 -e 0 tmpdir/32bit.o tmpdir/64bit.o" "" {} { { ld incompatible.l } } "mixed"}
+     {"build 32-bit object with 33 locals" "-melf_x86_64 -e 0" "" "--32" {32bit.s} {{ ld incompatible.l }} "dummy" }
+     {"build 64-bit object" "-melf_x86_64 -e 0 --defsym foo=1" "" "--64" {64bit.s} {} "dummy" }
+     {"link mixed objects"  "-melf_x86_64 -e 0 tmpdir/32bit.o tmpdir/64bit.o" "" "" {} { { ld incompatible.l } } "mixed"}
 }
 
 # So as to avoid rewriting every last test case here in a nacl variant,
@@ -311,7 +312,7 @@ if { [isnative] && [which $CC] != 0 } {
 
     run_ld_link_tests {
        {"X32 DSO from x86-64 object"
-        "-shared -melf32_x86_64 tmpdir/simple-x32.o" "--x32"
+        "-shared -melf32_x86_64 tmpdir/simple-x32.o" "" "--x32"
        {dummy.s} {{readelf {-s --wide} x86-64-x32.rd}} "x86-64-x32"}
     }
 }
index 2f7b9ff..5ab08c1 100644 (file)
@@ -31,7 +31,7 @@ if {!([istarget "xc16x*-*-*"]) } {
 set xc16x_tests {
     {   
        "xc16x pc-relative relocs linker test"
-       ""
+       "" ""
        ""
        { "pcreloc.s" }
        { {objdump -Dz pcreloc.d} }     
@@ -42,7 +42,7 @@ set xc16x_tests {
 set xc16xabs_tests {
     {   
        "xc16x absolute relative address linker test"
-       ""
+       "" ""
        ""
        { "absrel.s" }
        { {objdump -Dz absrel.d} }      
@@ -53,7 +53,7 @@ set xc16xabs_tests {
 set xc16xoffset_tests {
     {   
        "xc16x offset linker test"
-       ""
+       "" ""
        ""
        { "offset.s" }
        { {objdump -Dz offset.d} }      
index 27e9eeb..ceb6075 100644 (file)
@@ -30,7 +30,7 @@ if {!([istarget "xstormy16*-*-*"]) } {
 
 set xstormy16_tests {
     {   "xstormy16 pc-relative relocs linker test"
-       ""
+       "" ""
        ""
        { "pcrel.s" "external.s" }
        { {objdump -Dz pcrel.d} }
index e6dc827..f2986ab 100644 (file)
@@ -24,8 +24,8 @@ if { !([istarget "xtensa*-*-linux*"]) } {
 }
 
 # List contains test-items with 3 items followed by 2 lists:
-# 0:name 1:ld options 2:assembler options
-# 3:filenames of assembler files 4: action and options. 5: name of output file
+# 0:name 1:ld early options 2:ld late options 3:assembler options
+# 4:filenames of assembler files 5: action and options. 6: name of output file
 
 # Actions:
 # objdump: Apply objdump options on result.  Compare with regex (last arg).
@@ -34,16 +34,16 @@ if { !([istarget "xtensa*-*-linux*"]) } {
 
 set xtensatests {
     {"TLS -shared transitions"
-     "-shared -melf32xtensa" "" {tlspic1.s tlspic2.s}
+     "-shared -melf32xtensa" "" "" {tlspic1.s tlspic2.s}
      {{readelf -WSsrl tlspic.rd}
       {objdump "-drj.text --start-address=0x350" tlspic.dd}
       {objdump "-sj.text --stop-address=0x350" tlspic.sd}
       {objdump -sj.tdata tlspic.td}}
       "libtlspic.so"}
-    {"Helper shared library" "-shared -melf32xtensa"
+    {"Helper shared library" "-shared -melf32xtensa" ""
      "" {tlslib.s} {} "libtlslib.so"}
     {"TLS exec transitions"
-     "-melf32xtensa tmpdir/libtlslib.so" "" {tlsbin.s}
+     "-melf32xtensa tmpdir/libtlslib.so" "" "" {tlsbin.s}
      {{readelf -WSsrl tlsbin.rd}
       {objdump "-drj.text --start-address=0x400238" tlsbin.dd}
       {objdump "-sj.text --stop-address=0x400238" tlsbin.sd}
index 0b156a1..4cd671d 100644 (file)
@@ -1000,12 +1000,13 @@ proc ar_simple_create { ar aropts target objects } {
 # List contains test-items with 3 items followed by 2 lists, one item and
 # one optional item:
 #  0:name
-#  1:ld/ar options
-#  2:assembler options
-#  3:filenames of assembler files
-#  4:list of actions, options and expected outputs.
-#  5:name of output file
-#  6:compiler flags (optional)
+#  1:ld/ar leading options, placed before object files
+#  2:ld/ar trailing options, placed after object files
+#  3:assembler options
+#  4:filenames of assembler files
+#  5:list of actions, options and expected outputs.
+#  6:name of output file
+#  7:compiler flags (optional)
 #
 # Actions: { command command-line-options file-containg-expected-output-regexps }
 # Commands:
@@ -1041,11 +1042,12 @@ proc run_ld_link_tests { ldtests } {
        }
 
        set ld_options [lindex $testitem 1]
-       set as_options [lindex $testitem 2]
-       set src_files  [lindex $testitem 3]
-       set actions [lindex $testitem 4]
-       set binfile tmpdir/[lindex $testitem 5]
-       set cflags [lindex $testitem 6]
+       set ld_after [lindex $testitem 2]
+       set as_options [lindex $testitem 3]
+       set src_files  [lindex $testitem 4]
+       set actions [lindex $testitem 5]
+       set binfile tmpdir/[lindex $testitem 6]
+       set cflags [lindex $testitem 7]
        set objfiles {}
        set is_unresolved 0
        set failed 0
@@ -1054,6 +1056,7 @@ proc run_ld_link_tests { ldtests } {
 
 #      verbose -log "Testname is $testname"
 #      verbose -log "ld_options is $ld_options"
+#      verbose -log "ld_after is $ld_after"
 #      verbose -log "as_options is $as_options"
 #      verbose -log "src_files is $src_files"
 #      verbose -log "actions is $actions"
@@ -1087,10 +1090,10 @@ proc run_ld_link_tests { ldtests } {
        }
 
        if { [regexp ".*\\.a$" $binfile] } {
-           if { ![ar_simple_create $ar $ld_options $binfile "$objfiles"] } {
+           if { ![ar_simple_create $ar $ld_options $binfile "$objfiles $ld_after"] } {
                set failed 1
            }
-       } elseif { ![ld_simple_link $ld $binfile "-L$srcdir/$subdir $ld_options $objfiles"] } {
+       } elseif { ![ld_simple_link $ld $binfile "-L$srcdir/$subdir $ld_options $objfiles $ld_after"] } {
            set maybe_failed 1
            set ld_output "$exec_output"
        }