From 9eaf51be2d578016d24ca47fb3cd679d3da4baca Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 19 Feb 2017 06:51:57 -0800 Subject: gcc-cross: Avoid races with gcc_stash_builddir Its sad we need to do this but do_install and do_populate_sysroot appear to change the files in ${B} and this breaks if something works in parallel like gcc_stash_builddir. We've seen a few too many race errors on the autobuilder which appear to be from this so make things run in sequence deterministically for now. An example failure was this from do_populate_sysroot whilst stash_builddir was running in parallel: ERROR: gcc-cross-initial-arm-6.3.0-r0 do_populate_sysroot: split_and_strip_files: 'file /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-arm-lsb/build/build/tmp/work/x86_64-linux/ gcc-cross-initial-arm/6.3.0-r0/sysroot-destdir/home/pokybuild/yocto-autobuilder/yocto-worker/ nightly-arm-lsb/build/build/tmp/work/x86_64-linux/gcc-cross-initial-arm/6.3.0-r0/recipe-sysroot-native/ usr/bin/arm-poky-linux-gnueabi.gcc-cross-initial-arm/arm-poky-linux-gnueabi-gcov' failed Exception: subprocess.CalledProcessError: Command '('patchelf-uninative', '--set-interpreter', '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-arm-lsb/build/build/tmp/sysroots-uninative/ x86_64-linux/lib/ld-linux-x86-64.so.2', '/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-arm-lsb/ build/build/tmp/work/x86_64-linux/gcc-cross-initial-arm/6.3.0-r0/sstate-build-populate_sysroot/ recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi.gcc-cross-initial-arm/arm-poky-linux-gnueabi-gcov')' returned non-zero exit status 1 Subprocess output: missing section headers (From OE-Core rev: 75b76eb08c7e344142f0326605aeb6b24e61e38e) (From OE-Core rev: 7265e99d0b4b662ca7f23d480f2845a309ac57fc) Signed-off-by: Richard Purdie --- meta/recipes-devtools/gcc/gcc-cross.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc index fa5cfbd5d1..bb5f7a0a5e 100644 --- a/meta/recipes-devtools/gcc/gcc-cross.inc +++ b/meta/recipes-devtools/gcc/gcc-cross.inc @@ -200,7 +200,7 @@ do_gcc_stash_builddir () { dest=${BUILDDIRSTASH} hardlinkdir . $dest } -addtask do_gcc_stash_builddir after do_compile before do_build +addtask do_gcc_stash_builddir after do_compile before do_install SSTATETASKS += "do_gcc_stash_builddir" do_gcc_stash_builddir[sstate-inputdirs] = "${BUILDDIRSTASH}" do_gcc_stash_builddir[sstate-outputdirs] = "${STAGING_DIR}-components/${BUILD_ARCH}/gcc-stashed-builddir${COMPILERINITIAL}-${TARGET_SYS}" -- cgit v1.2.3-54-g00ecf