From a66bf18b35a6ebbad7c821512cdf5969f72d6844 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 19 Dec 2017 12:39:42 +0000 Subject: 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 (cherry picked from commit 0f537d985b7b17af508a511fca8a4ec4b5804580) Signed-off-by: Armin Kuster --- meta/classes/rm_work.bbclass | 6 ++++++ 1 file changed, 6 insertions(+) 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) -- cgit 1.2.3-korg