# Expect script for various ARM ELF tests.
#   Copyright 2002, 2003, 2004, 2007, 2008 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:
# 0:name 1:ld options 2:assembler options
# 3:filenames of assembler files 4: action and options. 5: 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 {
    {"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}
     {{objdump -dr thumb1-bl.d}}
     "thumb1-bl"}
    {"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" "" "" {arm-static-app.s}
     {{objdump -fdw arm-static-app.d} {objdump -rw arm-static-app.r}}
     "arm-static-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"}
    {"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-call" "-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"}
    {"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"}
    {"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 -s arm-be8.d}}
     "arm-be8"}
    {"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"}
    {"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"}
    {"arm-pic-veneer" "-static -T arm.ld --pic-veneer" "" {arm-pic-veneer.s}
     {{objdump -d arm-pic-veneer.d}}
     "arm-pic-veneer"}
    {"Preempt Thumb symbol" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" ""
     {preempt-app.s}
     {{readelf -Ds preempt-app.sym}}
     "preempt-app"}
    {"jump19" "-static -T arm.ld" "" {jump19.s}
     {{objdump -dr jump19.d}}
     "jump19"}
    {"callweak" "-static -T arm.ld" "" {callweak.s}
     {{objdump -dr callweak.d}}
     "callweak"}
}

run_ld_link_tests $armelftests
run_dump_test "group-relocs-alu-bad"
run_dump_test "group-relocs-ldr-bad"
run_dump_test "group-relocs-ldrs-bad"
run_dump_test "group-relocs-ldc-bad"
run_dump_test "emit-relocs1"

# Exclude non-ARM-EABI targets.

if { ![istarget "arm*-*-*eabi"] } {
    # Special variants of these tests, as no farcall stub is generated
    # for a non-ARM-EABI target
    run_dump_test "thumb2-bl-as-thumb1-bad-noeabi"
    run_dump_test "thumb2-bl-bad-noeabi"
    return
}

# Farcalls stubs are fully supported for ARM-EABI only
set armeabitests {
     {"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"}
     {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x1001000" "" {thumb2-bl.s}
      {{objdump -dr thumb2-bl.d}}
      "thumb2-bl"}
    
    {"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}
     {{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"}
    {"Thumb-2-as-Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x40100c" "" {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"}

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

    {"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" "-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" "-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=armv7m" {farcall-thumb-thumb.s}
     {{objdump -d farcall-thumb-thumb-m.d}}
     "farcall-thumb-thumb-m"}
    {"Thumb-Thumb farcall with BLX (PIC veneer)" "-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-ARM farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "-W" {farcall-thumb-arm.s}
     {{objdump -d farcall-thumb-arm.d}}
     "farcall-thumb-arm"}
    {"Thumb-ARM farcall with BLX" "-Ttext 0x1000 --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)" "-Ttext 0x1000 --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"}

    {"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"}

    {"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"}
}

run_ld_link_tests $armeabitests
run_dump_test "farcall-thumb-thumb"
run_dump_test "farcall-thumb-thumb-pic-veneer"
run_dump_test "farcall-thumb-thumb-m-pic-veneer"
run_dump_test "farcall-thumb-arm-pic-veneer"
run_dump_test "farcall-section"
