Hello all, Frank Fegert wrote: > Ralf Wildenhues wrote: > >>This particular bug has been fixed in the CVS version of Libtool, as far >>as I can see. Its tests/destdir.at tests exposes the branch-1-5 failure. > > > i rebuild libtool with the v1.5.23a and v2.1a (each from the daily > CVS snapshot). The error remains the same with either version of > libtool. The dependend lib is still searched in $DIR rather than > $DESTDIR/$DIR: > > $ libtool --version > ltmain.sh (GNU libtool) 1.5.23a (1.1220.2.412 2006/10/13 14:13:30)
the problem with gettext and the inter-dependent library install disappeared after i removed "-Wl,-brtl" from my build environments default LDFLAGS. I'm not exactly sure why enabling RTL would break things at that point, but never mind that now. The new and very similar problem is with subversion-1.4.3, which also comes with several inter-dependent libraries. libtool is at version 1.5.23b and fails to locate the dependent libraries in DESTDIR/instprefix: $ gmake install DESTDIR=/tmp/rd/frank/subversion-1.4.3-instroot /opt/afw/bin/ginstall -c -d /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib cd subversion/libsvn_subr ; /opt/afw/bin/bash /tmp/rd/frank/subversion-1.4.3/libtool --mode=install /opt/afw/bin/ginstall -c libsvn_subr-1.la /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_subr-1.la /opt/afw/bin/ginstall -c .libs/libsvn_subr-1.a /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_subr-1.a /opt/afw/bin/ginstall -c .libs/libsvn_subr-1.lai /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_subr-1.la libtool: install: warning: remember to run `libtool --finish /opt/afw/lib' cd subversion/libsvn_delta ; /opt/afw/bin/bash /tmp/rd/frank/subversion-1.4.3/libtool --mode=install /opt/afw/bin/ginstall -c libsvn_delta-1.la /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_delta-1.la libtool: install: warning: relinking `libsvn_delta-1.la' (cd /tmp/rd/frank/subversion-1.4.3/subversion/libsvn_delta; /opt/afw/bin/bash /tmp/rd/frank/subversion-1.4.3/libtool --tag=CC --mode=relink gcc -O2 -g -fsigned-char -pthread -D_LARGEFILE64_SOURCE -DNE_LFS -L/opt/afw/lib -Wl,-blibpath:/opt/afw/lib:/usr/lib:/lib -L/opt/afw/lib -rpath /opt/afw/lib -o libsvn_delta-1.la cancel.lo compose_delta.lo debug_editor.lo default_editor.lo path_driver.lo svndiff.lo text_delta.lo vdelta.lo version.lo xdelta.lo ../../subversion/libsvn_subr/libsvn_subr-1.la /opt/afw/lib/libaprutil-1.la -lgdbm -ldb-4.5 -lsqlite3 -lexpat -liconv /opt/afw/lib/libapr-1.la -lpthread -lintl -lz -inst-prefix-dir /tmp/rd/frank/subversion-1.4.3-instroot) generating symbol list for `libsvn_delta-1.la' /usr/bin/nm -B -BCpg .libs/cancel.o .libs/compose_delta.o .libs/debug_editor.o .libs/default_editor.o .libs/path_driver.o .libs/svndiff.o .libs/text_delta.o .libs/vdelta.o .libs/version.o .libs/xdelta.o | awk '{if ((($2 == "T") || ($2 == "D") || ($2 == "B")) && (substr($3,1,1) != ".")) { print $3 } }' | sort -u > .libs/libsvn_delta-1.exp gcc -shared -o .libs/libsvn_delta-1.so.0 .libs/cancel.o .libs/compose_delta.o .libs/debug_editor.o .libs/default_editor.o .libs/path_driver.o .libs/svndiff.o .libs/text_delta.o .libs/vdelta.o .libs/version.o .libs/xdelta.o -Wl,-blibpath:/opt/afw/lib:/opt/afw/lib:/usr/lib:/lib -L/opt/afw/lib /opt/afw/lib/libsvn_subr-1.a /opt/afw/lib/libaprutil-1.a /opt/afw/lib/libgdbm.a /opt/afw/lib/libdb-4.5.a /opt/afw/lib/libsqlite3.a /opt/afw/lib/libexpat.a /opt/afw/lib/libiconv.a /opt/afw/lib/libapr-1.a -lpthread /opt/afw/lib/libintl.a -lz -lc -Wl,-bnoentry -pthread -Wl,-blibpath:/opt/afw/lib:/usr/lib:/lib -Wl,-bE:.libs/libsvn_delta-1.exp ${wl}-berok gcc: /opt/afw/lib/libsvn_subr-1.a: No such file or directory libtool: install: error: relink `libsvn_delta-1.la' with the above command before installing it gmake: *** [install-fsmod-lib] Error 1 At least the first non-inter-dependent library seems sane (see the following dump output), but the ones that'd be created from the above command would have hardcoded library paths. Is this intended? $ dump -Hv /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_subr-1.a /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_subr-1.a[libsvn_subr-1.so.0]: [...] ***Import File Strings*** INDEX PATH BASE MEMBER 0 /opt/afw/lib:/usr/lib:/lib 1 libapr-1.a libapr-1.so.0 2 libintl.a libintl.so.8 3 libaprutil-1.a libaprutil-1.so.0 4 libc.a shr.o 5 libz.a libz.so.1 6 libgcc_s.a shr.o 7 libexpat.a libexpat.so.1 If i override the configure'ed values: hardcode_into_libs=yes hardcode_direct=yes in the build local libtool to: hardcode_into_libs=no hardcode_direct=no the build/stage-install works out fine: $ gmake install DESTDIR=/tmp/rd/frank/subversion-1.4.3-instroot /opt/afw/bin/ginstall -c -d /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib cd subversion/libsvn_subr ; /opt/afw/bin/bash /tmp/rd/frank/subversion-1.4.3/libtool --mode=install /opt/afw/bin/ginstall -c libsvn_subr-1.la /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_subr-1.la /opt/afw/bin/ginstall -c .libs/libsvn_subr-1.a /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_subr-1.a /opt/afw/bin/ginstall -c .libs/libsvn_subr-1.lai /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_subr-1.la libtool: install: warning: remember to run `libtool --finish /opt/afw/lib' cd subversion/libsvn_delta ; /opt/afw/bin/bash /tmp/rd/frank/subversion-1.4.3/libtool --mode=install /opt/afw/bin/ginstall -c libsvn_delta-1.la /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_delta-1.la libtool: install: warning: relinking `libsvn_delta-1.la' (cd /tmp/rd/frank/subversion-1.4.3/subversion/libsvn_delta; /opt/afw/bin/bash /tmp/rd/frank/subversion-1.4.3/libtool --tag=CC --mode=relink gcc -O2 -g -fsigned-char -pthread -D_LARGEFILE64_SOURCE -DNE_LFS -L/opt/afw/lib -Wl,-blibpath:/opt/afw/lib:/usr/lib:/lib -L/opt/afw/lib -rpath /opt/afw/lib -o libsvn_delta-1.la cancel.lo compose_delta.lo debug_editor.lo default_editor.lo path_driver.lo svndiff.lo text_delta.lo vdelta.lo version.lo xdelta.lo ../../subversion/libsvn_subr/libsvn_subr-1.la /opt/afw/lib/libaprutil-1.la -lgdbm -ldb-4.5 -lsqlite3 -lexpat -liconv /opt/afw/lib/libapr-1.la -lpthread -lintl -lz -inst-prefix-dir /tmp/rd/frank/subversion-1.4.3-instroot) generating symbol list for `libsvn_delta-1.la' /usr/bin/nm -B -BCpg .libs/cancel.o .libs/compose_delta.o .libs/debug_editor.o .libs/default_editor.o .libs/path_driver.o .libs/svndiff.o .libs/text_delta.o .libs/vdelta.o .libs/version.o .libs/xdelta.o | awk '{if ((($2 == "T") || ($2 == "D") || ($2 == "B")) && (substr($3,1,1) != ".")) { print $3 } }' | sort -u > .libs/libsvn_delta-1.exp gcc -shared -o .libs/libsvn_delta-1.so.0 .libs/cancel.o .libs/compose_delta.o .libs/debug_editor.o .libs/default_editor.o .libs/path_driver.o .libs/svndiff.o .libs/text_delta.o .libs/vdelta.o .libs/version.o .libs/xdelta.o -L/opt/afw/lib -L/tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib -lsvn_subr-1 -laprutil-1 -lgdbm -ldb-4.5 -lsqlite3 -lexpat -liconv -lapr-1 -lpthread -lintl -lz -lc -Wl,-bnoentry -pthread -Wl,-blibpath:/opt/afw/lib:/usr/lib:/lib -Wl,-bE:.libs/libsvn_delta-1.exp ${wl}-berok ar cru .libs/libsvn_delta-1.a .libs/libsvn_delta-1.so.0 /opt/afw/bin/ginstall -c .libs/libsvn_delta-1.aT /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_delta-1.a /opt/afw/bin/ginstall -c .libs/libsvn_delta-1.lai /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_delta-1.la libtool: install: warning: remember to run `libtool --finish /opt/afw/lib' cd subversion/libsvn_fs_fs ; /opt/afw/bin/bash /tmp/rd/frank/subversion-1.4.3/libtool --mode=install /opt/afw/bin/ginstall -c libsvn_fs_fs-1.la /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_fs_fs-1.la libtool: install: warning: relinking `libsvn_fs_fs-1.la' (cd /tmp/rd/frank/subversion-1.4.3/subversion/libsvn_fs_fs; /opt/afw/bin/bash /tmp/rd/frank/subversion-1.4.3/libtool --tag=CC --mode=relink gcc -O2 -g -fsigned-char -pthread -D_LARGEFILE64_SOURCE -DNE_LFS -L/opt/afw/lib -Wl,-blibpath:/opt/afw/lib:/usr/lib:/lib -L/opt/afw/lib -rpath /opt/afw/lib -o libsvn_fs_fs-1.la dag.lo err.lo fs.lo fs_fs.lo id.lo key-gen.lo lock.lo revs-txns.lo tree.lo ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la /opt/afw/lib/libaprutil-1.la -lgdbm -ldb-4.5 -lsqlite3 -lexpat -liconv /opt/afw/lib/libapr-1.la -lpthread -lintl -lz -inst-prefix-dir /tmp/rd/frank/subversion-1.4.3-instroot) [...] but the resulting library libsvn_subr-1.a: $ dump -Hv /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_subr-1.a /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_subr-1.a[libsvn_subr-1.so.0]: [...] ***Import File Strings*** INDEX PATH BASE MEMBER 0 /opt/afw/lib:/usr/lib:/lib 1 /opt/afw/lib libapr-1.a libapr-1.so.0 2 /opt/afw/lib libintl.a libintl.so.8 3 /opt/afw/lib libaprutil-1.a libaprutil-1.so.0 4 libc.a shr.o 5 libz.a libz.so.1 6 libgcc_s.a shr.o 7 /opt/afw/lib libexpat.a libexpat.so.1 and binaries (e.g. svnversion) are badly screwed up: $ dump -Hv /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/bin/svnversion /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/bin/svnversion: [...] ***Import File Strings*** INDEX PATH BASE MEMBER 0 /opt/afw/lib:/opt/afw/lib:/usr/lib:/lib 1 libc.a shr.o 2 libpthread.a shr_comm.o 3 libpthread.a shr_xpg5.o 4 /opt/afw/lib libintl.a libintl.so.8 5 ../../subversion/libsvn_subr/.libs libsvn_subr-1.a libsvn_subr-1.so.0 6 /opt/afw/lib libapr-1.a libapr-1.so.0 7 ../../subversion/libsvn_wc/.libs libsvn_wc-1.a libsvn_wc-1.so.0 8 libssl.a libssl.so.0.9.8 All other inter-dependent libraries seem fine though: $ dump -Hv /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_delta-1.a /tmp/rd/frank/subversion-1.4.3-instroot/opt/afw/lib/libsvn_delta-1.a[libsvn_delta-1.so.0]: [...] ***Import File Strings*** INDEX PATH BASE MEMBER 0 /opt/afw/lib:/usr/lib:/lib 1 libapr-1.a libapr-1.so.0 2 libc.a shr.o 3 libsvn_subr-1.a libsvn_subr-1.so.0 4 libaprutil-1.a libaprutil-1.so.0 5 libintl.a libintl.so.8 6 libz.a libz.so.1 I can fix this after the stage-install by manually relinking all the binaries, but it'd be nice to get it right without manual intervention ;-) Actually i would've expected the completely opposite effect of the hardcode_* settings, i.e. _NO_ PATH in the dump output with hardcode{_direct|_into_libs}=no. Am i missing something here? Can some kind soul help me get this thing to work? Thanks & Regards, Frank _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool