From: Bruno Haible Date: Sat, 30 May 2020 01:17:19 +0000 (+0200) Subject: gnulib-tool: Fix link errors with a particular set of modules on mingw. X-Git-Tag: v1.0~4021 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=477c6e36110e1b2b52053dc82394ba23d102da2a;p=gnulib.git gnulib-tool: Fix link errors with a particular set of modules on mingw. * gnulib-tool (func_emit_tests_Makefile_am): Add ../lib/libgnu.a to LDADD a second time, after the second occurrence of libtests.a. * pygnulib/GLEmiter.py (tests_Makefile_am): Likewise. --- diff --git a/ChangeLog b/ChangeLog index d43fa874d4..13673e472f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2020-05-29 Bruno Haible + + gnulib-tool: Fix link errors with a particular set of modules on mingw. + * gnulib-tool (func_emit_tests_Makefile_am): Add ../lib/libgnu.a to + LDADD a second time, after the second occurrence of libtests.a. + * pygnulib/GLEmiter.py (tests_Makefile_am): Likewise. + 2020-05-29 Bruno Haible fnmatch: Rely on more gnulib modules. diff --git a/gnulib-tool b/gnulib-tool index 01c6745ad8..20a2a3e2a7 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -4165,8 +4165,6 @@ func_emit_tests_Makefile_am () 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 @@ -4176,10 +4174,10 @@ func_emit_tests_Makefile_am () # 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)' + echo "LDADD = libtests.a ${testsbase_inverse}/${sourcebase-lib}/${libname}.${libext} libtests.a ${testsbase_inverse}/${sourcebase-lib}/${libname}.${libext} \$(LIBTESTS_LIBDEPS)" + else + echo "LDADD = ${testsbase_inverse}/${sourcebase-lib}/${libname}.${libext}" fi - echo "LDADD =${local_ldadd_before} ${testsbase_inverse}/${sourcebase-lib}/${libname}.${libext}${local_ldadd_after}" echo if $use_libtests; then echo "libtests_a_SOURCES =" diff --git a/pygnulib/GLEmiter.py b/pygnulib/GLEmiter.py index f0746f8278..441d2956d8 100644 --- a/pygnulib/GLEmiter.py +++ b/pygnulib/GLEmiter.py @@ -1123,8 +1123,6 @@ AC_DEFUN([%V1%_LIBSOURCES], [ (testsbase_inverse, sourcebase, testsbase_inverse, sourcebase) emit += '\n' - local_ldadd_before = string() - local_ldadd_after = string() if libtests: # All test programs need to be linked with libtests.a. # It needs to be passed to the linker before ${libname}.${libext}, since @@ -1134,11 +1132,12 @@ AC_DEFUN([%V1%_LIBSOURCES], [ # '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)' - emit += 'LDADD =%s %s/%s/%s.%s%s\n\n' % \ - (local_ldadd_before, testsbase_inverse, sourcebase, libname, libext, - local_ldadd_after) + emit += 'LDADD = libtests.a %s/%s/%s.%s libtests.a %s/%s/%s.%s $(LIBTESTS_LIBDEPS)\n\n' % \ + (testsbase_inverse, sourcebase, libname, libext, + testsbase_inverse, sourcebase, libname, libext) + else: + emit += 'LDADD = %s/%s/%s.%s\n\n' % \ + (testsbase_inverse, sourcebase, libname, libext) if libtests: emit += 'libtests_a_SOURCES =\n' # Here we use $(LIBOBJS), not @LIBOBJS@. The value is the same. However,