[prev in list] [next in list] [prev in thread] [next in thread]
List: gnulib-bug
Subject: gnulib-tool: Fix link errors with a particular set of modules on mingw
From: Bruno Haible <bruno () clisp ! org>
Date: 2020-05-30 1:26:44
Message-ID: 2548845.afKNszp0b5 () omega
[Download RAW message or body]
A testdir created by this command:
./gnulib-tool --create-testdir --dir=../testdir --single-configure clean-temp \
crypto/gc getaddrinfo getlogin getlogin_r gettimeofday isatty link localename opendir \
physmem poll putenv read readdir relocatable-prog rename rewinddir select sethostname \
socket stat fstat tmpdir tmpfile uname utime write cond lock
produces link errors on mingw, regarding symbols such as rpl_malloc, rpl_strdup,
etc., all found in the generated gllib/libgnu.a.
This patch fixes it.
2020-05-29 Bruno Haible <bruno@clisp.org>
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/gnulib-tool b/gnulib-tool
index 01c6745..20a2a3e 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 f0746f8..441d295 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,
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic