<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 16, 2015 at 1:57 PM, Richard Purdie <span dir="ltr"><<a href="mailto:richard.purdie@linuxfoundation.org" target="_blank">richard.purdie@linuxfoundation.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":4oc" class="a3s" style="overflow:hidden">+ while changed:<br>
self.inoverride = True<br>
# Can end up here recursively so setup dummy values<br>
self.overrides = []<br>
@@ -431,6 +435,14 @@ <span class="il">class</span> DataSmart(MutableMapping):<br>
self.overridesset = set(self.overrides)<br>
self.inoverride = False<br>
self.expand_cache = {}<br>
+ newoverrides = (self.getVar("OVERRIDES", True) or "").split(":") or []<br>
+ if newoverrides == self.overrides:<br>
+ changed = False<br>
+ self.overrides = newoverrides<br>
+ self.overridesset = set(self.overrides)<br>
+ count += 1<br>
+ if count > 5:<br>
+ <span class="il">bb</span>.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 <span class="il">bitbake</span>-devel so we can laugh, er, I mean try and understand how to make it work.")</div></blockquote></div><br>We know the maximum number of iterations here, so it might be worth doing a for count in range(5): .. if newoverrides == self.overrides: break, and the else block on the loop would indicate it never broke and therefore we hit the count > 5 case. That'd eliminate the manual count bits.<br>-- <br><div class="gmail_signature">Christopher Larson<br>clarson at kergoth dot com<br>Founder - BitBake, OpenEmbedded, OpenZaurus<br>Maintainer - Tslib<br>Senior Software Engineer, Mentor Graphics</div>
</div></div>