Subject: link_all_deps and indirect dependencies

From: Дилян Палаузов<[email-masked]>
Date: Sun, 10 Mar 2013 23:10:15 +0100

Hello,

in my project, I have program A that dynamically links with library B 
(library B is mentioned as DT_NEEDED in program A), and library B 
dynamically links with library C (library C is mentioned as DT_NEEDED in 
library B, and under dependency_libs in libraryB.la).

--> If I want to use a function from library C in program A, am I 
supposed to list (in Makefile.am) that program A depends on library C, 
or can I rely on the fact, that program A loads library B and library B 
loads library C, thus it is not necessary to link explicitly program A 
with library C?

Under Debian, libtool is patched to have link_all_deplibs=no, on other 
systems link_all_deplibs is unknown/yes.  When link_all_deplibs is yes, 
I do not have to link program A explicitly with library C; when 
link_all_deplibs is no, I have to link explicitly.

Program A, library B and library C are in the control of the same 
person, so the dependency on libC in libB is ensured.

According to the Debian maintainer of the libtool package, 
bugs.debian.org/cgi-bin/bugreport.cgi?bug=702737 , libtool's 
documentation shall state (or states, but I don't find where), that 
program A must explicitly link with library C.

Thanks in advance for your feedback
   Дилян