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. 23 if {![is_pecoff_format]} { 24 return 25 } 26 27 # This test can only be run on PE/COFF platforms that support .secrel32. 28 if {[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 66 run_dump_test "image_size" 67 run_dump_test "export_dynamic_warning" 68 69 run_dump_test "longsecn" 70 run_dump_test "longsecn-1" 71 run_dump_test "longsecn-2" 72 run_dump_test "longsecn-3" 73 run_dump_test "longsecn-4" 74 run_dump_test "longsecn-5" 75 76 run_dump_test "orphan" 77 run_dump_test "orphan_nu" 78 79 if {[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 85 set 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 90 run_ld_link_tests $foreign_sym_test 91