> * Marcel Loose wrote on Thu, Jan 26, 2006 at 11:07:02AM CET: > > > > I have a package "Common" that (optionally) uses the 3rd party package > > Boost.Threads (and log4cplus). Another package "Blob" depends on > > "Common". Whenever I try to run the test (using make check) on the > > "Blob" test programs I get an "error while loading shared libraries > > ...". For some reason libtool does not add a "-Wl,-rpath" on the link > > line
Confirmed, testcase below. Note also behavior and documentation differ in another way: for the second library, the run-time path is actually added, cf. libtool.info: | `-R LIBDIR' | If OUTPUT-FILE is a program, add LIBDIR to its run-time path. If | OUTPUT-FILE is a library, add `-RLIBDIR' to its DEPENDENCY_LIBS, | so that, whenever the library is linked into a program, LIBDIR | will be added to its run-time path. Cheers, Ralf # 1. install a non-libtool library liba in some directory # 2. create libtool library libb (to be installed somewhere else), # depending on liba, with -R added suitably # 3. create program depending on libb : ${LIBTOOL=libtool} : ${CC=gcc} LDFLAGS="$LDFLAGS -no-undefined" libdir_a=`pwd`/inst_a libdir_b=`pwd`/inst_b rm -rf src $libdir_a $libdir_b mkdir src $libdir_a $libdir_b cd src echo 'int a() { return 0; }' > a.c $LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c a.c $LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la -rpath $libdir_a a.lo $LIBTOOL --mode=install cp liba.la $libdir_a/liba.la $LIBTOOL --mode=clean rm -f liba.la rm -f $libdir_a/liba.la echo 'extern int a(); int b() { return a(); }' > b.c $LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c b.c $LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o libb.la -rpath $libdir_b \ b.lo -L$libdir_a -la -R$libdir_a echo 'extern int b(); int main() { return b(); }' > m.c $CC $CPPFLAGS $CFLAGS -c m.c $LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o m m.o libb.la ./m cd .. _______________________________________________ Bug-libtool mailing list Bug-libtool@gnu.org http://lists.gnu.org/mailman/listinfo/bug-libtool