[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnulib-tool: Fix link errors with a particular set of modules on mingw
From: |
Bruno Haible |
Subject: |
gnulib-tool: Fix link errors with a particular set of modules on mingw |
Date: |
Sat, 30 May 2020 03:26:44 +0200 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-177-generic; KDE/5.18.0; x86_64; ; ) |
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 Thread] |
Current Thread |
[Next in Thread] |
- gnulib-tool: Fix link errors with a particular set of modules on mingw,
Bruno Haible <=