diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-12-19 12:39:42 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-12-20 15:32:12 +0000 |
commit | 0f537d985b7b17af508a511fca8a4ec4b5804580 (patch) | |
tree | b9f188c451d7c36de13ac5ba0338a825104bdfdb /meta/classes | |
parent | 2ec354f93101d85b4a3739368c8f0a96ec84c7d0 (diff) | |
download | openembedded-core-0f537d985b7b17af508a511fca8a4ec4b5804580.tar.gz openembedded-core-0f537d985b7b17af508a511fca8a4ec4b5804580.tar.bz2 openembedded-core-0f537d985b7b17af508a511fca8a4ec4b5804580.zip |
rm_work: Handle race with -inital tasks
There is a race with rm_work when tasks run deltask do_build since
do_rm_work becomes a floating task. Handle this by injecting
the populate_sysroot/lic dependencies manually if the tasks returned
are empty. This depends on a change to fix bb.build.preceedtask() in
bitbake too.
[YOCTO #12365]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/rm_work.bbclass | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/meta/classes/rm_work.bbclass b/meta/classes/rm_work.bbclass index 13a9e75d85..59180829ab 100644 --- a/meta/classes/rm_work.bbclass +++ b/meta/classes/rm_work.bbclass @@ -166,6 +166,10 @@ python inject_rm_work() { deps = set(bb.build.preceedtask('do_build', True, d)) deps.difference_update(('do_build', 'do_rm_work_all')) + # deps can be empty if do_build doesn't exist, e.g. *-inital recipes + if not deps: + deps = ["do_populate_sysroot", "do_populate_lic"] + if pn in excludes: d.delVarFlag('rm_work_rootfs', 'cleandirs') d.delVarFlag('rm_work_populatesdk', 'cleandirs') @@ -179,6 +183,8 @@ python inject_rm_work() { # work in the recipe itself. # In practice, addtask() here merely updates the dependencies. bb.build.addtask('do_rm_work', 'do_build', ' '.join(deps), d) + if "initial" in pn: + bb.warn(pn + "2: " + " ".join(deps)) # Always update do_build_without_rm_work dependencies. bb.build.addtask('do_build_without_rm_work', '', ' '.join(deps), d) |