Ralf Wildenhues wrote: [...]
[details left out]Yes. We recently identified that an audit of libtool.m4 for wrong use of $ECHO is necessary.
Another question: How did you find those bugs? I.e., were they exposed by the Libtool testsuite? If not, how can we trigger them?
The testsuite triggers the EXPORTn bug and some other bugs if $ECHO is set to 'printf %s\n' on Cygwin. When running the testsuite normally, "All 106 tests passed". (The new testsuite thingy fails 2 of 5 tests, but I'll report that in a separate mail). When running the testsuite like this:
make check VERBOSE=yes lt_ECHO='printf %s\n'
The result is 9 of 95 tests failed (11 tests were not run)
I've uploaded the verbose log to http://www.roboros.com/tmp/libtool-echo-errs.txt
Some highlights:
PASS: mdemo-static.test PASS: mdemo-make.test SKIP: mdemo-exec.test SKIP: mdemo-inst.test SKIP: mdemo-unst.test
This is interesting. Linking actually fails in mdemo-make due to syntax error in the def file, but the test still passes because libtool returns success. As far as I can see this is because the code tests $? after func_show_eval "$link_command", but func_show_eval evals ':' last if an error occurs and only one argument is supplied. A change that appears to fix this is to replace
my_fail_exp="${2-:}"
by
my_fail_exp="${2-false}"
in func_show_eval.
PASS: demo-conf.test PASS: demo-make.test PASS: demo-exec.test PASS: demo-inst.test FAIL: demo-unst.test
Uninstall fails:
libtool: uninstall: dldll=`/bin/bash 2>&1 -c '. /Robert/libtool-HEAD/src/libtool
/tests/_inst/lib/libhello.la; printf %s\n ../bin/cyghello-2.dll'`
libtool: uninstall: dlpath=/Robert/libtool-HEAD/src/libtool/tests/_inst/lib/../
bin/cyghello-2.dlln
libtool: uninstall: rm -f /Robert/libtool-HEAD/src/libtool/tests/_inst/lib/../b
in/cyghello-2.dlln
(ECHO in postinstall_cmds and postuninstall_cmds)
PASS: mdemo-conf.test FAIL: mdemo-make.test SKIP: mdemo-exec.test SKIP: mdemo-inst.test SKIP: mdemo-unst.test FAIL: mdemo-dryrun.test
Syntax error in def files (EXPORTn)
PASS: mdemo-shared.test FAIL: mdemo-make.test SKIP: mdemo-exec.test SKIP: mdemo-inst.test SKIP: mdemo-unst.test
Same as previous
Robert
_______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool