diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-11-24 16:11:10 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-11-27 23:48:15 +0000 |
commit | 0536965bd45670b7024c84f30a79cd652fe87a73 (patch) | |
tree | fda8403e3df4680cdfb39f445e90fa067f4129d2 | |
parent | a5f1b44310aac727e9bef3a1014e32da7b104c7d (diff) | |
download | poky-0536965bd45670b7024c84f30a79cd652fe87a73.tar.gz |
bitbake: data_smart: Add debugging for overrides stability issue
If someone is unfortunate enough to run into override recursion issues
they're hard to debug with the existing message. We can at least show the
values that OVERRIDES takes to show there is some problem and aid debugging.
(Bitbake rev: 43035b75201616e7bfd680d3d15c5c0fc7c04eb6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/data_smart.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 5415f2fccf..fd05451971 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py | |||
@@ -486,12 +486,14 @@ class DataSmart(MutableMapping): | |||
486 | return | 486 | return |
487 | if self.inoverride: | 487 | if self.inoverride: |
488 | return | 488 | return |
489 | overrride_stack = [] | ||
489 | for count in range(5): | 490 | for count in range(5): |
490 | self.inoverride = True | 491 | self.inoverride = True |
491 | # Can end up here recursively so setup dummy values | 492 | # Can end up here recursively so setup dummy values |
492 | self.overrides = [] | 493 | self.overrides = [] |
493 | self.overridesset = set() | 494 | self.overridesset = set() |
494 | self.overrides = (self.getVar("OVERRIDES") or "").split(":") or [] | 495 | self.overrides = (self.getVar("OVERRIDES") or "").split(":") or [] |
496 | overrride_stack.append(self.overrides) | ||
495 | self.overridesset = set(self.overrides) | 497 | self.overridesset = set(self.overrides) |
496 | self.inoverride = False | 498 | self.inoverride = False |
497 | self.expand_cache = {} | 499 | self.expand_cache = {} |
@@ -501,7 +503,7 @@ class DataSmart(MutableMapping): | |||
501 | self.overrides = newoverrides | 503 | self.overrides = newoverrides |
502 | self.overridesset = set(self.overrides) | 504 | self.overridesset = set(self.overrides) |
503 | else: | 505 | else: |
504 | 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.") | 506 | 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. The list of failing override expansions: %s" % "\n".join(str(s) for s in overrride_stack)) |
505 | 507 | ||
506 | def initVar(self, var): | 508 | def initVar(self, var): |
507 | self.expand_cache = {} | 509 | self.expand_cache = {} |