* [PATCH] data_smart: When considering OVERRIDE dependencies, do so recursively
@ 2015-09-16 20:59 Richard Purdie
0 siblings, 0 replies; only message in thread
From: Richard Purdie @ 2015-09-16 20:59 UTC (permalink / raw)
To: bitbake-devel
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@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):
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-09-16 21:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-16 20:59 [PATCH] data_smart: When considering OVERRIDE dependencies, do so recursively Richard Purdie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox