diff options
| author | Robert Yang <liezhi.yang@windriver.com> | 2015-02-05 01:31:28 -0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-02-05 09:46:11 +0000 |
| commit | 1f53edeaf9ea59dd55459a6d5a93829fb4983839 (patch) | |
| tree | ca39c21f342a3aee55fb798619ae126ee0fd7eb2 | |
| parent | d8f0011c23a6b8441323974acc70b08c81cfefbd (diff) | |
| download | poky-1f53edeaf9ea59dd55459a6d5a93829fb4983839.tar.gz | |
libtool: avoid running automake/autoconf --version
The libtool would be very slow if run "automake/autoconf --version", for
example, when compile xz-native (make -j1, only compile, no confiure or
install):
before patched: 19s
after patched: 11s
Use plain text to instead of running them.
NOTE: it is still a little slower than libtool 2.4.2 when compile
xz-native because of other parts:
make -j1: about 2s slower
make -j32: about 0.4s slower
If we run to do_install:
(PARALLEL_MAKE = "-j32")
libtool 2.4.2:
$ bitbake xz-native -cinstall && bitbake xz-native -ccleansstate && time bitbake xz-native -cinstall
real 0m21.092s
user 0m28.292s
sys 0m3.932s
libtool 2.4.5:
$ bitbake xz-native -cinstall && bitbake xz-native -ccleansstate && time bitbake xz-native -cinstall
real 0m21.380s
user 0m31.140s
sys 0m4.068s
About 0.3s, slightly different.
But when using /bin/bash as CONFIG_SHELL, the new libtool would be much slower:
real 0m23.106s
user 0m44.044s
sys 0m4.280s
About 2s slower, for the big package like cairo, it is more slower (about 6s),
unfortunately, /bin/bash is most default CONFIG_SHELL for the recipes since
configure checks first check bash.
(From OE-Core rev: eb9d896db2fc67bac8efd258744d06fbbee87f06)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-devtools/libtool/libtool-2.4.5.inc | 1 | ||||
| -rw-r--r-- | meta/recipes-devtools/libtool/libtool/avoid-running-automake-autoconf-version.patch | 54 |
2 files changed, 55 insertions, 0 deletions
diff --git a/meta/recipes-devtools/libtool/libtool-2.4.5.inc b/meta/recipes-devtools/libtool/libtool-2.4.5.inc index 5b222504af..5ac6a78e34 100644 --- a/meta/recipes-devtools/libtool/libtool-2.4.5.inc +++ b/meta/recipes-devtools/libtool/libtool-2.4.5.inc | |||
| @@ -18,6 +18,7 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ | |||
| 18 | file://dont-depend-on-help2man.patch \ | 18 | file://dont-depend-on-help2man.patch \ |
| 19 | file://fix-resolve-lt-sysroot.patch \ | 19 | file://fix-resolve-lt-sysroot.patch \ |
| 20 | file://nohardcodepaths.patch \ | 20 | file://nohardcodepaths.patch \ |
| 21 | file://avoid-running-automake-autoconf-version.patch \ | ||
| 21 | " | 22 | " |
| 22 | 23 | ||
| 23 | SRC_URI[md5sum] = "7d30ed9fa6bb11270ebb31639a37bd54" | 24 | SRC_URI[md5sum] = "7d30ed9fa6bb11270ebb31639a37bd54" |
diff --git a/meta/recipes-devtools/libtool/libtool/avoid-running-automake-autoconf-version.patch b/meta/recipes-devtools/libtool/libtool/avoid-running-automake-autoconf-version.patch new file mode 100644 index 0000000000..ac2d370db4 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/avoid-running-automake-autoconf-version.patch | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | From 7d3b0331d91a9f80bc4bcddea929a93b07b8ef91 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Robert Yang <liezhi.yang@windriver.com> | ||
| 3 | Date: Wed, 4 Feb 2015 17:14:46 -0800 | ||
| 4 | Subject: [PATCH] avoid running automake/autoconf --version | ||
| 5 | |||
| 6 | The libtool would be very slow if run "automake/autoconf --version", for | ||
| 7 | example, when compile xz (make -j1): | ||
| 8 | |||
| 9 | before patched: 19s | ||
| 10 | after patched: 11s | ||
| 11 | |||
| 12 | Use plain text to instead of running them. | ||
| 13 | |||
| 14 | Upstream-Status: Pending [Report to libtool community] | ||
| 15 | |||
| 16 | Signed-off-by: Robert Yang <liezhi.yang@windriver.com> | ||
| 17 | --- | ||
| 18 | build-aux/ltmain.in | 4 ++-- | ||
| 19 | libtoolize.in | 4 ++-- | ||
| 20 | 2 files changed, 4 insertions(+), 4 deletions(-) | ||
| 21 | |||
| 22 | diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in | ||
| 23 | index 0441e48..49cd39a 100644 | ||
| 24 | --- a/build-aux/ltmain.in | ||
| 25 | +++ b/build-aux/ltmain.in | ||
| 26 | @@ -152,8 +152,8 @@ include the following information: | ||
| 27 | compiler flags: $LTCFLAGS | ||
| 28 | linker: $LD (gnu? $with_gnu_ld) | ||
| 29 | version: $progname (GNU @PACKAGE@) @VERSION@ | ||
| 30 | - automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` | ||
| 31 | - autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` | ||
| 32 | + automake: run $AUTOMAKE --version | ||
| 33 | + autoconf: run $AUTOCONF --version | ||
| 34 | |||
| 35 | Report bugs to <@PACKAGE_BUGREPORT@>. | ||
| 36 | GNU @PACKAGE@ home page: <@PACKAGE_URL@>. | ||
| 37 | diff --git a/libtoolize.in b/libtoolize.in | ||
| 38 | index 684d799..e57c89b 100644 | ||
| 39 | --- a/libtoolize.in | ||
| 40 | +++ b/libtoolize.in | ||
| 41 | @@ -115,8 +115,8 @@ include the following information: | ||
| 42 | |||
| 43 | host-triplet: @host_triplet@ | ||
| 44 | version: $progname (GNU @PACKAGE@) @VERSION@ | ||
| 45 | - automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` | ||
| 46 | - autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` | ||
| 47 | + automake: run $AUTOMAKE --version | ||
| 48 | + autoconf: run $AUTOCONF --version | ||
| 49 | |||
| 50 | Report bugs to <@PACKAGE_BUGREPORT@>. | ||
| 51 | GNU @PACKAGE@ home page: <@PACKAGE_URL@>. | ||
| 52 | -- | ||
| 53 | 1.7.9.5 | ||
| 54 | |||
