summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2016-09-15 14:20:50 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-16 15:24:03 +0100
commit088d386ddbdd7b4952ba22bba4fb7fd4c452d3d7 (patch)
tree2573289bc7e86d8452532981337fb17e95df6e04 /bitbake
parente3e239ba5448c9a5f809a6fda1319f90124c0dce (diff)
downloadpoky-088d386ddbdd7b4952ba22bba4fb7fd4c452d3d7.tar.gz
bitbake: cookerdata: allow multiple passes of config re-parsing
[YOCTO #10188] (Bitbake rev: 07a03a1290fd206df2b40ffc28381b5b3c10ba4a) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/cookerdata.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py
index 07425ce00d..9e88f9571d 100644
--- a/bitbake/lib/bb/cookerdata.py
+++ b/bitbake/lib/bb/cookerdata.py
@@ -270,9 +270,16 @@ class CookerDataBuilder(object):
270 270
271 bb.event.fire(bb.event.ConfigParsed(), self.data) 271 bb.event.fire(bb.event.ConfigParsed(), self.data)
272 272
273 if self.data.getVar("BB_INVALIDCONF", False) is True: 273 reparse_cnt = 0
274 while self.data.getVar("BB_INVALIDCONF", False) is True:
275 if reparse_cnt > 20:
276 logger.error("Configuration has been re-parsed over 20 times, "
277 "breaking out of the loop...")
278 raise Exception("Too deep config re-parse loop. Check locations where "
279 "BB_INVALIDCONF is being set (ConfigParsed event handlers)")
274 self.data.setVar("BB_INVALIDCONF", False) 280 self.data.setVar("BB_INVALIDCONF", False)
275 self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles) 281 self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
282 reparse_cnt += 1
276 bb.event.fire(bb.event.ConfigParsed(), self.data) 283 bb.event.fire(bb.event.ConfigParsed(), self.data)
277 284
278 bb.parse.init_parser(self.data) 285 bb.parse.init_parser(self.data)