bitbake: BBHandler: prompt error when task name contain expression

Task name contain expresion (eg, do_foo_remove_bar) can cause fatal error.

Check for naming before addtask. Prompt with understandable error message
when expression found in task name.

[YOCTO #8805]

(Bitbake rev: 5b4a5bb0960386f9c524c220e43a16e60e38964d)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Lee Chee Yang
2020-11-05 08:59:21 +08:00
committed by Richard Purdie
parent bf0e7912c8
commit 03f8c9d9f9

View File

@@ -13,7 +13,7 @@
#
import re, bb, os
import bb.build, bb.utils
import bb.build, bb.utils, bb.data_smart
from . import ConfHandler
from .. import resolve_file, ast, logger, ParseError
@@ -233,6 +233,10 @@ def feeder(lineno, s, fn, root, statements, eof=False):
if taskexpression.count(word) > 1:
logger.warning("addtask contained multiple '%s' keywords, only one is supported" % word)
# Check and warn for having task with exprssion as part of task name
for te in taskexpression:
if any( ( "%s_" % keyword ) in te for keyword in bb.data_smart.__setvar_keyword__ ):
raise ParseError("Task name '%s' contains a keyword which is not recommended/supported.\nPlease rename the task not to include the keyword.\n%s" % (te, ("\n".join(map(str, bb.data_smart.__setvar_keyword__)))), fn)
ast.handleAddTask(statements, fn, lineno, m)
return