changeset 9540:56fe79dce87d

Remove unnecessary -l options from LDFLAGS.
author Bruno Haible <bruno@clisp.org>
date Wed, 26 Dec 2007 15:59:53 +0100
parents 97082c49805f
children aad8160fa3ef
files ChangeLog gnulib-tool
diffstat 2 files changed, 18 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-12-22  Bruno Haible  <bruno@clisp.org>
+
+	* gnulib-tool (func_emit_tests_Makefile_am): Replace local_ldadd with
+	two variables local_ldadd_before, local_ldadd_last.
+
 2007-12-20  Eric Blake  <ebb9@byu.net>
 
 	Work around circular library issue when cross-compiling.
--- a/gnulib-tool
+++ b/gnulib-tool
@@ -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 ="