[oe-commits] [openembedded-core] 31/64: rm_work.bbclass: re-enable recursive do_rm_work_all

git at git.openembedded.org git at git.openembedded.org
Tue Mar 21 21:12:06 UTC 2017


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit bd79fe5dc50b089f6b6de802311eff867ca7e028
Author: Patrick Ohly <patrick.ohly at intel.com>
AuthorDate: Tue Mar 14 16:29:32 2017 +0100

    rm_work.bbclass: re-enable recursive do_rm_work_all
    
    When rewriting the do_rm_work injection, do_rm_work_all had been
    removed because it seemed obsolete, as do_build now always triggers
    do_rm_work.
    
    However, do_build does not get triggered for all recipes and thus
    do_rm_work was not called for recipes that got built only
    partially. For example, zlib depends indirectly on
    zlib-native:do_populate_sysroot.  Because of that dependency,
    zlib-native got compiled, but do_rm_work was never called for it.
    
    Re-introducing do_rm_work_all fixes that by making do_build depend on
    do_rm_work_all, which then recursively depends on do_rm_work of all
    dependencies. This has the unintended side-effect that do_rm_work then
    also triggers additional work (like do_populate_lic) that normally
    doesn't need to be done for a build. This seems like the lesser evil,
    compared to an incomplete cleanup because it mostly enables the
    lighter tasks after do_populate_sysroot.
    
    The real solution would be to have two kinds of relationships: a weak
    ordering relationship ("if A and B are enabled, A must run before B,
    but B can also run without A") and hard dependencies ("B cannot run
    unless A has run before").
    
    Signed-off-by: Patrick Ohly <patrick.ohly at intel.com>
    Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 meta/classes/rm_work.bbclass | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/meta/classes/rm_work.bbclass b/meta/classes/rm_work.bbclass
index 054c937..2490a69 100644
--- a/meta/classes/rm_work.bbclass
+++ b/meta/classes/rm_work.bbclass
@@ -102,6 +102,12 @@ do_rm_work () {
         rm -f $i
     done
 }
+do_rm_work_all () {
+    :
+}
+do_rm_work_all[recrdeptask] = "do_rm_work"
+do_rm_work_all[noexec] = "1"
+addtask rm_work_all after before do_build
 
 do_populate_sdk[postfuncs] += "rm_work_populatesdk"
 rm_work_populatesdk () {
@@ -138,9 +144,8 @@ python inject_rm_work() {
         # do_build inherits additional runtime dependencies on
         # other recipes and thus will typically run much later than completion of
         # work in the recipe itself.
-        deps = bb.build.preceedtask('do_build', True, d)
-        if 'do_build' in deps:
-            deps.remove('do_build')
+        deps = set(bb.build.preceedtask('do_build', True, d))
+        deps.difference_update(('do_build', 'do_rm_work_all'))
         # In practice, addtask() here merely updates the dependencies.
         bb.build.addtask('do_rm_work', 'do_build', ' '.join(deps), d)
 }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list