libtool optimization

2008-10-21 Thread Michel Briand
Hello,

I've noted that libtool is very very slow.

By default it produces shell snippets with "/bin/bash".

I tried this in configure.ac: is this the good way ?

export SHELL=/bin/sh
# Include all that's required to build a library
AC_PROG_LIBTOOL

Cheers,
Michel


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


Re: libtool optimization

2008-10-21 Thread Bob Friesenhahn

On Tue, 21 Oct 2008, Michel Briand wrote:


I've noted that libtool is very very slow.


Are you using libtool 2.2.6 or are you using an antique version? 
Libtool versions prior to 2.2 were indeed very slow.



By default it produces shell snippets with "/bin/bash".


Current libtool still uses the shell that Autoconf chooses for it. 
However, if you have a faster shell which actually works (e.g. dash) 
you can specify it via the CONFIG_SHELL environment variable prior to 
running the configure script.



I tried this in configure.ac: is this the good way ?

export SHELL=/bin/sh


That would be a bad way since perhaps '/bin/sh' is not capable of 
running the configure script at all.


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



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


Re: libtool optimization

2008-10-21 Thread Ralf Wildenhues
Hi Michel, Bob,

* Bob Friesenhahn wrote on Tue, Oct 21, 2008 at 05:26:58PM CEST:
>
> Current libtool still uses the shell that Autoconf chooses for it.  
> However, if you have a faster shell which actually works (e.g. dash) you 
> can specify it via the CONFIG_SHELL environment variable prior to  
> running the configure script.

Actually, you have to specify it twice, unfortunately:
  CONFIG_SHELL=/bin/bash /bin/bash ./configure [OPTIONS...]

As to which shell is best, it's not so clear as it might look at first.
dash and ksh are faster than bash for some packages, but when it comes
to large packages with many objects, the improved appending (var+=val)
implemented in bash >= 3.2 really starts to make a difference, and other
shells will be slower.

Using vendor /bin/sh on, say, some AIX releases, is asking for trouble.
That thing is seriously inefficient, in that for example the Autoconf
testsuite will take days with /bin/sh, but only a couple of hours with
a sane shell.

Cheers,
Ralf


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


Re: libtool optimization

2008-10-21 Thread Michel Briand

Ralf Wildenhues <[EMAIL PROTECTED]> - Tue, 21 Oct 2008 21:04:29
+0200

>Hi Michel, Bob,
>
>* Bob Friesenhahn wrote on Tue, Oct 21, 2008 at 05:26:58PM CEST:
>>
>> Current libtool still uses the shell that Autoconf chooses for it.  
>> However, if you have a faster shell which actually works (e.g. dash) you 
>> can specify it via the CONFIG_SHELL environment variable prior to  
>> running the configure script.
>
>Actually, you have to specify it twice, unfortunately:
>  CONFIG_SHELL=/bin/bash /bin/bash ./configure [OPTIONS...]
>
>As to which shell is best, it's not so clear as it might look at first.
>dash and ksh are faster than bash for some packages, but when it comes
>to large packages with many objects, the improved appending (var+=val)
>implemented in bash >= 3.2 really starts to make a difference, and other
>shells will be slower.
>
>Using vendor /bin/sh on, say, some AIX releases, is asking for trouble.
>That thing is seriously inefficient, in that for example the Autoconf
>testsuite will take days with /bin/sh, but only a couple of hours with
>a sane shell.
>
>Cheers,
>Ralf

Honestly I wanted to do two optimizations.

Firstly, I've tested /bin/dash and seen that it's much faster
than /bin/bash on my normal sized project.
->> is it possible to choose the shell in autogen ? That way users do
not have to bother to call configure like this ?

Secondly, I wanted to optimize the way gcc is called ? Why does libtool
need to create a shell snippet for all source files ? A Makefile that
simply calls gcc for each source file is much much faster ;

Michel

-- 

 .''`.
: :' :  We are debian.org. Lower your prices, surrender your code.
`. `'   We will add your hardware and software distinctiveness to
  `-our own. Resistance is futile.

 


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


Re: libtool optimization

2008-10-21 Thread Bob Friesenhahn

On Wed, 22 Oct 2008, Michel Briand wrote:


Honestly I wanted to do two optimizations.

Firstly, I've tested /bin/dash and seen that it's much faster
than /bin/bash on my normal sized project.
->> is it possible to choose the shell in autogen ? That way users do
not have to bother to call configure like this ?


If you did that then the configure script would likely only work on 
your system.  If it only runs on your system, what's the point?



Secondly, I wanted to optimize the way gcc is called ? Why does libtool
need to create a shell snippet for all source files ? A Makefile that
simply calls gcc for each source file is much much faster ;


Libtool is for portably creating libraries.  If you only plan to 
create libraries that work on your own computer, then you can 
hard-code everything in a Makefile and skip using libtool.


Regardless, libtool 2.2 and latter has been shown to have minimal 
impact on build times.


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



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


Re: problem when cross compiling with mingw32ce

2008-10-21 Thread Vincent Torri


Hey,

Now I have a problem with libm.a. The ptch you provided is good for all 
the static lib i currently used, but recently i had to use libm.a (more 
precisely, it's libtool which adds -lm when c++ code is used).


Here are some output:

 * arm-mingw32ce-objdump -f ~/local/opt/mingw32ce/arm-mingw32ce/lib/libm.a | 
sed -e '10q'

In archive /home/torri/local/opt/mingw32ce/arm-mingw32ce/lib/libm.a:

_libm_dummy.o: file format pe-arm-wince-little
architecture: armv4, flags 0x0039:
HAS_RELOC, HAS_DEBUG, HAS_SYMS, HAS_LOCALS
start address 0x


 * arm-mingw32ce-nm -f posix -A ~/local/opt/mingw32ce/arm-mingw32ce/lib/libm.a

/home/torri/local/opt/mingw32ce/arm-mingw32ce/lib/libm.a[_libm_dummy.o]: .bss b 

/home/torri/local/opt/mingw32ce/arm-mingw32ce/lib/libm.a[_libm_dummy.o]: .data 
d 
/home/torri/local/opt/mingw32ce/arm-mingw32ce/lib/libm.a[_libm_dummy.o]: 
.debug_abbrev N 
/home/torri/local/opt/mingw32ce/arm-mingw32ce/lib/libm.a[_libm_dummy.o]: 
.debug_info N 
/home/torri/local/opt/mingw32ce/arm-mingw32ce/lib/libm.a[_libm_dummy.o]: 
.debug_line N 
/home/torri/local/opt/mingw32ce/arm-mingw32ce/lib/libm.a[_libm_dummy.o]: .text 
t 

that's all.

Should I provide more informations ?

thank you

Vincent Torri


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