Subject: bug#11921: libtool --mode=link with indirectly involved libraries

From: Roumen Petrov <[email-masked]>
Date: Mon, 23 Jul 2012 22:01:22 +0300

Дилян Палаузов wrote:
> Hello,
>
> I use libtool-2.4.2.  In the Makefile.am I have
>
> lib_LTLIBRARIES = libA.a libB.la
> libA_la_SOURCES = ...
> libB_la_SOURCES = ...
> libB_la_LIBADD = libA.la
> bin_PROGRAMS = c
> c_SOURCES = ...
> c_LDADD = libB.la
>
> This creates a file libB.la which lists libA.la (with its full path) 
> under dependency_libs .
>
> Executing "make" leads to
>
> libtool --tag=CC --mode=link gcc -o c libB.la
>
> And now, on my system this expands (correctly) to
> libtool: link: gcc -o c /.libs/libB.so /.libs/libA.so
>
> but on another system it resolves to
> libtool: link: gcc -o c /.libs/libB.so
> -> ERROR
> ld: c.o: undefined reference to symbol 'A'
> ld: note: 'A' is defined in DSO libA.so.0 so try adding it to the 
> linker command line
> libA.so.0: could not read symbols: Invalid operation
> collect2: ld returned 1 exit status
>
Look like debian based distribution.

> My question is:
>
> Why is libB.la sometimes expanded by libtool --mode=link v2.4.2 to 
> "libB.so libA.so" and sometimes only to "libB.so"?

https://bugs.launchpad.net/ubuntu/+source/libtool/+bug/258491 ?

>
> Thanks very much in advance for your answer
>   Дилян

Roumen