summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/data_smart.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/data_smart.py')
-rw-r--r--bitbake/lib/bb/data_smart.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py
index 4be6614a2f..85412b2a8b 100644
--- a/bitbake/lib/bb/data_smart.py
+++ b/bitbake/lib/bb/data_smart.py
@@ -413,9 +413,11 @@ class DataSmart(MutableMapping):
413 self.overrides = None 413 self.overrides = None
414 414
415 def need_overrides(self): 415 def need_overrides(self):
416 if self.overrides is None: 416 if self.overrides is not None:
417 if self.inoverride: 417 return
418 return 418 if self.inoverride:
419 return
420 for count in range(5):
419 self.inoverride = True 421 self.inoverride = True
420 # Can end up here recursively so setup dummy values 422 # Can end up here recursively so setup dummy values
421 self.overrides = [] 423 self.overrides = []
@@ -424,6 +426,13 @@ class DataSmart(MutableMapping):
424 self.overridesset = set(self.overrides) 426 self.overridesset = set(self.overrides)
425 self.inoverride = False 427 self.inoverride = False
426 self.expand_cache = {} 428 self.expand_cache = {}
429 newoverrides = (self.getVar("OVERRIDES", True) or "").split(":") or []
430 if newoverrides == self.overrides:
431 break
432 self.overrides = newoverrides
433 self.overridesset = set(self.overrides)
434 else:
435 bb.fatal("Overrides could not be expanded into a stable state after 5 iterations, overrides must be being referenced by other overridden variables in some recursive fashion. Please provide your configuration to bitbake-devel so we can laugh, er, I mean try and understand how to make it work.")
427 436
428 def initVar(self, var): 437 def initVar(self, var):
429 self.expand_cache = {} 438 self.expand_cache = {}