# Expect script for various ARM ELF tests.
#   Copyright 2002-2013 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
#

if {[istarget "arm-*-vxworks"]} {
    set armvxworkstests {
	{"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" ""
	 "" {vxworks1.s}
	 {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
	 "vxworks1"}
	{"VxWorks executable test 2 (dynamic)" \
	 "-Tvxworks1.ld -q --force-dynamic" ""
	 "" {vxworks2.s}
	 {{readelf --segments vxworks2.sd}}
	 "vxworks2"}
	{"VxWorks executable test 2 (static)"
	 "-Tvxworks1.ld" ""
	 "" {vxworks2.s}
	 {{readelf --segments vxworks2-static.sd}}
	 "vxworks2"}
    }
    run_ld_link_tests $armvxworkstests
    run_dump_test "vxworks1-static"
    run_dump_test "emit-relocs1-vxworks"
}

if { [istarget "arm*-*-symbianelf*"] } {
    run_dump_test "symbian-seg1"
}

# Exclude non-ARM-ELF targets.

if { ![is_elf_format] || ![istarget "arm*-*-*"] } {
    return
}

# List contains test-items with 3 items followed by 2 lists and one more item:
# 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).
# nm: Apply nm options on result.  Compare with regex (last arg).
# readelf: Apply readelf options on result.  Compare with regex (last arg).

set armelftests_common {
    {"Group relocations" "-Ttext 0x8000 -Tdata 0x3000000 --section-start alpha=0xeef0 --section-start beta=0xffeef0" "" "" {group-relocs.s}
     {{objdump -dr group-relocs.d}}
     "group-relocs"}
    {"Indirect cross-library function reference (set-up)"
     "-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}
     {{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}
     {{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}
     {{objdump -s arm-target1-abs.d}}
     "arm-target1-abs"}
    {"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}
     {{objdump -s arm-target2-rel.d}}
     "arm-target2-rel"}
    {"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}
     {{objdump -s arm-target2-got-rel.d}}
     "arm-target2-got-rel"}
    {"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}
     {{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}
     {{objdump -d arm-call.d}}
     "arm-call"}
    {"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}
     {{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}
     {{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}
     {{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}
     {{objdump -fdw tls-gdierelax2.d}}
     "tls-app-rel-ie2"}
    {"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}
     {{objdump -Rw tls-mixed.r}}
     "tls-mixed.so"}
    {"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}
     {{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}
     {{objdump -fdw tls-descrelax-be8.d}}
     "tls-descrelax-be8"}
    {"TLS descseq relaxation BE32" "-T arm-dyn.ld -EB" "" "-mbig-endian" {tls-descrelax-be32.s}
     {{objdump -fdw tls-descrelax-be32.d}}
     "tls-descrelax-be32"}
    {"TLS local PIC symbol static link" "-T arm.ld" "" "" {tls-local-static.s}
      {{objdump -fdw tls-local-static.d}}
      "tls-local-static"}
    {"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}
     {{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}
     {{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}
     {{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}
     {{objdump -dr vfp11-fix-none.d}}
     "vfp11-fix-none"}
    {"Unwinding and -gc-sections" "-gc-sections" "" "" {gc-unwind.s}
     {{objdump -sj.data gc-unwind.d}}
     "gc-unwind"}
    {"script-type" "-static -T script-type.ld" "" "" {script-type.s}
     {{readelf -s script-type.sym}}
     "script-type"}
    {"callweak" "-static -T arm.ld" "" "" {callweak.s}
     {{objdump -dr callweak.d}}
     "callweak"}
    {"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}
     {{objdump -s reloc-boundaries.d}}
     "reloc-boundaries"}
    {"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}
     {{readelf -s rodata-merge-map.sym}}
     "rodata-merge-map"}
    {"GOT relocations in executables (setup)" "-shared" ""
     "" {exec-got-1a.s}
     {}
     "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}
     {{objdump -d abs-call-1.d}}
     "abs-call-1"}
    {"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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{readelf -h eabi-soft-float-r.d}}
     "eabi-soft-float-r.o"}
}

set armelftests_nonacl {
    {"Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x401000" "" "" {thumb1-bl.s}
     {{objdump -dr thumb1-bl.d}}
     "thumb1-bl"}
    {"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}
     {{objdump -s thumb-rel32.d}}
     "thumb-rel32"}
    {"jump19" "-static -T arm.ld" "" "" {jump19.s}
     {{objdump -dr jump19.d}}
     "jump19"}
    {"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}
     {{readelf --relocs gc-thumb.d}}
     "gc-thumb"}
    {"arm-pic-veneer" "-static -T arm.ld --pic-veneer" "" "" {arm-pic-veneer.s}
     {{objdump -d arm-pic-veneer.d}}
     "arm-pic-veneer"}

    {"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}
     {{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}
     {{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}
     {{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}
     {{ld arm-no-rel-plt.out}}
     "arm-app"}
    {"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"
     {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-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-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-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}
     {{readelf -Ds use-thumb-lib.sym}}
     "use-thumb-lib.so"}
    {"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}
     {{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}
     {{objdump -fdw tls-lib-loc.d} {objdump -Rw tls-lib-loc.r}}
     "tls-lib-loc.so"}
    {"Cortex-A8 erratum fix, b.w"
     "-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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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 -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 -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}
     {{objdump -dr cortex-a8-fix-blx-bcond.d}}
     "cortex-a8-fix-blx-bcond"}
    {"Cortex-A8 erratum fix, b.w to PLT"
     "-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"
     {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"
     {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"
     {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" {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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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-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-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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{objdump -d ifunc-16.dd}
      {objdump {-s -j.data -j.got} ifunc-16.gd}
      {readelf -r ifunc-16.rd}}
     "ifunc-16"}
    {"IFUNC test 17" "-T ifunc-static.ld" "" "" {ifunc-17.s}
     {{objdump -d ifunc-17.dd}
      {objdump {-s -j.data -j.got} ifunc-17.gd}
      {readelf -r ifunc-17.rd}}
     "ifunc-17"}
}

run_ld_link_tests $armelftests_common
if { ![istarget "arm*-*-nacl*"] } {
    run_ld_link_tests $armelftests_nonacl
}

run_dump_test "group-relocs-alu-bad"
run_dump_test "group-relocs-alu-bad-2"
run_dump_test "group-relocs-ldr-bad"
run_dump_test "group-relocs-ldr-bad-2"
run_dump_test "group-relocs-ldrs-bad"
run_dump_test "group-relocs-ldrs-bad-2"
run_dump_test "group-relocs-ldc-bad"
run_dump_test "group-relocs-ldc-bad-2"
run_dump_test "thumb2-bl-undefweak"
run_dump_test "thumb2-bl-undefweak1"
run_dump_test "emit-relocs1"
run_dump_test "movw-shared-1"
run_dump_test "movw-shared-2"
run_dump_test "movw-shared-3"
run_dump_test "movw-shared-4"

# Exclude non-ARM-EABI targets.

if { ![istarget "arm*-*-*eabi*"] && ![istarget "arm*-*-nacl*"] } {
    # Special variants of these tests, as a different farcall stub is
    # generated for a non-ARM-EABI target: indeed in such a case,
    # 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}
	    {{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}
	    {{objdump -d thumb2-bl-bad-noeabi.d}}
	    "thumb2-bl-bad"}
    }
    run_ld_link_tests $arm_noeabi_tests

    return
}

# Farcalls stubs are fully supported for ARM-EABI only.
# This list is massaged below into run_ld_link_tests standard format.
# The source list is almost that same format.  The one difference is
# that each "action" (elements of element 5) might have four elements
# instead of three; in that case, the fourth element is the name of
# the dump file to use for arm*-*nacl* targets instead of the canonical
# dump file (the third element).
set armeabitests_common {
     {"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}
      {{readelf -A attr-merge-2.attr}}
      "attr-merge-2"}
     {"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}
      {{readelf -A attr-merge-4.attr}}
      "attr-merge-4"}
     {"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}
      {{readelf -A attr-merge-6.attr}}
      "attr-merge-6"}
     {"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}
      {{readelf -A attr-merge-7.attr}}
      "attr-merge-7"}
     {"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}
      {{readelf -A attr-merge-arch-1.attr}}
      "attr-merge-arch-1r"}
     {"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}
      {{readelf -A attr-merge-arch-2.attr}}
      "attr-merge-arch-2r"}
    {"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}
     {{objdump -Rw arm-app.r}}
     "arm-app-movw"}

    {"ARM-ARM farcall" "-Ttext 0x1000 --section-start .foo=0x2001020" "" "" {farcall-arm-arm.s}
     {{objdump -d farcall-arm-arm.d farcall-arm-nacl.d}}
     "farcall-arm-arm"}
    {"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-nacl-pic.d}}
     "farcall-arm-arm-pic-veneer"}
    {"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-nacl.d}}
     "farcall-arm-arm-be8"}
    {"ARM-ARM farcall (BE)" "-Ttext 0x1000 --section-start .foo=0x2001020 -EB" "" "-EB" {farcall-arm-arm.s}
     {{objdump -d farcall-arm-arm.d farcall-arm-nacl.d}}
     "farcall-arm-arm-be"}

    {"Long branch with mixed text and data" "-T arm.ld" "" "" {farcall-data.s}
     {{objdump -dr farcall-data.d farcall-data-nacl.d}}
     "farcall-data"}
}

set armeabitests_nonacl {
    {"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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{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}
     {{objdump -d farcall-thumb-arm-pic-veneer.d}}
     "farcall-thumb-arm-pic-veneer"}

    {"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}
     {{objdump -d farcall-mix2.d}}
     "farcall-mix2"}

    {"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" "" ""
     {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"
     {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"
     {farcall-mixed-lib1.s farcall-mixed-lib2.s}
     {{objdump -fdw farcall-mixed-lib.d}}
     "farcall-mixed-lib.so"}

    {"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}
     {{objdump -d thumb2-bl-bad.d}}
     "thumb2-bl-bad"}
    {"Branch to linker script symbol with BL for thumb-only target" "-T branch-lks-sym.ld" "" "" {thumb-bl-lks-sym.s}
     {{objdump -d thumb-bl-lks-sym.d}}
     "thumb-bl-lks-sym"}
    {"Branch to linker script symbol with B for thumb-only target" "-T branch-lks-sym.ld" "" "" {thumb-b-lks-sym.s}
     {{objdump -d thumb-b-lks-sym.d}}
     "thumb-b-lks-sym"}

    {"erratum 760522 fix (default for v6z)" "--section-start=.foo=0x2001014" ""
     "-march=armv6z" {fix-arm1176.s}
     {{objdump -d fix-arm1176-on.d}}
     "fix-arm1176-1"}
    {"erratum 760522 fix (explicitly on at v6z)" "--section-start=.foo=0x2001014 --fix-arm1176" ""
     "-march=armv6z" {fix-arm1176.s}
     {{objdump -d fix-arm1176-on.d}}
     "fix-arm1176-2"}
    {"erratum 760522 fix (explicitly off at v6z)" "--section-start=.foo=0x2001014 --no-fix-arm1176" ""
     "-march=armv6z" {fix-arm1176.s}
     {{objdump -d fix-arm1176-off.d}}
     "fix-arm1176-3"}
    {"erratum 760522 fix (default for v5)" "--section-start=.foo=0x2001014 " ""
     "-march=armv5te" {fix-arm1176.s}
     {{objdump -d fix-arm1176-on.d}}
     "fix-arm1176-4"}
    {"erratum 760522 fix (default for v7-a)" "--section-start=.foo=0x2001014 " ""
     "-march=armv7-a" {fix-arm1176.s}
     {{objdump -d fix-arm1176-off.d}}
     "fix-arm1176-5"}
    {"erratum 760522 fix (default for ARM1156)" "--section-start=.foo=0x2001014 " ""
     "-mcpu=arm1156t2f-s" {fix-arm1176.s}
     {{objdump -d fix-arm1176-off.d}}
     "fix-arm1176-6"}

     {"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}
      {{objdump -dr thumb2-b-interwork.d}}
      "thumb2-b-interwork"}
    {"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}
     {{objdump -d armv4-bx.d}}
     "armv4-bx"}

    {"R_ARM_THM_JUMP24 Relocation veneers: Short 1"
     "--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" ""
     "-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" ""
     "-march=armv7-a -mthumb"
     {jump-reloc-veneers.s}
     {{objdump -d jump-reloc-veneers-long.d}}
     "jump-reloc-veneers-long"}

    {"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}
     {{objdump -d farcall-group-size2.d}}
     "farcall-group-size2"}
    {"Group size limit" "-Ttext 0x1000 --section-start .far=0x2003020" "" "" {farcall-group3.s farcall-group4.s}
     {{objdump -d farcall-group-limit.d}}
     "farcall-group-limit"}

    {"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}
     {{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}
     {{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}
     {{objdump -fdw tls-longplt.d}}
     "tls-longplt"}
    {"TLS thumb1" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" "" {tls-thumb1.s}
     {{objdump -fdw tls-thumb1.d}}
     "tls-thumb1"}
}

# Massage the $armeabitests_common list into run_ld_link_tests standard form.
# See the comment before 'set armeabitests_common', above.
set elide_action_elt 3
set is_nacl [istarget "arm*-*-nacl*"]
if {$is_nacl} {
    set elide_action_elt 2
}
set neabi_common [llength $armeabitests_common]
for {set i 0} {$i < $neabi_common} {incr i} {
    set case [lindex $armeabitests_common $i]
    set actions [lindex $case 5]
    set nactions [llength $actions]
    for {set j 0} {$j < $nactions} {incr j} {
	set action [lindex $actions $j]
	if {[llength $action] == 4} {
	    set action [lreplace $action $elide_action_elt $elide_action_elt]
	    lset armeabitests_common $i 5 $j $action
	}
    }
}

run_ld_link_tests $armeabitests_common
if { !$is_nacl } {
    run_ld_link_tests $armeabitests_nonacl
}

run_dump_test "attr-merge-div-00"
run_dump_test "attr-merge-div-01"
run_dump_test "attr-merge-div-10"
run_dump_test "attr-merge-div-01-m3"
run_dump_test "attr-merge-div-10-m3"
run_dump_test "attr-merge-div-11"
run_dump_test "attr-merge-div-12"
run_dump_test "attr-merge-div-120"
run_dump_test "attr-merge-div-21"
run_dump_test "attr-merge-div-22"
run_dump_test "attr-merge-div-02"
run_dump_test "attr-merge-div-20"
run_dump_test "attr-merge-wchar-00"
run_dump_test "attr-merge-wchar-02"
run_dump_test "attr-merge-wchar-04"
run_dump_test "attr-merge-wchar-20"
run_dump_test "attr-merge-wchar-22"
run_dump_test "attr-merge-wchar-24"
run_dump_test "attr-merge-wchar-40"
run_dump_test "attr-merge-wchar-42"
run_dump_test "attr-merge-wchar-44"
run_dump_test "attr-merge-wchar-00-nowarn"
run_dump_test "attr-merge-wchar-02-nowarn"
run_dump_test "attr-merge-wchar-04-nowarn"
run_dump_test "attr-merge-wchar-20-nowarn"
run_dump_test "attr-merge-wchar-22-nowarn"
run_dump_test "attr-merge-wchar-24-nowarn"
run_dump_test "attr-merge-wchar-40-nowarn"
run_dump_test "attr-merge-wchar-42-nowarn"
run_dump_test "attr-merge-wchar-44-nowarn"
run_dump_test "farcall-section"
run_dump_test "attr-merge-unknown-1"
run_dump_test "attr-merge-unknown-2"
run_dump_test "attr-merge-unknown-2r"
run_dump_test "attr-merge-unknown-3"
run_dump_test "unwind-1"
run_dump_test "unwind-2"
run_dump_test "unwind-3"
run_dump_test "unwind-4"
run_dump_test "unwind-5"
run_dump_test "attr-merge-vfp-1"
run_dump_test "attr-merge-vfp-1r"
run_dump_test "attr-merge-vfp-2"
run_dump_test "attr-merge-vfp-2r"
run_dump_test "attr-merge-vfp-3"
run_dump_test "attr-merge-vfp-3r"
run_dump_test "attr-merge-vfp-4"
run_dump_test "attr-merge-vfp-4r"
run_dump_test "attr-merge-vfp-5"
run_dump_test "attr-merge-vfp-5r"
run_dump_test "attr-merge-vfp-6"
run_dump_test "attr-merge-vfp-6r"
run_dump_test "attr-merge-vfp-7"
run_dump_test "attr-merge-vfp-7r"
run_dump_test "attr-merge-incompatible"
run_dump_test "unresolved-1"
if { ![istarget "arm*-*-nacl*"] } {
    run_dump_test "unresolved-1-dyn"
}
run_dump_test "unresolved-2"
run_dump_test "gc-hidden-1"
