diff gnulib-tool @ 9540:56fe79dce87d

Remove unnecessary -l options from LDFLAGS.
author Bruno Haible <bruno@clisp.org>
date Wed, 26 Dec 2007 15:59:53 +0100
parents 49f7561fc2d3
children aad8160fa3ef
line wrap: on
line diff
--- a/gnulib-tool	Thu Dec 20 13:15:27 2007 -0700
+++ b/gnulib-tool	Wed Dec 26 15:59:53 2007 +0100
@@ -1919,14 +1919,21 @@
   echo "  -I${testsbase_inverse} -I\$(srcdir)/${testsbase_inverse} \\"
   echo "  -I${testsbase_inverse}/${sourcebase-lib} -I\$(srcdir)/${testsbase_inverse}/${sourcebase-lib}"
   echo
-  local_ldadd=''
+  local_ldadd_before=''
+  local_ldadd_after=''
   if $use_libtests; then
-    local_ldadd=' libtests.a $(LIBTESTS_LIBDEPS)'
+    # 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
-  # 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 "LDADD =${local_ldadd_before} ${testsbase_inverse}/${sourcebase-lib}/${libname}.${libext}${local_ldadd_after}"
   echo
   if $use_libtests; then
     echo "libtests_a_SOURCES ="