libtool optimization
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
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
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
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
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
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