summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/data_smart.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-16 21:59:44 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-18 15:14:03 +0100
commit701ad76270cfc316c46b1242ce187801913821b3 (patch)
tree05c686569334f9deb6d0794fb425ce5355d4b802 /bitbake/lib/bb/data_smart.py
parent4325f6f03dee60ee45828ecffb053321a26fbc16 (diff)
downloadpoky-701ad76270cfc316c46b1242ce187801913821b3.tar.gz
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 <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/data_smart.py')
-rw-r--r--bitbake/lib/bb/data_smart.py8
1 files changed, 7 insertions, 1 deletions
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):
530 self._setvar_update_overridevars(var, value) 530 self._setvar_update_overridevars(var, value)
531 531
532 def _setvar_update_overridevars(self, var, value): 532 def _setvar_update_overridevars(self, var, value):
533 self.overridevars.update(self.expandWithRefs(value, var).references) 533 new = self.expandWithRefs(value, var).references
534 while not new.issubset(self.overridevars):
535 nextnew = set()
536 self.overridevars.update(new)
537 for i in new:
538 nextnew.update(self.expandWithRefs(self.getVar(i, True), i).references)
539 new = nextnew
534 self.internal_finalize(True) 540 self.internal_finalize(True)
535 541
536 def _setvar_update_overrides(self, var, **loginfo): 542 def _setvar_update_overrides(self, var, **loginfo):