yocto-kernel bugfix
cover yocto-kernel bugfix
This patchset contains a fix for YOCTO #3746.
Please pull into poky/master.
The following changes since commit a63229917a5708de2d161aba0d67168ce0da6365:
meta-yocto-bsp: update reference board SRCREVs (2013-07-10 09:45:51 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib.git tzanussi/bug-3746-fix
http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=tzanussi/bug-3746-fix
Tom Zanussi (1):
yocto-kernel: make BBLAYERS parsing more robust
scripts/lib/bsp/kernel.py | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-)
Signature · 1 line
1.7.11.4
PATCH 1/1 yocto-kernel: make BBLAYERS parsing more robust
This allows the BBLAYERS parsing code to handle cases where BBLAYERS is spread across multiple assignments or all on a single line, within double or single quotes.
Fixes [YOCTO #3746].
Signed-off-by Tom Zanussi <[email protected]>
--- scripts/lib/bsp/kernel.py | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-)
scripts/lib/bsp/kernel.py +24 -14
@@ -60,14 +60,12 @@ def find_bblayers(scripts_path): in_bblayers = True quotes = line.strip().count('"') if quotes > 1: - break + in_bblayers = False continue if in_bblayers: bblayers_lines.append(line) if line.strip().endswith("\""): - break - else: - continue + in_bblayers = False for i, line in enumerate(bblayers_lines): if line.strip().endswith("\\"):
@@ -75,19 +73,31 @@ def find_bblayers(scripts_path): bblayers_line = " ".join(bblayers_lines) - start_quote = bblayers_line.find("\"") - if start_quote == -1: - print "Invalid BBLAYERS found in %s, exiting" % bblayers_conf - sys.exit(1) + openquote = '' + for c in bblayers_line: + if c == '\"' or c == '\'': + if openquote: + if c != openquote: + print "Invalid BBLAYERS found in %s, exiting" % bblayers_conf + sys.exit(1) + else: + openquote = '' + else: + openquote = c - start_quote += 1 - end_quote = bblayers_line.find("\"", start_quote) - if end_quote == -1: + if openquote: print "Invalid BBLAYERS found in %s, exiting" % bblayers_conf sys.exit(1) - bblayers_line = bblayers_line[start_quote:end_quote] - layers = bblayers_line.split() + bblayers_line = bblayers_line.strip().replace('\"', '') + bblayers_line = bblayers_line.strip().replace('\'', '') + + raw_layers = bblayers_line.split() + + for layer in raw_layers: + if layer == 'BBLAYERS' or '=' in layer: + continue + layers.append(layer) f.close()
@@ -114,7 +124,7 @@ def find_bsp_layer(scripts_path, machine): layers = find_bblayers(scripts_path) for layer in layers: - if machine in layer: + if layer.endswith(machine): return layer print "Unable to find the BSP layer for machine %s." % machine
Signature · 1 line
1.7.11.4