]> code.ossystems Code Review - openembedded-core.git/commit
populate_sdk_ext.bbclass: enhance compatibility with rm_work.bbclass
authorPatrick Ohly <patrick.ohly@intel.com>
Wed, 29 Mar 2017 11:29:50 +0000 (13:29 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 30 Mar 2017 09:04:06 +0000 (10:04 +0100)
commit00b1911c65fa1b21c3dedec40170998573b62178
tree63a184230ee641356278e8fec50a38a93a899e6b
parent04a7b8d6d2e86cc4dd1362c775f5e3ac1eb1d19d
populate_sdk_ext.bbclass: enhance compatibility with rm_work.bbclass

"bitbake -c populate_dsk_ext" must not trigger do_rm_work, because it
is impossible to declare that the additional tasks activated by "-c
populate_dsk_ext" must run before do_rm_work. When do_populate_dsk_ext
and do_rm_work are both active, the resulting race condition breaks
do_populate_dsk_ext.

The existing bitbake dependencies can't be used for that, because
"addtask populate_dsk_ext before do_rm_work" would then always execute
populate_dsk_ext also in normal builds.

do_populate_dsk_ext triggers do_rm_work indirectly through the
dependency on do_build of the SDK_TARGETs. Using the new
do_build_without_rm_work instead (when available, with do_build as
before if not) avoids the problem.

However, one has to be careful to not trigger do_rm_work in the same
build in some other way.  "bitbake core-image-sato:do_populate_sdk_ext
core-image-sato:do_build" still fails, for example. Doing one after
the other works.

Fixes: [YOCTO 11042]
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/populate_sdk_ext.bbclass