Hi!
I looked into a failure of the MSYS/MSVC branch and found that
this line from tests/need-lib-prefix.at expands to the wrong
thing:
LT_AT_NOINST_EXEC_CHECK([./main], [-dlopen foo1.la -dlopen libfoo2.la],
[], [expout], [])
Among other things, I find this line in the generated tests/testsuite
file:
$as_echo "$at_srcdir/need_lib_prefix.at:170: if \$LIBTOOL --mode=execute -dlopen foo1.la -dlopen libfoo2.la \"\$lt_exe\" ; then :; else lt_status=\$?; test \$lt_status != -dlopen foo1.la -dlopen
libfoo2.la && test \"X\$host\" != \"X\$build\" && test -x \"\$lt_exe\" && exit 77; exit \$lt_status; fi"
The interesting part is:
test \$lt_status != -dlopen foo1.la -dlopen libfoo2.la &&
That part is coming from (in tests/testsuite.at):
[ m4_ifval([$2], [test $lt_status != $2 && ])]dnl
I'm taking a wild guess here, but shouldn't that be $3 instead?
Cheers,
Peter
2009-01-24 Peter Rosin <p...@lysator.liu.se>
Expand exit status test in LT_AT_NOINST_EXEC_CHECK correctly
* tests/testsuite.at (LT_AT_NOINST_EXEC_CHECK): STATUS is
argument $3, not $2.
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 56ca3a2..24e8174 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -248,7 +248,7 @@ AT_CHECK([if "$lt_exe" $5; then :; else lt_status=$?; ]dnl
m4_define([LT_AT_NOINST_EXEC_CHECK],
[lt_exe=$1; if test -f "$1$EXEEXT"; then lt_exe=$lt_exe$EXEEXT; fi
AT_CHECK([if $LIBTOOL --mode=execute $2 "$lt_exe" $6; then :; else
lt_status=$?; ]dnl
- [ m4_ifval([$2], [test $lt_status != $2 && ])]dnl
+ [ m4_ifval([$3], [test $lt_status != $3 && ])]dnl
[ test "X$host" != "X$build" && test -x "$lt_exe" && exit 77; ]dnl
[ exit $lt_status; fi],[$3],[$4],[$5])
])