base.bbclass: Ensure finalised data is displayed in build banner

The build banner displayed at the start of builds can be misleading since
the data store has not been finalised. As easy way to illustrate this is
to use something like:

DEFAULTTUNE = "i586"
DEFAULTTUNE_<machineoverride> = "core2"

and the banner will display the i586 tune yet the core2 tune will be
used. We can avoid this if we finalise a copy of the data before
displaying it.

[YOCTO #4225]

(From OE-Core rev: bdce39f22a0e8c8e1cf237322657220e4201077d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2013-06-20 16:48:23 +01:00
parent ed4a919cae
commit 17b1507c02
1 changed files with 4 additions and 2 deletions

View File

@ -309,13 +309,15 @@ python base_eventhandler() {
oe.utils.features_backfill("MACHINE_FEATURES", e.data)
if isinstance(e, bb.event.BuildStarted):
localdata = bb.data.createCopy(e.data)
bb.data.update_data(localdata)
statuslines = []
for func in oe.data.typed_value('BUILDCFG_FUNCS', e.data):
for func in oe.data.typed_value('BUILDCFG_FUNCS', localdata):
g = globals()
if func not in g:
bb.warn("Build configuration function '%s' does not exist" % func)
else:
flines = g[func](e.data)
flines = g[func](localdata)
if flines:
statuslines.extend(flines)