1# Expect script for various ARM ELF tests. 2# Copyright 2002, 2003, 2004 Free Software Foundation, Inc. 3# 4# This file is free software; you can redistribute it and/or modify 5# it under the terms of the GNU General Public License as published by 6# the Free Software Foundation; either version 2 of the License, or 7# (at your option) any later version. 8# 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License 15# along with this program; if not, write to the Free Software 16# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 17# 18 19if {[istarget "arm-*-vxworks"]} { 20 set armvxworkstests { 21 {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" 22 "" {vxworks1-lib.s} 23 {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd} 24 {readelf --symbols vxworks1-lib.nd}} 25 "libvxworks1.so"} 26 {"VxWorks executable test 1 (dynamic)" \ 27 "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" 28 "" {vxworks1.s} 29 {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}} 30 "vxworks1"} 31 {"VxWorks executable test 2 (dynamic)" \ 32 "-Tvxworks1.ld -q --force-dynamic" 33 "" {vxworks2.s} 34 {{readelf --segments vxworks2.sd}} 35 "vxworks2"} 36 {"VxWorks executable test 2 (static)" 37 "-Tvxworks1.ld" 38 "" {vxworks2.s} 39 {{readelf --segments vxworks2-static.sd}} 40 "vxworks2"} 41 } 42 run_ld_link_tests $armvxworkstests 43 run_dump_test "vxworks1-static" 44} 45 46# Exclude non-ARM-ELF targets. 47 48if { ![is_elf_format] || ![istarget "arm*-*-*"] } { 49 return 50} 51 52# List contains test-items with 3 items followed by 2 lists: 53# 0:name 1:ld options 2:assembler options 54# 3:filenames of assembler files 4: action and options. 5: name of output file 55 56# Actions: 57# objdump: Apply objdump options on result. Compare with regex (last arg). 58# nm: Apply nm options on result. Compare with regex (last arg). 59# readelf: Apply readelf options on result. Compare with regex (last arg). 60 61set armelftests { 62 {"Simple non-PIC shared library" "-shared" "" {arm-lib.s} 63 {{objdump -fdw arm-lib.d} {objdump -Rw arm-lib.r}} 64 "arm-lib.so"} 65 {"Simple PIC shared library" "-shared" "" {arm-lib-plt32.s} 66 {{objdump -fdw arm-lib-plt32.d} {objdump -Rw arm-lib-plt32.r}} 67 "arm-lib-plt32.so"} 68 {"Simple dynamic application" "tmpdir/arm-lib.so" "" {arm-app.s} 69 {{objdump -fdw arm-app.d} {objdump -Rw arm-app.r}} 70 "arm-app"} 71 {"Simple static application" "" "" {arm-static-app.s} 72 {{objdump -fdw arm-static-app.d} {objdump -rw arm-static-app.r}} 73 "arm-static-app"} 74 {"Non-pcrel function reference" "tmpdir/arm-lib.so" "" {arm-app-abs32.s} 75 {{objdump -fdw arm-app-abs32.d} {objdump -Rw arm-app-abs32.r}} 76 "arm-app-abs32"} 77 {"Mixed ARM/Thumb shared library" "-shared -T arm-lib.ld" "" 78 {mixed-lib.s} 79 {{objdump -fdw mixed-lib.d} {objdump -Rw mixed-lib.r} 80 {readelf -Ds mixed-lib.sym}} 81 "mixed-lib.so"} 82 {"Mixed ARM/Thumb dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld" "" 83 {mixed-app.s} 84 {{objdump -fdw mixed-app.d} {objdump -Rw mixed-app.r} 85 {readelf -Ds mixed-app.sym}} 86 "mixed-app"} 87 {"Mixed ARM/Thumb arch5 dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" 88 {mixed-app.s} 89 {{objdump -fdw mixed-app-v5.d} {objdump -Rw mixed-app.r} 90 {readelf -Ds mixed-app.sym}} 91 "mixed-app-v5"} 92 {"target1-abs" "-static --target1-abs -T arm.ld" "" {arm-target1.s} 93 {{objdump -s arm-target1-abs.d}} 94 "arm-target1-abs"} 95 {"target1-rel" "-static --target1-rel -T arm.ld" "" {arm-target1.s} 96 {{objdump -s arm-target1-rel.d}} 97 "arm-target1-rel"} 98 {"target2-rel" "-static --target2=rel -T arm.ld" "" {arm-target2.s} 99 {{objdump -s arm-target2-rel.d}} 100 "arm-target2-rel"} 101 {"target2-abs" "-static --target2=abs -T arm.ld" "" {arm-target2.s} 102 {{objdump -s arm-target2-abs.d}} 103 "arm-target2-abs"} 104 {"target2-got-rel" "-static --target2=got-rel -T arm.ld" "" {arm-target2.s} 105 {{objdump -s arm-target2-got-rel.d}} 106 "arm-target2-got-rel"} 107 {"arm-rel31" "-static -T arm.ld" "" {arm-rel31.s} 108 {{objdump -s arm-rel31.d}} 109 "arm-rel31"} 110 {"arm-call" "-static -T arm.ld" "-meabi=4" {arm-call1.s arm-call2.s} 111 {{objdump -d arm-call.d}} 112 "arm-call"} 113 {"TLS shared library" "-shared -T arm-lib.ld" "" {tls-lib.s} 114 {{objdump -fdw tls-lib.d} {objdump -Rw tls-lib.r}} 115 "tls-lib.so"} 116 {"TLS dynamic application" "-T arm-dyn.ld tmpdir/tls-lib.so" "" {tls-app.s} 117 {{objdump -fdw tls-app.d} {objdump -Rw tls-app.r}} 118 "tls-app"} 119 {"Thumb entry point" "-T arm.ld" "" {thumb-entry.s} 120 {{readelf -h thumb-entry.d}} 121 "thumb-entry"} 122 {"thumb-rel32" "-static -T arm.ld" "" {thumb-rel32.s} 123 {{objdump -s thumb-rel32.d}} 124 "thumb-rel32"} 125} 126 127run_ld_link_tests $armelftests 128