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/

Attachment: signature.asc
Description: PGP signature

Reply via email to