Eric Blake wrote:
> 2007-12-11 Eric Blake <[EMAIL PROTECTED]>
> +
> + Avoid link failures with separate libtests.a.
> + * gnulib-tool (func_emit_tests_Makefile_am): Also list local_ldadd
> + last, to satisfy circular dependencies.
> +
Thanks. I'm applying this additional patch,
1) to minimize the -l options that are added in LDFLAGS,
2) change comments to make it clear that 'progname' is not the culprit,
it's the 'error' module.
2007-12-22 Bruno Haible <[EMAIL PROTECTED]>
* gnulib-tool (func_emit_tests_Makefile_am): Replace local_ldadd with
two variables local_ldadd_before, local_ldadd_last.
*** gnulib-tool.orig 2007-12-22 17:09:13.000000000 +0100
--- gnulib-tool 2007-12-22 17:09:13.000000000 +0100
***************
*** 1919,1932 ****
echo " -I${testsbase_inverse} -I\$(srcdir)/${testsbase_inverse} \\"
echo " -I${testsbase_inverse}/${sourcebase-lib}
-I\$(srcdir)/${testsbase_inverse}/${sourcebase-lib}"
echo
! local_ldadd=''
if $use_libtests; then
! local_ldadd=' libtests.a $(LIBTESTS_LIBDEPS)'
fi
! # local_ldadd must be listed first, since it often depends on non-test
! # modules; it must also be listed last, since it can include modules
! # such as progname that satisfy dependencies of non-test modules.
! echo "LDADD =${local_ldadd}
${testsbase_inverse}/${sourcebase-lib}/${libname}.${libext}${local_ldadd}"
echo
if $use_libtests; then
echo "libtests_a_SOURCES ="
--- 1919,1939 ----
echo " -I${testsbase_inverse} -I\$(srcdir)/${testsbase_inverse} \\"
echo " -I${testsbase_inverse}/${sourcebase-lib}
-I\$(srcdir)/${testsbase_inverse}/${sourcebase-lib}"
echo
! local_ldadd_before=''
! local_ldadd_after=''
if $use_libtests; then
! # All test programs need to be linked with libtests.a.
! # It needs to be passed to the linker before ${libname}.${libext}, since
! # the tests-related modules depend on the main modules.
! # It also needs to be passed to the linker after ${libname}.${libext}
! # because the latter might contain incomplete modules (such as the 'error'
! # module whose dependency to 'progname' is voluntarily omitted).
! # The LIBTESTS_LIBDEPS can be passed to the linker once or twice, it does
! # not matter.
! local_ldadd_before=' libtests.a'
! local_ldadd_after=' libtests.a $(LIBTESTS_LIBDEPS)'
fi
! echo "LDADD =${local_ldadd_before}
${testsbase_inverse}/${sourcebase-lib}/${libname}.${libext}${local_ldadd_after}"
echo
if $use_libtests; then
echo "libtests_a_SOURCES ="