1# Expect script for simple PE tests that require the just-built binutils only. 2# Copyright (C) 2004-2014 Free Software Foundation, Inc. 3# 4# This file is part of the GNU Binutils. 5# 6# This program is free software; you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation; either version 3 of the License, or 9# (at your option) any later version. 10# 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15# 16# You should have received a copy of the GNU General Public License 17# along with this program; if not, write to the Free Software 18# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 19# MA 02110-1301, USA. 20# 21 22# These tests can only be run on PE/COFF platforms. 23if {![is_pecoff_format]} { 24 return 25} 26 27# This test can only be run on PE/COFF platforms that support .secrel32. 28if {[istarget i*86-*-cygwin*] 29 || [istarget i*86-*-pe] 30 || [istarget i*86-*-mingw*] 31 || [istarget x86_64-*-mingw*] 32 || [istarget arm-wince-pe] } { 33 34 if {[istarget x86_64-*-mingw*] } { 35 set pe_tests { 36 {".secrel32" "" "" "" {secrel1.s secrel2.s} 37 {{objdump -s secrel_64.d}} "secrel.x"} 38 {"Empty export table" "" "" "" "exports.s" 39 {{objdump -p exports64.d}} "exports.dll"} 40 {"TLS directory entry" "" "" "" "tlssec.s" 41 {{objdump -p tlssec64.d}} "tlssec.dll"} 42 } 43 } elseif {[istarget i*86-*-cygwin*] } { 44 set pe_tests { 45 {".secrel32" "--disable-auto-import" "" "" {secrel1.s secrel2.s} 46 {{objdump -s secrel.d}} "secrel.x"} 47 {"Empty export table" "" "" "" "exports.s" 48 {{objdump -p exports.d}} "exports.dll"} 49 {"TLS directory entry" "" "" "" "tlssec.s" 50 {{objdump -p tlssec32.d}} "tlssec.dll"} 51 } 52 } else { 53 set pe_tests { 54 {".secrel32" "" "" "" {secrel1.s secrel2.s} 55 {{objdump -s secrel.d}} "secrel.x"} 56 {"Empty export table" "" "" "" "exports.s" 57 {{objdump -p exports.d}} "exports.dll"} 58 {"TLS directory entry" "" "" "" "tlssec.s" 59 {{objdump -p tlssec32.d}} "tlssec.dll"} 60 } 61 } 62 63 run_ld_link_tests $pe_tests 64} 65 66run_dump_test "image_size" 67run_dump_test "export_dynamic_warning" 68 69run_dump_test "longsecn" 70run_dump_test "longsecn-1" 71run_dump_test "longsecn-2" 72run_dump_test "longsecn-3" 73run_dump_test "longsecn-4" 74run_dump_test "longsecn-5" 75 76run_dump_test "orphan" 77run_dump_test "orphan_nu" 78 79if {[istarget x86_64-*-mingw*] } { 80 run_dump_test "cfi" 81} elseif {[istarget i*86-*-cygwin*] || [istarget i*86-*-mingw*] } { 82 run_dump_test "cfi32" 83} 84 85set foreign_sym_test { 86 {"non-C aligned common" "" "" "" {non-c-lang-syms.s} 87 {{nm -C non-c-lang-syms.d}} "non-c-lang-syms.x"} 88} 89 90run_ld_link_tests $foreign_sym_test 91