diff options
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/data_smart.py | 15 |
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 = {} |