# Copyright 2002, 2004, 2006 Free Software Foundation, Inc. # 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 2 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 "i*86-*-*"] && ![istarget "x86_64-*-mingw*"] } { return } if {![istarget "i*86-*-*pe*"] \ && ![istarget "i*86-*-cygwin*"] \ && ![istarget "i*86-*-mingw32*"] \ && ![istarget "x86_64-*-mingw*"] } { set target_xfail "yes" } else { set target_xfail "no" } if {![info exists DLLTOOL]} then { return } if {[which $DLLTOOL] == 0} then { return } verbose "$DLLTOOL -d $srcdir/$subdir/fastcall.def" 1 catch "exec $DLLTOOL -d $srcdir/$subdir/fastcall.def" err if ![string match "" $err] then { send_log "$err\n" verbose "$err" 1 fail "dlltool (fastcall export)" } else { pass "dlltool (fastcall export)" } if { "$target_xfail" == "yes" } { setup_xfail *-* } verbose "$DLLTOOL -p prefix -l tmpdir/libalias.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1 catch "exec $DLLTOOL -p prefix -l tmpdir/libalias.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" err if ![string match "" $err] then { send_log "$err\n" verbose "$err" 1 fail "dlltool -p (execution)" continue } pass "dlltool -p (execution)" set got [binutils_run $NM "tmpdir/libalias.a"] set want "00000000 I __imp__prefix_symbol.*00000000 T _prefix_symbol.*00000000 I __imp__symbol.*00000000 T _symbol" if [regexp $want $got] then { pass "dlltool -p (symbol names)" } else { fail "dlltool -p (symbol names)" } set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias.a"] set want "(Contents of section .idata\\\$6:.*\\.\\.symbol\\.\\..*){2,2}" if [regexp $want $got] then { pass "dlltool -p (import name)" } else { fail "dlltool -p (import name)" }