[bitbake-devel] [PATCH] data_smart: When considering OVERRIDE dependencies, do so recursively

Richard Purdie richard.purdie at linuxfoundation.org
Wed Sep 16 20:59:44 UTC 2015


Sadly its not enough to consider the dependencies of OVERRIDES, we 
need to resolve their dependencies and so on recursively. If we don't
do this, some variable can be changed and the resulting data store is
incorrect.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py
index 7651a5e..dc8632c 100644
--- a/bitbake/lib/bb/data_smart.py
+++ b/bitbake/lib/bb/data_smart.py
@@ -540,7 +540,13 @@ class DataSmart(MutableMapping):
             self._setvar_update_overridevars(var, value)
 
     def _setvar_update_overridevars(self, var, value):
-        self.overridevars.update(self.expandWithRefs(value, var).references)
+        new = self.expandWithRefs(value, var).references
+        while not new.issubset(self.overridevars):
+            nextnew = set()
+            self.overridevars.update(new)
+            for i in new:
+                nextnew.update(self.expandWithRefs(self.getVar(i, True), i).references)
+            new = nextnew
         self.internal_finalize(True)
 
     def _setvar_update_overrides(self, var, **loginfo):





More information about the bitbake-devel mailing list