* Anders Darander <and...@chargestorm.se> [111014 09:55]: > In our local tree, I've circumvented this race by applying a patch like > [3]. (Well, we could likely have put the lock in do_make_scripts() > instead of module_do_compile(), as we have done currently). Obviously, > I'm not proposing to apply this patch, as it depends on lockfile from > the procmail-package (host-package).
Just to confirm, it seems (after a very few tests) that it indeed is enough to guard the do_make_scripts() with the lock. However, the question on how to make the real solution remains... Cheers, Anders > [3] > $ cat 0001-module.bbclass-add-lock-to-prevent-error-bulding-ext.patch > From 9e23beb2ec499cdba04a11165efe8867ad4dc42a Mon Sep 17 00:00:00 2001 > From: Anders Darander <and...@chargestorm.se> > Date: Mon, 10 Oct 2011 14:26:20 +0200 > Subject: [PATCH] module.bbclass: add lock to prevent error bulding ext > modules > When external modules are built, certain files in STAGING_KERNEL_DIR > might get rebuilt. > This raises a potential race condition. Prevent this by using a lockfile > to make external > modules build in sequence. > This patch is not applicable upstream, as it requires lockfile from > procmail. > Signed-off-by: Anders Darander <and...@chargestorm.se> > --- > meta/classes/module.bbclass | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass > index 572df0d..46abd81 100644 > --- a/meta/classes/module.bbclass > +++ b/meta/classes/module.bbclass > @@ -15,6 +15,8 @@ do_make_scripts() { > } > module_do_compile() { > + trap "rm -f ${STAGING_KERNEL_DIR}/external_modules.lock; exit 1" > INT TERM EXIT > + lockfile -r-1 ${STAGING_KERNEL_DIR}/external_modules.lock > do_make_scripts > unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS > oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \ > @@ -23,6 +25,8 @@ module_do_compile() { > CC="${KERNEL_CC}" LD="${KERNEL_LD}" \ > AR="${KERNEL_AR}" \ > ${MAKE_TARGETS} > + rm -f ${STAGING_KERNEL_DIR}/external_modules.lock > + trap - INT TERM EXIT > } > module_do_install() { -- Anders Darander ChargeStorm AB / eStorm AB _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core