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.

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Libtool mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/libtool

Reply via email to