[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: transitive shared library dependencies and installation

From: Bob Friesenhahn
Subject: Re: transitive shared library dependencies and installation
Date: Wed, 1 Jan 2020 18:32:34 -0600 (CST)
User-agent: Alpine 2.20 (GSO 67 2015-01-07)

On Wed, 1 Jan 2020, address@hidden wrote:
make[1]: Leaving directory '/home/wferi/ha/pacemaker/translib'
make: *** [Makefile:798: install-am] Error 2

No cyclic dependencies here, so this can be worked around by

-lib_LTLIBRARIES = a/ b/
+lib_LTLIBRARIES = b/ a/

in this case; is this expected (and documented) behavior?

In this case libtool is a slave of Automake and Automake is controlling the build and installation order. This means that it should be expected behavior. Installation is serialized and thus order matters.

and use it from liba, linking the final binary fails:

$ make
/bin/bash ./libtool  --tag=CC   --mode=link gcc  -g -O2 -avoid-version  -o 
translib translib.o a/
libtool: link: gcc -g -O2 -o .libs/translib translib.o  a/.libs/ 
-Wl,-rpath -Wl,/tmp/translib/lib
/usr/bin/ld: a/.libs/ undefined reference to `b2'

As I understand it, the -rpath linker option on the above command makes
a/.libs/ use the already installed (old) version of libb, which
lacks the b2 symbol.  What's the solution here?  Why isn't that -rpath
option "delayed" until the relinking phase?

The -rpath linker option did not cause the library to be used. The '-r' in -rpath stands for 'run' and thus it is a path stored in a built shared library or executable which tells it where to search for other libraries when th program is executed.

The libtool configuration may be dumped using

  ./libtool --config

Perhaps the controlling parameter is hardcode_into_libs. If your libtool comes from an OS distribution rather than from a FSF/GNU tarball, then it is possible that its behavior may have been modified.

I am not seeing 'libb' mentioned on the link line and that may be the cause of the problem you are seeing.

Bob Friesenhahn
GraphicsMagick Maintainer,
Public Key,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]