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
