libtool: fixed parallel build related race
authorEnrico Scholz <enrico.scholz@sigma-chemnitz.de>
Sun, 20 May 2012 17:54:37 +0000 (19:54 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 24 May 2012 07:51:38 +0000 (08:51 +0100)
While building libtool, the libtool script itself will be regenerated
because OE modifies a dependency[1]. With -jX, this operation (-->
removal, creation of non-x file, 'chmod a+x') can happen at a time when
the script is going to be executed.  This can cause errors like:

| arm-linux-gnueabi-libtool: compile:  ccache arm-linux-gnueabi-gcc ...
| ...
| /bin/sh ./config.status libtool
| ...
| arm-linux-gnueabi-libtool: compile:  ccache arm-linux-gnueabi-gcc ...
| /bin/sh: ./arm-linux-gnueabi-libtool: Permission denied
| make[2]: *** [libltdl/libltdl_libltdl_la-lt__alloc.lo] Error 126

I am not sure whether the custom do_compile_prepend() is still needed.
For now only the issue above will be fixed by executing ./config.status
yet again.

[1] see 648290d5bf4d6ff50d3643bb7ad902dfc23aa702

(From OE-Core rev: e065c11b6066f8c1d37496b58dd853a684cd9136)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/libtool/libtool-2.4.2.inc

index 084062a..c1ef7c4 100644 (file)
@@ -8,7 +8,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
     file://libltdl/COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
 
-INC_PR = "r2"
+INC_PR = "r3"
 
 SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
            file://trailingslash.patch \
@@ -27,6 +27,7 @@ do_compile_prepend () {
        # Sometimes this file doesn't get rebuilt, force the issue
        rm -f ${S}/libltdl/config/ltmain.sh
        make libltdl/config/ltmain.sh
+       ./config.status
 }
 
 inherit autotools