summaryrefslogtreecommitdiff
path: root/devel/libtool
diff options
context:
space:
mode:
authorskrll <skrll@pkgsrc.org>2002-03-01 15:40:43 +0000
committerskrll <skrll@pkgsrc.org>2002-03-01 15:40:43 +0000
commitbc353bae49e67845f9bac56028e293b2ff1d46a6 (patch)
tree17c5a3deb2e2064eea569d55ce0a3d03f1eb81fe /devel/libtool
parent1e2d9d484353b386d98f4363f108d98c96157777 (diff)
downloadpkgsrc-bc353bae49e67845f9bac56028e293b2ff1d46a6.tar.gz
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.
Diffstat (limited to 'devel/libtool')
-rw-r--r--devel/libtool/Makefile.common4
-rw-r--r--devel/libtool/distinfo5
-rw-r--r--devel/libtool/patches/patch-ab104
-rw-r--r--devel/libtool/patches/patch-af39
4 files changed, 141 insertions, 11 deletions
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