[SCM] GNU Libtool branch, master, updated. release-2-2-2-18-gd9a4d8f

2008-04-21 Thread Peter O'Gorman
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project GNU Libtool.

The branch, master has been updated
   via  d9a4d8f71ae415bb716dc8267a506a102bacf0b2 (commit)
  from  39903a5836fc563e83fe6aa614d75a2a3ebe04fe (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
commit d9a4d8f71ae415bb716dc8267a506a102bacf0b2
Author: Peter O'Gorman [EMAIL PROTECTED]
Date:   Mon Apr 21 15:18:41 2008 -0500

basename does not take a list of strings.
* libltdl/config/ltmain.m4sh(func_extract_archives): Use sed
$basename.
* tests/darwin.at: New. Check that we can built fat program,
shared library and convenience library.
* Makefile.am: Add test.
Reported by LiKai Liu [EMAIL PROTECTED]

---

Summary of changes:
 ChangeLog  |8 
 Makefile.am|3 +-
 libltdl/config/ltmain.m4sh |2 +-
 tests/darwin.at|   96 
 4 files changed, 107 insertions(+), 2 deletions(-)
 create mode 100644 tests/darwin.at

diff --git a/ChangeLog b/ChangeLog
index 4cc2147..b4d0388 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2008-04-21  Peter O'Gorman  [EMAIL PROTECTED]
 
+   basename does not take a list of strings.
+   * libltdl/config/ltmain.m4sh(func_extract_archives): Use sed
+   $basename.
+   * tests/darwin.at: New. Check that we can built fat program,
+   shared library and convenience library.
+   * Makefile.am: Add test.
+   Reported by LiKai Liu [EMAIL PROTECTED]
+
Use AC_CHECK_TOOL for lipo too.
* libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Check.
* libltdl/config/ltmain.m4sh (func_extract_archives): Use.
diff --git a/Makefile.am b/Makefile.am
index 480b647..0085c7f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -465,7 +465,8 @@ TESTSUITE_AT= tests/testsuite.at \
  tests/deplibs-ident.at \
  tests/configure-iface.at \
  tests/stresstest.at \
- tests/cmdline_wrap.at
+ tests/cmdline_wrap.at \
+ tests/darwin.at
 
 EXTRA_DIST += $(srcdir)/$(TESTSUITE) $(TESTSUITE_AT) 
$(srcdir)/tests/package.m4
 
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 089f162..ff1e50d 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -,7 +,7 @@ func_extract_archives ()
  $RM 
unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}
done # $darwin_arches
 ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-   darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name 
\*.lo -print| xargs basename | sort -u | $NL2SP`
+   darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name 
\*.lo -print | $SED -e $basename | sort -u`
darwin_file=
darwin_files=
for darwin_file in $darwin_filelist; do
diff --git a/tests/darwin.at b/tests/darwin.at
new file mode 100644
index 000..adc0db6
--- /dev/null
+++ b/tests/darwin.at
@@ -0,0 +1,96 @@
+# darwin.at - tests specific to Mac OS X
+#
+#   Copyright (C) 2008 Free Software Foundation, Inc.
+#   Written by Peter O'Gorman, 2008
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from  http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+AT_BANNER([Mac OS X tests])
+AT_SETUP([darwin fat compile])
+noskip=:
+case $host_os in
+darwin*) ;;
+*) noskip=false ;;
+esac
+
+AT_DATA([foo.c],[[
+int x=0;
+]])
+
+$noskip  {
+$CC $CPPFLAGS $CFLAGS -arch ppc -arch i386 -c -o foo.o foo.c 21  /dev/null 
|| noskip=false
+rm -f foo.o
+}
+
+AT_CHECK([$noskip || (exit 77)])
+
+AT_DATA([baz.c],[[
+int y=0;
+]])
+
+AT_DATA([bar.c],[[
+extern int x;
+int bar(void);
+int bar() { return x;}
+]])
+
+AT_DATA([main.c],[[
+extern int x;
+extern int y;
+
+int main() 

Re: [libtool-2.2.2] testsuite on NFS mount on AIX

2008-04-21 Thread Michael Haubenwallner

On Mon, 2008-04-21 at 09:29 +0200, Michael Haubenwallner wrote:
 On Sat, 2008-04-19 at 18:40 +0200, Ralf Wildenhues wrote:
  Hello Michael,
  
  * Michael Haubenwallner wrote on Fri, Apr 18, 2008 at 04:59:43PM CEST:
   
   when doing the libtool testsuite in some NFS mounted directory on AIX,
   the output is full of lines looking like:
   rm: cannot remove directory 
   `/nfsmount/libtool-2.2.2/tests/testsuite.dir/25/broken/lib': File exists
   
   Although it does not cause any additional test to fail, it's still ugly.
  
  Yep.
  
   This is because AIX keeps shared libraries in use for some time even if
   there are no more programs using it.
  
  Yep, I knew that.
  
   But this only applies to shared libraries having read (execute?)
   permission for 'other'.
  
  Ha!  I wasn't aware of that.  Thank you!
  
  I've confirmed on AIX 5.3 that read permissions are what counts, but it
  shouldn't hurt removing the others as well.
  
   So adding an 'umask 0007' (or 0077) early in testsuite.at can help here.
  
  I'd like to avoid giving more permissions if the user set, say, umask
  077 before.  Thus let's just remove those for others.  I've applied the
  patch below and put you in THANKS.
 
 Thank you!
 
  +case $host_os in
  +aix*) umask o-rwx ;;
 
 As I was not aware of symbolics with umask yet, and being paranoid, I've
 tried that: Unfortunately, it depends on the shell if umask with
 symbolics works: It works with bash as well as AIX' /bin/ksh, while it
 does not work with AIX' /bin/sh, but without any failure notice - it
 just sets umask to 0:
 
 $ /bin/sh
 sh$ umask
 0007
 sh$ umask o-rwx; umask
 
 sh$ umask 007; umask
 0007
 sh$ umask junk; umask
 
 sh$ 

Ohw, sorry - this works for AIX' (5.3) /bin/sh, I've accidentally tested
this on the Solaris box.

 
 So we want to use the numeric umask here...

So there's no need to use numeric umasks on AIX, sorry!

/haubi/





Re: libtool performance status

2008-04-21 Thread Bob Friesenhahn

On Mon, 21 Apr 2008, Ralf Wildenhues wrote:


If they were lower in between, and since increased, there must have been
at least one regression along the way.  Can you use git bisect to
identify one?


Remember that you fixed an expr-related bug which was impacting 
FreeBSD and causing an error message to be displayed rather than code 
being executed.  Perhaps this fix adds a small cost?


Since only 54% of the time is attributed to user+system time the rest 
of the time must be spent doing things like moving the disk drive 
heads, waiting for I/O, servicing interrupts, or running other 
programs (none in this case).


Bob
==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/





FYI - Use AC_CHECK_TOOL for lipo too.

2008-04-21 Thread Peter O'Gorman
Hi,
I just pushed this.

Peter
-- 
Peter O'Gorman
http://pogma.com
From 39903a5836fc563e83fe6aa614d75a2a3ebe04fe Mon Sep 17 00:00:00 2001
From: Peter O'Gorman [EMAIL PROTECTED]
Date: Mon, 21 Apr 2008 10:21:27 -0500
Subject: [PATCH] Use AC_CHECK_TOOL for lipo too.

* libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Check.
* libltdl/config/ltmain.m4sh (func_extract_archives): Use.
---
 ChangeLog  |6 ++
 libltdl/config/ltmain.m4sh |6 +++---
 libltdl/m4/libtool.m4  |3 +++
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 8d2e5c3..4cc2147 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-04-21  Peter O'Gorman  [EMAIL PROTECTED]
+
+	Use AC_CHECK_TOOL for lipo too.
+	* libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Check.
+	* libltdl/config/ltmain.m4sh (func_extract_archives): Use.
+
 2008-04-20  Gary V. Vaughan  [EMAIL PROTECTED]
 
 	Fix misleading lt_dlopenadvise documentation.
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 378acae..089f162 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -2208,14 +2208,14 @@ func_extract_archives ()
 	  darwin_archive=$my_xabs
 	  darwin_curdir=`pwd`
 	  darwin_base_archive=`basename $darwin_archive`
-	  darwin_arches=`lipo -info $darwin_archive 2/dev/null | $GREP Architectures 2/dev/null || true`
+	  darwin_arches=`$LIPO -info $darwin_archive 2/dev/null | $GREP Architectures 2/dev/null || true`
 	  if test -n $darwin_arches; then
 	darwin_arches=`$ECHO $darwin_arches | $SED -e 's/.*are://'`
 	darwin_arch=
 	func_verbose $darwin_base_archive has multiple architectures $darwin_arches
 	for darwin_arch in  $darwin_arches ; do
 	  func_mkdir_p unfat-$$/${darwin_base_archive}-${darwin_arch}
-	  lipo -thin $darwin_arch -output unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive} ${darwin_archive}
+	  $LIPO -thin $darwin_arch -output unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive} ${darwin_archive}
 	  cd unfat-$$/${darwin_base_archive}-${darwin_arch}
 	  func_extract_an_archive `pwd` ${darwin_base_archive}
 	  cd $darwin_curdir
@@ -2227,7 +2227,7 @@ func_extract_archives ()
 	darwin_files=
 	for darwin_file in $darwin_filelist; do
 	  darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
-	  lipo -create -output $darwin_file $darwin_files
+	  $LIPO -create -output $darwin_file $darwin_files
 	done # $darwin_filelist
 	$RM -rf unfat-$$
 	cd $darwin_orig_dir
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index cdab378..9906e11 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -893,10 +893,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 rhapsody* | darwin*)
 AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
 AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+AC_CHECK_TOOL([LIPO], [lipo], [:])
 _LT_DECL([], [DSYMUTIL], [1],
   [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
 _LT_DECL([], [NMEDIT], [1],
   [Tool to change global to local symbols on Mac OS X])
+_LT_DECL([], [LIPO], [1],
+  [Tool to manipulate fat objects and archives on Mac OS X])
 
 AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
   [lt_cv_apple_cc_single_mod=no
-- 
1.5.3.7



Re: [PATCH 363] Allow better compile time type checking for lt_dladvise

2008-04-21 Thread Bob Friesenhahn

On Mon, 21 Apr 2008, Ralf Wildenhues wrote:


Does this work with C and C++ compilers?  Does it change the ABI or API?
If yes, no, then I like it.  Otherwise, as nice as it is, it would be a
bit inappropriate for a minor release number, no?


I use this approach in GraphicsMagick C code without any problems.

If it changes the ABI then the existing code must be broken.  It could 
only be seen as an API change if the using application did not use 
libtool's specified API types (as it should).


We would (of course) test with many compilers prior to release.

Bob
==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/





Re: FYI - Use AC_CHECK_TOOL for lipo too.

2008-04-21 Thread Bob Friesenhahn

On Mon, 21 Apr 2008, Peter O'Gorman wrote:


Hi,
I just pushed this.


Since the full patch appears on the [EMAIL PROTECTED] list, 
perhaps it is not necessary to manually duplicate already committed 
patches on this list?


What are the official rules regarding when the patch must be posted 
to this list as well?


Bob
==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/





Re: FYI - Use AC_CHECK_TOOL for lipo too.

2008-04-21 Thread Ralf Wildenhues
Hi Bob,

* Bob Friesenhahn wrote on Mon, Apr 21, 2008 at 07:25:10PM CEST:

 Since the full patch appears on the [EMAIL PROTECTED] list, perhaps 
 it is not necessary to manually duplicate already committed patches on 
 this list?

It's an idea.  However, those commit messages
- don't allow to add comments to the patches
  (irrelevant for trivial ones that don't need commenting upon),
- don't set Reply-To: to libtool-patches.  Discussion on libtool-commit
  seems awkward, so after-commit review is a bit more work.  Not a big
  issue.

 What are the official rules regarding when the patch must be posted to 
 this list as well?

I don't know how official rules are, but I think we've copied all to
libtool-patches so far.

Cheers,
Ralf




Re: darwin fat binary support bugfix

2008-04-21 Thread Peter O'Gorman
Peter O'Gorman wrote:

 I will fix, and even apply the (non-failing) test tomorrow.

Making the test fail is better.

Ok?

Peter
-- 
Peter O'Gorman
http://pogma.com
From d9a4d8f71ae415bb716dc8267a506a102bacf0b2 Mon Sep 17 00:00:00 2001
From: Peter O'Gorman [EMAIL PROTECTED]
Date: Mon, 21 Apr 2008 15:18:41 -0500
Subject: [PATCH] basename does not take a list of strings.
 * libltdl/config/ltmain.m4sh(func_extract_archives): Use sed
 $basename.
 * tests/darwin.at: New. Check that we can built fat program,
 shared library and convenience library.
 * Makefile.am: Add test.
 Reported by LiKai Liu [EMAIL PROTECTED]

---
 ChangeLog  |8 
 Makefile.am|3 +-
 libltdl/config/ltmain.m4sh |2 +-
 tests/darwin.at|   96 
 4 files changed, 107 insertions(+), 2 deletions(-)
 create mode 100644 tests/darwin.at

diff --git a/ChangeLog b/ChangeLog
index 4cc2147..b4d0388 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2008-04-21  Peter O'Gorman  [EMAIL PROTECTED]
 
+	basename does not take a list of strings.
+	* libltdl/config/ltmain.m4sh(func_extract_archives): Use sed
+	$basename.
+	* tests/darwin.at: New. Check that we can built fat program,
+	shared library and convenience library.
+	* Makefile.am: Add test.
+	Reported by LiKai Liu [EMAIL PROTECTED]
+
 	Use AC_CHECK_TOOL for lipo too.
 	* libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Check.
 	* libltdl/config/ltmain.m4sh (func_extract_archives): Use.
diff --git a/Makefile.am b/Makefile.am
index 480b647..0085c7f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -465,7 +465,8 @@ TESTSUITE_AT	= tests/testsuite.at \
 		  tests/deplibs-ident.at \
 		  tests/configure-iface.at \
 		  tests/stresstest.at \
-		  tests/cmdline_wrap.at
+		  tests/cmdline_wrap.at \
+		  tests/darwin.at
 
 EXTRA_DIST += $(srcdir)/$(TESTSUITE) $(TESTSUITE_AT) $(srcdir)/tests/package.m4
 
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 089f162..ff1e50d 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -,7 +,7 @@ func_extract_archives ()
 	  $RM unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}
 	done # $darwin_arches
 ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-	darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
+	darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e $basename | sort -u`
 	darwin_file=
 	darwin_files=
 	for darwin_file in $darwin_filelist; do
diff --git a/tests/darwin.at b/tests/darwin.at
new file mode 100644
index 000..adc0db6
--- /dev/null
+++ b/tests/darwin.at
@@ -0,0 +1,96 @@
+# darwin.at - tests specific to Mac OS X
+#
+#   Copyright (C) 2008 Free Software Foundation, Inc.
+#   Written by Peter O'Gorman, 2008
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from  http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+AT_BANNER([Mac OS X tests])
+AT_SETUP([darwin fat compile])
+noskip=:
+case $host_os in
+darwin*) ;;
+*) noskip=false ;;
+esac
+
+AT_DATA([foo.c],[[
+int x=0;
+]])
+
+$noskip  {
+$CC $CPPFLAGS $CFLAGS -arch ppc -arch i386 -c -o foo.o foo.c 21  /dev/null || noskip=false
+rm -f foo.o
+}
+
+AT_CHECK([$noskip || (exit 77)])
+
+AT_DATA([baz.c],[[
+int y=0;
+]])
+
+AT_DATA([bar.c],[[
+extern int x;
+int bar(void);
+int bar() { return x;}
+]])
+
+AT_DATA([main.c],[[
+extern int x;
+extern int y;
+
+int main() {
+return x+y;
+}
+]])
+
+mkdir bin
+AT_DATA([bin/basename],[[
+#! /bin/sh
+
+usage=usage: $0 argument
+if test $# != 1; then
+  echo $usage 2
+  exit 1
+fi
+
+echo $1 | sed s,^.*/,,
+]])
+
+chmod +x bin/basename
+save_PATH=$PATH
+PATH=`pwd`/bin:$PATH
+export PATH
+
+AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o foo.lo $CPPFLAGS $CFLAGS -arch ppc -arch i386 foo.c],[0],[ignore],[ignore])
+
+AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o baz.lo $CPPFLAGS $CFLAGS -arch ppc -arch i386 baz.c],[0],[ignore],[ignore])
+
+AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o libfoo.la $CPPFLAGS $CFLAGS $LDFLAGS -arch ppc 

Re: darwin fat binary support bugfix

2008-04-21 Thread Gary V. Vaughan

Hi Peter,

On 21 Apr 2008, at 16:20, Peter O'Gorman wrote:

Peter O'Gorman wrote:


I will fix, and even apply the (non-failing) test tomorrow.


Making the test fail is better.

Ok?


Looks good to me.  Please apply.


Peter
--
Peter O'Gorman
http://pogma.com
From d9a4d8f71ae415bb716dc8267a506a102bacf0b2 Mon Sep 17 00:00:00 2001
From: Peter O'Gorman [EMAIL PROTECTED]
Date: Mon, 21 Apr 2008 15:18:41 -0500
Subject: [PATCH] basename does not take a list of strings.
* libltdl/config/ltmain.m4sh(func_extract_archives): Use sed
$basename.
* tests/darwin.at: New. Check that we can built fat program,
shared library and convenience library.
* Makefile.am: Add test.
Reported by LiKai Liu [EMAIL PROTECTED]


Cheers,
Gary
--
  ())_.  Email me: [EMAIL PROTECTED]
  ( '/   Read my blog: http://blog.azazil.net
  / )= ...and my book: http://sources.redhat.com/autobook
`(_~)_






PGP.sig
Description: This is a digitally signed message part


Re: libtool performance status

2008-04-21 Thread Ralf Wildenhues
* Bob Friesenhahn wrote on Mon, Apr 21, 2008 at 05:14:00PM CEST:
 On Mon, 21 Apr 2008, Ralf Wildenhues wrote:

 If they were lower in between, and since increased, there must have been
 at least one regression along the way.  Can you use git bisect to
 identify one?

 Remember that you fixed an expr-related bug which was impacting FreeBSD 
 and causing an error message to be displayed rather than code being 
 executed.  Perhaps this fix adds a small cost?

Unlikely.  It removes a forkexec and adds a pattern match and ${foo#bar}
substitution.  Both of the latter should be pretty quick compared with
the former.

To put some sort of proof to my claims, here's what I get building GM
unoptimized (CFLAGS=-g) on GNU/Linux with Libtool 2.2.2. and current
master (all timings best of three):

2.2.2:
110.31user 30.73system 2:21.01elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+5714405minor)pagefaults 0swaps

master:
107.42user 28.04system 2:16.51elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+5069147minor)pagefaults 0swaps

Looks like a small but definite improvement to me.  :-)

Also note that there is only 1.05s of unaccounted-for elapsed time, also
the lower page fault count is a pretty good indicator that things have
not gotten worse.

To break things down further, I recorded (with make -n) most libtool
calls, split them into --mode=compile and --mode=link, put them in a
shell script, and added '-n --silent' so we only measure libtool script
overhead.

compile mode 2.2.2:
5.72user 2.30system 0:07.93elapsed 101%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+537316minor)pagefaults 0swaps

compile mode master:
4.95user 1.21system 0:06.14elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+292254minor)pagefaults 0swaps


link mode 2.2.2:
12.11user 7.92system 0:19.74elapsed 101%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+1662149minor)pagefaults 0swaps

link mode master:
11.91user 7.10system 0:18.94elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+1450595minor)pagefaults 0swaps

Again not much, but consistently better (and much better than 1.5.x).

 Since only 54% of the time is attributed to user+system time the rest of 
 the time must be spent doing things like moving the disk drive heads, 
 waiting for I/O, servicing interrupts, or running other programs (none in 
 this case).

Hmm.  That may or may not be libtool's fault, though; linking in itself
isn't so cheap, I/O-wise.

Can you please check whether
  libtool --tag=CXX --config

is identical for each of the builds you timed?

Thanks
Ralf




Re: silencing libtool and automake

2008-04-21 Thread Ralf Wildenhues
Hello Joachim,

* Joachim Worringen wrote on Mon, Apr 21, 2008 at 11:16:05AM CEST:

 We use libtool/automake/configure for our builds, but autotools-builds  
 are pretty verbose, which is not always desired. I checked that by  
 adding the @ silencer in the Makefiles and calling libtool with  
 --silent we get what we want.

make -s LIBTOOLFLAGS=--silent

 How can I create such Makefiles via autoreconf  configure?

Put this in configure.ac:
AC_SUBST([AM_LIBTOOLFLAGS], [--silent])

Then you need only 'make -s'.  Choosing additional '@' is currently not
supported by Automake, though there exists at least one third-party
patch to achieve similar functionality.

Cheers,
Ralf


___
http://lists.gnu.org/mailman/listinfo/libtool


silencing libtool and automake

2008-04-21 Thread Joachim Worringen


We use libtool/automake/configure for our builds, but autotools-builds 
are pretty verbose, which is not always desired. I checked that by 
adding the @ silencer in the Makefiles and calling libtool with 
--silent we get what we want.


How can I create such Makefiles via autoreconf  configure?
- autoreconf honors LIBTOOLIZE env setting, but not LIBTOOL itself
- slightly off-topic: how can I tell automake to add the @-silencer? 
Preferably, this would be a controllable setting by using an env-variable.


 thanks, Joachim

--
Joachim Worringen, Software Architect, Dolphin Interconnect Solutions
phone ++49/(0)228/324 08 17 - http://www.dolphinics.com


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: move to git

2008-04-21 Thread Dan Nicholson
On Sat, Apr 19, 2008 at 2:53 AM, Jim Meyering [EMAIL PROTECTED] wrote:

 Ralf Wildenhues [EMAIL PROTECTED] wrote:

   I don't quite understand what happened.  With the repo converted from
   CVS, the tag SHAs were all different, but they already pointed to the
   same tree object.  After the filter-branch rewrite, they now all have
   the same SHA.  I suspect the bug happens earlier.  Jim, can you take
   a look?

  Hi Ralf,
  I'm beginning to think that our time might be better spent
  investigating an alternate conversion method: cvs2git.
  Unfortunately, I might not have time for that right away.

Just a thought, but nearly all of the freedesktop.org projects
(including all of X) were converted using Keith Packard's parsecvs
tool. I haven't heard of anyone complaining of incorrect history.

http://gitweb.freedesktop.org/?p=users/keithp/parsecvs.git;a=summary

--
Dan


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: move to git

2008-04-21 Thread Jim Meyering
Dan Nicholson [EMAIL PROTECTED] wrote:
 On Sat, Apr 19, 2008 at 2:53 AM, Jim Meyering [EMAIL PROTECTED] wrote:

 Ralf Wildenhues [EMAIL PROTECTED] wrote:

   I don't quite understand what happened.  With the repo converted from
   CVS, the tag SHAs were all different, but they already pointed to the
   same tree object.  After the filter-branch rewrite, they now all have
   the same SHA.  I suspect the bug happens earlier.  Jim, can you take
   a look?

  Hi Ralf,
  I'm beginning to think that our time might be better spent
  investigating an alternate conversion method: cvs2git.
  Unfortunately, I might not have time for that right away.

 Just a thought, but nearly all of the freedesktop.org projects
 (including all of X) were converted using Keith Packard's parsecvs
 tool. I haven't heard of anyone complaining of incorrect history.

 http://gitweb.freedesktop.org/?p=users/keithp/parsecvs.git;a=summary

That's exactly what I used.
Note however, that parsecvs is not robust.
With a slightly unusual ,v file, it's easy to make it segfault.
I've encountered at least 3 repositories that it is unable to convert.
I think cvs2git will be better.

BTW, I suspect that parsecvs is unmaintained, since my recent patch
to make it work with newer versions of git has evoked no reply,
and the patch has not appeared in the repository.


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: silencing libtool and automake

2008-04-21 Thread Bob Friesenhahn

On Mon, 21 Apr 2008, Joachim Worringen wrote:



We use libtool/automake/configure for our builds, but autotools-builds are 
pretty verbose, which is not always desired. I checked that by adding the @ 
silencer in the Makefiles and calling libtool with --silent we get what we 
want.


Using current FSF released software and adding --silent to the libtool 
options, I obtain complete silence (other than compiler 
warnings/errors) via 'make -s'.


Based on the above, it seems likely that you are not using the current 
releases of the software.


Bob
==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/



___
http://lists.gnu.org/mailman/listinfo/libtool


Problems with libtool 2.2.2 and /bin/sh pointing to dash

2008-04-21 Thread Richard Purdie
Hi,

I've had reports of Poky breaking with libtool 2.2.2 and have isolated
this to people using dash as their /bin/sh provider (Poky runs the
configure script with /bin/sh). When used in this combination, the
global_symbol_pipe expression becomes corrupted in the generated libtool
file amongst other things and I've included a diff of the corruption
below. I noticed this with gtk+ 2.12.7. 

gtk+ also has the issues that it tries to run libtool before its been
generated and I've had to patch this to run a previously generated
version of libtool poky has around to solve cases like this. I'm not
sure if there is a neater way to address that problem?

Regards,

Richard

--- libtool-bash2008-04-21 17:57:40.0 +0100
+++ libtool-dash2008-04-21 23:36:38.0 +0100
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! /bin/bash
 
 # arm-poky-linux-gnueabi-libtool - Provide generalized library-building 
support services.
 # Generated automatically by config.status (gtk+) 2.12.7
@@ -107,10 +107,10 @@
 lt_unset=unset
 
 # turn spaces into newlines.
-SP2NL=tr \\040 \\012
+SP2NL=tr \040 \012
 
 # turn newlines into spaces.
-NL2SP=tr \\015\\012 \\040\\040
+NL2SP=tr \015\012 \040\040
 
 # How to create reloadable object files.
 reload_flag= -r
@@ -141,22 +141,22 @@
 LTCFLAGS=-fexpensive-optimizations -fomit-frame-pointer -frename-registers 
-O2 -Wall
 
 # Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=sed -n -e 's/^.*[   ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[  
 ][  ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'
+global_symbol_pipe=sed -n -e 's/^.*[   ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[  
 ][  ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/  /p'
 
 # Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 
's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'
+global_symbol_to_cdecl=sed -n -e 's/^T .* \\(.*\\)\$/extern int ();/p' -e 
's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char ;/p'
 
 # Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=sed -n -e 's/^: \\([^ ]*\\) \$/  
{\1\\\, (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  
{\\\2\, (void *) 2},/p'
+global_symbol_to_c_name_address=sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\\\\, 
(void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\\, (void 
*) \\},/p'
 
 # Transform the output of nm in a C name address pair when lib prefix is 
needed.
-global_symbol_to_c_name_address_lib_prefix=sed -n -e 's/^: \\([^ ]*\\) \$/  
{\1\\\, (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ 
]*\\)\$/  {\\\2\, (void *) 2},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ 
]*\\)\$/  {\lib\\2\, (void *) 2},/p'
+global_symbol_to_c_name_address_lib_prefix=sed -n -e 's/^: \\([^ ]*\\) \$/  
{\\\\\\, (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/  
{\\, (void *) \\},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  
{\lib\, (void *) \\},/p'
 
 # The name of the directory that contains temporary libtool files.
 objdir=.libs
 
 # Shell to use when invoking shell scripts.
-SHELL=/bin/sh
+SHELL=/bin/bash
 
 # An echo program that does not interpret backslashes.
 ECHO=echo
@@ -301,7 +301,7 @@
 # Commands used to build a shared archive.
 archive_cmds=\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname 
\$wl\$soname -o \$lib
 archive_expsym_cmds=echo \\\{ global:\\\  \$output_objdir/\$libname.ver~
-   cat \$export_symbols | sed -e \\\s/(.*)/1;/\\\  
\$output_objdir/\$libname.ver~
+   cat \$export_symbols | sed -e \\\s/(.*)/;/\\\  
\$output_objdir/\$libname.ver~
echo \\\local: *; };\\\  \$output_objdir/\$libname.ver~
\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname 
\$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib
 



___
http://lists.gnu.org/mailman/listinfo/libtool


Re: Problems with libtool 2.2.2 and /bin/sh pointing to dash

2008-04-21 Thread Gary V. Vaughan

Hi Richard,

On 21 Apr 2008, at 19:07, Richard Purdie wrote:

gtk+ also has the issues that it tries to run libtool before its been
generated and I've had to patch this to run a previously generated
version of libtool poky has around to solve cases like this. I'm not
sure if there is a neater way to address that problem?



   Starting with libtool 2.0, the multipass generation of the libtool
script has been consolidated into a single `config.status' pass, which
happens after all the code in `configure.ac' has completed.  The
implication of this is that the libtool script does not exist during
execution of code from `configure.ac', and so obviously it cannot be
called for `--config' details anymore.  If you are upgrading projects
that used this idiom to libtool 2.0 or newer, you should replace those
calls with direct references to the equivalent Autoconf shell variables
that are set by the configure time tests before being passed to
`config.status' for inclusion in the generated libtool script.

 -- Macro: LT_OUTPUT
 By default, the configured `libtool' script is generated by the
 call to `AC_OUTPUT' command, and there is rarely any need to use
 `libtool' from `configure'.  However, sometimes it is necessary to
 run configure time compile and link tests using `libtool'.  You
 can add `LT_OUTPUT' to your `configure.ac' any time after
 `LT_INIT' and any `LT_LANG' calls; that done, `libtool' will be
 created by a specially generated `config.lt' file, and available
 for use in later tests.

 Also, when `LT_OUTPUT' is used, for backwards compatibility with
 Automake regeneration rules, `config.status' will call `config.lt'
 to regenerate `libtool', rather than generating the file itself.

Cheers,
Gary
--
  ())_.  Email me: [EMAIL PROTECTED]
  ( '/   Read my blog: http://blog.azazil.net
  / )= ...and my book: http://sources.redhat.com/autobook
`(_~)_






PGP.sig
Description: This is a digitally signed message part
___
http://lists.gnu.org/mailman/listinfo/libtool


Re: Problems with libtool 2.2.2 and /bin/sh pointing to dash

2008-04-21 Thread Ralf Wildenhues
Hello Richard,

* Richard Purdie wrote on Tue, Apr 22, 2008 at 01:07:48AM CEST:
 
 I've had reports of Poky breaking with libtool 2.2.2 and have isolated
 this to people using dash as their /bin/sh provider (Poky runs the
 configure script with /bin/sh). When used in this combination, the
 global_symbol_pipe expression becomes corrupted in the generated libtool
 file amongst other things and I've included a diff of the corruption
 below. I noticed this with gtk+ 2.12.7. 

That typically means that the configure script is run with a different
shell than the libtool script.  Beware: the configure script might
restart itself under a different shell, exporting CONFIG_SHELL.

I can successfully configure and use libtool with
  CONFIG_SHELL=/bin/dash /bin/dash ./configure -C
  make

but for example if you configure with /bin/sh pointing to bash, then
later switch the /bin/sh symlink to dash, you're giving libtool a hard
time.  If that wasn't the case, then please show how to reproduce this
situation.  For that, your $PATH, the /bin/sh symlink, your $SHELL, and
eventual $CONFIG_SHELL values are important to see, as well as how
exactly you configure and build the package.

I haven't checked whether gtk+ 2.12.7 munges with the shell setting in
its configure script.

 gtk+ also has the issues that it tries to run libtool before its been
 generated and I've had to patch this to run a previously generated
 version of libtool poky has around to solve cases like this. I'm not
 sure if there is a neater way to address that problem?

Gary has already addressed this part.

Cheers,
Ralf


___
http://lists.gnu.org/mailman/listinfo/libtool