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

From: Дилян Палаузов<[email-masked]>
Date: Thu, 12 Jul 2012 13:20:08 +0200

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

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"?

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