On Mon, 2004-11-15 at 13:16 +0000, Gary V. Vaughan wrote: > Ralf Wildenhues wrote: > >>>>Scott James Remnant wrote: > >>>>> > >>>>>They're both trying to deal with platforms like Solaris that don't have > >>>>>a needed-following link loader. > > > The patch that is in Debian's libtool? > > It is? I'll defer to Scott... > Yes. When you're making a distribution, Libtool's behaviour of directly linking indirect-dependencies is insane. For a SONAME change to a library deep in the stack, that only affects the library immediately above it, you suddenly need to rebuild your entire desktop environment.
> > If yes, the why in the world are we not using it? > > Exactly! :-) > I submitted keybuk-linux-deplibs.patch to libtool-patches back in March, and there was a slight objection from Bob and nobody else joined in to ok it. Attached again. Scott -- Have you ever, ever felt like this? Had strange things happen? Are you going round the twist?
diff -ruNp libtool-CVS~/ChangeLog libtool-CVS/ChangeLog --- libtool-CVS~/ChangeLog 2004-03-24 14:23:18.000000000 +0000 +++ libtool-CVS/ChangeLog 2004-03-28 22:12:29.000000000 +0100 @@ -0,0 +1,11 @@ +2004-03-28 Scott James Remnant <[EMAIL PROTECTED]> + + * ltmain.in: The dynamic link loader on some platforms is able to + correctly traverse dependency trees, therefore when $link_all_deplibs + is set to 'no' don't add the contents of dependency_libs to the + link line to link a program. + * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [linux*]: Linux is one + of those platforms, set link_all_deplibs to 'no' for both C++ and + other compilers. + * NEWS: Updated. + diff -ruNp libtool-CVS~/ltmain.in libtool-CVS/ltmain.in --- libtool-CVS~/ltmain.in 2004-03-24 02:59:18.000000000 +0000 +++ libtool-CVS/ltmain.in 2004-03-28 21:45:45.000000000 +0100 @@ -1904,7 +1904,10 @@ EOF case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; esac fi if test "$pass" = dlopen; then diff -ruNp libtool-CVS~/m4/libtool.m4 libtool-CVS/m4/libtool.m4 --- libtool-CVS~/m4/libtool.m4 2004-03-24 14:08:28.000000000 +0000 +++ libtool-CVS/m4/libtool.m4 2004-03-28 22:08:26.000000000 +0100 @@ -3381,6 +3381,9 @@ m4_if([$1], [CXX], [ cygwin* | mingw*) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' ;; + linux*) + _LT_AC_TAGVAR(link_all_deplibs, $1)=no + ;; *) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -3566,6 +3569,7 @@ _LT_EOF else _LT_AC_TAGVAR(archive_expsym_cmds, $1)=$_LT_AC_TAGVAR(archive_cmds, $1) fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=no else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi diff -ruNp libtool-CVS~/NEWS libtool-CVS/NEWS --- libtool-CVS~/NEWS 2004-03-24 14:13:19.000000000 +0000 +++ libtool-CVS/NEWS 2004-03-28 22:13:41.000000000 +0100 @@ -31,6 +31,9 @@ New in 1.5b: 2004-??-??; CVS version 1.5 * If you configure libtool with --disable-shared (or if libtool does not support shared libraries on your platform) trying to build a library using `-shared' is a fatal error. +* libtool no longer adds the contents of dependency_libs to the link line + to link a program on Linux as its dynamic link loader is able to + correctly traverse dependency trees. * libtoolize installs libtool.m4 (and ltdl.m4 if used) to AC_CONFIG_MACRO_DIR. * Mode inferrence removed, shorthand for choosing modes added. * Specifying -allow-undefined is now an error.
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Libtool mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/libtool