From da798db0a48282e3d4f58890a7aec42c3deff0b8 Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Thu, 14 Feb 2019 14:37:19 +0800 Subject: base.bbclass: Check BuildStarted for HOSTTOOLS There might be no bb.event.ConfigParsed event if bitbake server is running, so check bb.event.BuildStarted too to make sure HOSTTOOLS_DIR exists. Fixed: $ export BB_SERVER_TIMEOUT=-1 $ bitbake quilt-native $ rm -fr tmp $ bitbake quilt-native ERROR: Error running gcc --version: /bin/sh: gcc: command not found This error is caused by enable_uninative(), it runs twice (ConfigParsed and BuildStarted), the error would happen when there is no ConfigParsed event (no hosttools is created), but BuildStarted. This patch can fix the problem. [YOCTO #13022] Signed-off-by: Robert Yang Signed-off-by: Richard Purdie --- meta/classes/base.bbclass | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'meta/classes') diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index f1a3c0e53e..8ece51fe42 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -228,6 +228,12 @@ python base_eventhandler() { if not d.getVar("NATIVELSBSTRING", False): d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d)) d.setVar('BB_VERSION', bb.__version__) + + # There might be no bb.event.ConfigParsed event if bitbake server is + # running, so check bb.event.BuildStarted too to make sure ${HOSTTOOLS_DIR} + # exists. + if isinstance(e, bb.event.ConfigParsed) or \ + (isinstance(e, bb.event.BuildStarted) and not os.path.exists(d.getVar('HOSTTOOLS_DIR'))): # Works with the line in layer.conf which changes PATH to point here setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS', d) setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS_NONFATAL', d, fatal=False) -- cgit 1.2.3-korg