From bc353bae49e67845f9bac56028e293b2ff1d46a6 Mon Sep 17 00:00:00 2001 From: skrll Date: Fri, 1 Mar 2002 15:40:43 +0000 Subject: Pull in a change from libtool-current that changes the dependency recording strategy and a flag (--preserve-dup-deps) to provide the old stratey if needed. The new strategy reduces the length of the dependency_libs information stored in .la files and therefore the length of link lines. This has a positive effect on performance. Pull across the documentation updates for the change. Bump the PKGREVISION. This was tested by building and running both KDE and Gnome. --- devel/libtool/Makefile.common | 4 +- devel/libtool/distinfo | 5 +- devel/libtool/patches/patch-ab | 104 ++++++++++++++++++++++++++++++++++++++--- devel/libtool/patches/patch-af | 39 ++++++++++++++++ 4 files changed, 141 insertions(+), 11 deletions(-) create mode 100644 devel/libtool/patches/patch-af (limited to 'devel/libtool') diff --git a/devel/libtool/Makefile.common b/devel/libtool/Makefile.common index 2716490d0f7..2a0e1071b53 100644 --- a/devel/libtool/Makefile.common +++ b/devel/libtool/Makefile.common @@ -1,9 +1,9 @@ -# $NetBSD: Makefile.common,v 1.17 2002/02/11 14:57:58 skrll Exp $ +# $NetBSD: Makefile.common,v 1.18 2002/03/01 15:40:43 skrll Exp $ # DISTNAME= libtool-ml-20010614 PKGPFX= ${DISTNAME:C/ml-/1.4./} -PKGREV= nb5 +PKGREV= nb6 WRKSRC= ${WRKDIR}/libtool-ml CATEGORIES= devel pkgtools MASTER_SITES= ${MASTER_SITE_LOCAL} diff --git a/devel/libtool/distinfo b/devel/libtool/distinfo index 2992efa2ee0..5162d7606d2 100644 --- a/devel/libtool/distinfo +++ b/devel/libtool/distinfo @@ -1,12 +1,13 @@ -$NetBSD: distinfo,v 1.12 2002/01/04 15:20:28 skrll Exp $ +$NetBSD: distinfo,v 1.13 2002/03/01 15:40:43 skrll Exp $ SHA1 (libtool-ml-20010614.tar.gz) = ff746666737e420592c3017d65bf4c47f1430dac Size (libtool-ml-20010614.tar.gz) = 784246 bytes SHA1 (patch-ac-new) = 61196acaa12edee0b1209b2ba7c6414453bfa438 SHA1 (patch-aa) = c085c1dd5a3f3f56bfa279076724fc13311d83bb -SHA1 (patch-ab) = 61419b5d6f69c64e4c21e628e1230ee8d17a63dd +SHA1 (patch-ab) = 42f3b5de63994cc69a230cfcabdb6df47cd00a0e SHA1 (patch-ac) = 61196acaa12edee0b1209b2ba7c6414453bfa438 SHA1 (patch-ad) = 6aab76688d0f55648e35adc45a3492ba9c87acfb SHA1 (patch-ae) = 9ee61238e4bd84687f0788be600dad9e5cf676fb +SHA1 (patch-af) = 2a0630e92b355ee86800c4f3a7993fbb126a0999 SHA1 (patch-ag) = 93c0ed94970c69f1a4af9ccec31463f2e3adc670 SHA1 (patch-ao) = 4e115e9d6ddde556205dc786cde471bfee5a5e9e diff --git a/devel/libtool/patches/patch-ab b/devel/libtool/patches/patch-ab index 3407303347e..1008ad82658 100644 --- a/devel/libtool/patches/patch-ab +++ b/devel/libtool/patches/patch-ab @@ -1,8 +1,17 @@ -$NetBSD: patch-ab,v 1.23 2001/06/20 08:10:49 skrll Exp $ +$NetBSD: patch-ab,v 1.24 2002/03/01 15:40:44 skrll Exp $ ---- ltmain.sh.orig Thu Jun 14 05:06:50 2001 +--- ltmain.sh.orig Mon Feb 18 17:38:48 2002 +++ ltmain.sh -@@ -494,11 +494,18 @@ +@@ -211,6 +211,8 @@ + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + ++ --preserve-dup-deps) duplicate_deps="yes" ;; ++ + --quiet | --silent) + show=: + ;; +@@ -494,11 +496,18 @@ # command doesn't match the default compiler. if test -n "$available_tags" && test -z "$tagname"; then case $base_compile in @@ -24,7 +33,7 @@ $NetBSD: patch-ab,v 1.23 2001/06/20 08:10:49 skrll Exp $ for z in $available_tags; do if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then # Evaluate the configuration. -@@ -528,8 +535,6 @@ +@@ -528,8 +537,6 @@ # else # echo "$modename: using $tagname tagged configuration" fi @@ -33,7 +42,7 @@ $NetBSD: patch-ab,v 1.23 2001/06/20 08:10:49 skrll Exp $ fi objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` -@@ -1528,11 +1533,18 @@ +@@ -1528,11 +1535,18 @@ # command doesn't match the default compiler. if test -n "$available_tags" && test -z "$tagname"; then case $base_compile in @@ -55,7 +64,7 @@ $NetBSD: patch-ab,v 1.23 2001/06/20 08:10:49 skrll Exp $ for z in $available_tags; do if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then # Evaluate the configuration. -@@ -1562,8 +1574,6 @@ +@@ -1562,8 +1576,6 @@ # else # echo "$modename: using $tagname tagged configuration" fi @@ -64,7 +73,88 @@ $NetBSD: patch-ab,v 1.23 2001/06/20 08:10:49 skrll Exp $ fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then -@@ -5053,7 +5063,7 @@ +@@ -1619,9 +1631,11 @@ + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do +- case "$libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; +- esac ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi + libs="$libs $deplib" + done + +@@ -1632,12 +1646,14 @@ + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= +- for pre_post_dep in $predeps $postdeps; do +- case "$pre_post_deps " in +- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; +- esac +- pre_post_deps="$pre_post_deps $pre_post_dep" +- done ++ if test "X$duplicate_deps" = "Xyes" ; then ++ for pre_post_dep in $predeps $postdeps; do ++ case "$pre_post_deps " in ++ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; ++ esac ++ pre_post_deps="$pre_post_deps $pre_post_dep" ++ done ++ fi + pre_post_deps= + fi + +@@ -1861,9 +1877,11 @@ + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" +- case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; +- esac ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi + tmp_libs="$tmp_libs $deplib" + done + elif test $linkmode != prog && test $linkmode != lib; then +@@ -1986,9 +2004,11 @@ + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi +- case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; +- esac ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue +@@ -2287,9 +2307,11 @@ + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" +- case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; +- esac ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi + tmp_libs="$tmp_libs $deplib" + done + +@@ -5053,7 +5075,7 @@ fi # Now prepare to actually exec the command. diff --git a/devel/libtool/patches/patch-af b/devel/libtool/patches/patch-af new file mode 100644 index 00000000000..793a35f724f --- /dev/null +++ b/devel/libtool/patches/patch-af @@ -0,0 +1,39 @@ +$NetBSD: patch-af,v 1.4 2002/03/01 15:40:45 skrll Exp $ + +--- doc/libtool.texi.orig Fri Apr 6 05:05:10 2001 ++++ doc/libtool.texi +@@ -1068,6 +1068,15 @@ + Display basic configuration options. This provides a way for packages + to determine whether shared or static libraries will be built. + ++@item --preserve-dup-deps ++Do not remove duplicate dependencies in libraries. When building packages ++with static libraries, the libraries may depend circularly on each other ++(shared libs can too, but for those it doesn't matter), so there are ++situations, where -la -lb -la is required, and the second -la may not be ++stripped or the link will fail. In cases where these duplications are ++required, this option will preserve them, only stripping the libraries ++that libtool knows it can safely. ++ + @item --finish + Same as @samp{--mode=finish}. + +@@ -4449,15 +4458,9 @@ + other's symbols, it might be necessary to list one of those archives + both before and after the other one. Libtool does not currently cope + with this situation well, since dupicate libraries are removed from +-thr link line. +- +-If you find yourself developing on a host that requires you to list +-libraries multiple times in order for it to generate correctly linked +-objects, you can defeat libtool's removal algorithm like this: +- +-@example +-$ libtool ... -lfoo -lbar -Wl,-lfoo +-@end example ++the link line by default. Libtool provides the command line option ++@samp{--preserve-dup-deps} to preserve all duplicate dependencies ++in cases where it is necessary. + + @node Archivers + @subsection Archivers -- cgit v1.2.3