[OE-core] [RFC] Preventing race when compiling external kernel modules
Anders Darander
anders at chargestorm.se
Mon Oct 17 11:54:41 UTC 2011
* Richard Purdie <richard.purdie at linuxfoundation.org> [111014 13:43]:
> On Fri, 2011-10-14 at 12:47 +0200, Anders Darander wrote:
> > * Anders Darander <anders at 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...
> I've not tested this but it might give you enough info to test
> something:
> (Basic idea is to promote that function to a task, then apply a lock to
> it).
Thanks!
I had an idea that it might be something like this, but I didn't really
know if I was completely off... I'll try this and see if I can come up
with something that works reliable for us. When I've got something
ready, I'll send a real patch.
Cheers,
Anders
> diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass
> index 572df0d..5602e74 100644
> --- a/meta/classes/module.bbclass
> +++ b/meta/classes/module.bbclass
> @@ -14,8 +14,10 @@ do_make_scripts() {
> -C ${STAGING_KERNEL_DIR} scripts
> }
> +addtask make_scripts before compile
> +do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
> +
> module_do_compile() {
> - do_make_scripts
> unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
> oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \
> KERNEL_SRC=${STAGING_KERNEL_DIR} \
--
Anders Darander
ChargeStorm AB / eStorm AB
More information about the Openembedded-core
mailing list