From patchwork Mon Aug 6 12:50:14 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Could we build tar-replacement firstly and not parallel if tar-replacement is needed to build Date: Mon, 06 Aug 2012 12:50:14 -0000 From: rongqing.li@windriver.com X-Patchwork-Id: 33973 Message-Id: <501FBD86.3090705@windriver.com> To: Patches and discussions about the oe-core layer , "Yang, Liezhi" , "Hatle, Mark" Hi: Building failed several times when building tar-replacement-native is needed, The error log shows "bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/tar: Text file busy". this log proves "an attempt was made to execute a pure-procedure program that is currently open for writing." Before this error, tar-replacement do_populate_sysroot just starts, (tar-replacement-native-1.26-r2: task do_populate_sysroot: Started) After this error, we see tar-replacement do_populate_sysroot just finish. So I think the root cause is that do_populate_sysroot sqlite is using a tar command which being opened to written. in fact, all packages need tar to do_popolate_sysroot() I see building tar-replacement-native is started in bitbake file, could we build tar-replacement firstly, not parallel if needed. if [ "$ret" != "0" ]; then exit 1 since building tar-replacement or not depends on host tar version, it is hard to add a tar dependence to any package, and I did not have a good way to fix this bug except the upper. Any advice and suggestion are welcome diff --git a/scripts/bitbake b/scripts/bitbake index 3772d82..1bb8fed 100755 --- a/scripts/bitbake +++ b/scripts/bitbake @@ -134,7 +134,10 @@ if [ $buildpseudo -gt 0 ]; then fi done done - bitbake pseudo-native $TARTARGET $additionalopts -c populate_sysroot + + if [ $needptar = "1" ]; then + sed -i 's/BB_NUMBER_THREADS =/#BB_NUMBER_THREADS =/g' conf/local.conf + bitbake $TARTARGET + sed -i 's/#BB_NUMBER_THREADS =/BB_NUMBER_THREADS =/g' conf/local.conf + fi + + bitbake pseudo-native $additionalopts -c populate_sysroot ret=$?