send_log "$err\n"
verbose "$err" 1
fail "dlltool (fastcall export)"
- continue;
+} else {
+ pass "dlltool (fastcall export)"
+}
+
+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 (fastcall export)"
+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)"
+}