From 701ad76270cfc316c46b1242ce187801913821b3 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 16 Sep 2015 21:59:44 +0100 Subject: bitbake: data_smart: When considering OVERRIDE dependencies, do so recursively 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. (Bitbake rev: 82143ac064d391300e762ba7520ef1f8df18b574) Signed-off-by: Richard Purdie --- bitbake/lib/bb/data_smart.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'bitbake/lib/bb/data_smart.py') diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 85412b2a8b..99f55cf4b5 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py @@ -530,7 +530,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): -- cgit v1.2.3-54-g00ecf