branch: development
commit f3845d561c054ac66c85ef91e6ddf51228f9e146
Author: Anthony Mallet <[email protected]>
AuthorDate: Thu May 7 00:20:33 2026 +0300
ltmain.in: overlinking dependency_libs when linking against a libtool
library
On NetBSD, linking a shared lib A with a libtool shared library B always
adds B's dependency to the dependencies of A, which is wrong on ELF systems.
Reported: https://savannah.gnu.org/support/?111406
* build-aux/ltmain.in: Move section of code to avoid overlinking
dependency_libs on ELF systems.
---
build-aux/ltmain.in | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
index 3c30492b..45e0668f 100644
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -6347,19 +6347,19 @@ func_mode_link ()
# It is a libtool convenience library, so add in its objects.
func_append convenience " $ladir/$objdir/$old_library"
func_append old_convenience " $ladir/$objdir/$old_library"
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if $opt_preserve_dup_deps; then
+ case "$tmp_libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append tmp_libs " $deplib"
+ done
elif test prog != "$linkmode" && test lib != "$linkmode"; then
func_fatal_error "'$lib' is not a convenience library"
fi
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_preserve_dup_deps; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done
continue
fi # $pass = conv