URL: <https://savannah.gnu.org/support/?111462>
Summary: libtool reorders link dependencies
Group: GNU Libtool
Submitter: haible
Submitted: Sat 17 Oct 2026 12:48:37 PM CEST
Category: None
Priority: 5 - Normal
Severity: 3 - Normal
Status: None
Privacy: Public
Assigned to: None
Originator Email:
Open/Closed: Open
Discussion Lock: Unlocked
Operating System: GNU/Linux
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Sat 17 Oct 2026 12:48:37 PM CEST By: Bruno Haible <haible>
Building GNU gettext (git commit c604fe82114873bdcbbe4b77412da1b0e11fce1a)
with a current Gnulib, I see these two lines in the build log, reproducible
through "cd gettext-tools/gnulib-tests/; make test-ctype_alnum":
/bin/bash ../libtool --tag=CC --preserve-dup-deps --mode=link gcc
-L/PREFIX/lib -o test-ctype_alnum unictype/test-ctype_alnum.o libtests.a
../gnulib-lib/libgettextlib.la libtests.a ../gnulib-lib/libgettextlib.la
libtests.a /PREFIX/lib/libunistring.so -Wl,-rpath -Wl,/PREFIX/lib
libtool: link: gcc -o test-ctype_alnum unictype/test-ctype_alnum.o
/PREFIX/lib/libunistring.so -L/PREFIX/lib libtests.a
../gnulib-lib/.libs/libgettextlib.a -lacl /PREFIX/lib/libunistring.so -lm
-lattr -lselinux -lxml2 libtests.a ../gnulib-lib/.libs/libgettextlib.a -lacl
/PREFIX/lib/libunistring.so -lm -lattr -lselinux -lxml2 libtests.a -Wl,-rpath
-Wl,/PREFIX/lib -Wl,-rpath -Wl,/PREFIX/lib
The link dependencies that I gave, after the object files, were:
1. libtests.a
2. ../gnulib-lib/libgettextlib.la
3. libtests.a
4. ../gnulib-lib/libgettextlib.la
5. libtests.a
6. /PREFIX/lib/libunistring.so
The link dependencies that libtool passes to gcc are:
1. /PREFIX/lib/libunistring.so
2. libtests.a
3. ../gnulib-lib/.libs/libgettextlib.a
4. /PREFIX/lib/libunistring.so
5. libtests.a
6. ../gnulib-lib/.libs/libgettextlib.a
7. /PREFIX/lib/libunistring.so
and a few system libraries.
The problem is this reordering: Both ../gnulib-lib/.libs/libgettextlib.a and
/PREFIX/lib/libunistring.so contain a function 'uc_is_alnum', but they behave
differently. The one in ../gnulib-lib/.libs/libgettextlib.a is the one that
makes the test-ctype_alnum program work. The one in
/PREFIX/lib/libunistring.so is from an older libunistring version (1.4) and
makes the test-ctype_alnum program crash.
Can libtool --mode=link stop doing this reordering?
Seen with libtool 2.5.3, 2.5.4, 2.6.0, 2.6.2.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/support/?111462>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
