Subject: bug#12015: [Bug and Patch]meta directory install-data-hook failed when make with multi-jobbing

From: "Song.Li" <[email-masked]>
Date: Fri, 20 Jul 2012 11:33:27 +0800

Bug log:
=============================

Here is the tail of log.do_install.20344:
--------------------------------------------------
DEBUG: Executing shell function do_install
NOTE: make -j 20 DESTDIR=/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/image install make install-recursive
make[1]: Entering directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3'
Making install in lib
make[2]: Entering directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/lib'
make install-recursive
make[3]: Entering directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/lib'
make[4]: Entering directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/lib'
make[5]: Entering directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/lib'
make[5]: Nothing to be done for `install-exec-am'.
make[5]: Nothing to be done for `install-data-am'.
make[5]: Leaving directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/lib'
make[4]: Leaving directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/lib'
make[3]: Leaving directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/lib'
make[2]: Leaving directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/lib'
Making install in meta
make[2]: Entering directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/meta'
make[3]: Entering directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/meta'
test -z "/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/bin" || /bin/mkdir -p "/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/image/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/bin"
test -z "/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/share/aclocal" || /bin/mkdir -p "/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/image/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/share/aclocal"
test -z "/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/lib/pkgconfig" || /bin/mkdir -p "/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/image/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/lib/pkgconfig"
/usr/bin/install -c -m 644 guile.m4 '/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/image/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/share/aclocal'
/usr/bin/install -c -m 644 guile-2.0.pc '/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/image/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/lib/pkgconfig'
make install-data-hook
make[4]: Entering directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/meta'
cd /ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/image/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/bin && rm -f guile-tools && \
ln -s guild guile-tools
/bin/sh: line 0: cd: /ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/image/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/bin: No such file or directory
make[4]: *** [install-data-hook] Error 1
make[4]: Leaving directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/meta'
make[3]: *** [install-data-am] Error 2
make[3]: *** Waiting for unfinished jobs....
/usr/bin/install -c guile-config guild '/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/image/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/sysroots/x86_64-linux/usr/bin'
make[3]: Leaving directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/meta'
make[2]: *** [install-am] Error 2
make[2]: Leaving directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3/meta'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/guile-2.0.3'
make: *** [install] Error 2
ERROR: oe_runmake failed
ERROR: Function failed: do_install (see /ba2/yow-blade12.2/builds-2012-07-12-000354/intel-xeon-core_std_tc/bitbake_build/tmp/work/x86_64-linux/guile-native-2.0.3-r5/temp/do_install/log.do_install.20344 for further information)

Patch:
====================================================
 From fb1135440c0739856009966c89ea7737257c4552 Mon Sep 17 00:00:00 2001
From: Song.Li <[email-masked]>
Date: Thu, 19 Jul 2012 17:52:49 +0800
Subject: [PATCH] change install-data-hook to install-exec-hook in guile

In guile meta/Makefile, what install-data-hook do
must be run after install-binSCRIPTS.so it's a exec hook, not a data hook.
If keep these exec-hook in data-hook,when we run make with multi-jobbing ,
install-data-hook and install-binSCRIPTS will be separately
processed in different thread, no any dependence.
that will cause error sometimes.

---
  meta/Makefile.am |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/Makefile.am b/meta/Makefile.am
index f26fc44..e603e5c 100644
--- a/meta/Makefile.am
+++ b/meta/Makefile.am
@@ -27,7 +27,7 @@ EXTRA_DIST= \
    guild.in guile-config.in

  # What we now call `guild' used to be known as `guile-tools'.
-install-data-hook:
+install-exec-hook:
         cd $(DESTDIR)$(bindir) && rm -f guile-tools$(EXEEXT) && \
         $(LN_S) guild$(EXEEXT) guile-tools$(EXEEXT)

-- 
1.7.9.6