[OE-core] [PATCH 1/1] multilib/bitbake.conf: default to contain MLPREFIX in RECIPE_SYSROOT

Chen Qi Qi.Chen at windriver.com
Fri Apr 20 08:59:29 UTC 2018


We set RECIPE_SYSROOT to ${WORKDIR}/recipe-sysroot in bitbake.conf and
${WORKDIR}/${MLPREFIX}recipe-sysroot in multilib.conf.

The problem is about nativesdk recipes. MLPREFIX is set to "nativesdk-"
in nativesdk.bbclass. So if we don't include (or require) multilib.conf,
nativesdk recipe's RECIPE_SYSROOT is 'recipe-sysroot'; if we include (or
require) multilib.conf, its RECIPE_SYSROOT is 'nativesdk-recipe-sysroot'.

Just including multilib.conf or not would affect nativesdk reicpes
RECIPE_SYSROOT value. This is not reasonable. And in fact it sometimes
causes problem for us. When we change configuration about multilib
in the same build directory, we sometimes get the following build failure.

  ld: cannot find crtn.o: No such file or directory

Not only that, sometimes the manifest under sysroot-components of
nativesdk recipes have entries starting with 'recipe-sysroot', but
the actual files that should be removed are under 'nativesdk-recipe-sysroot'.
And that causes problem for prepare_recipe_sysroot task! Errors are like:

  Exception: FileExistsError: [Errno 17] File exists

So change RECIPE_SYSROOT to contain MLPREFIX by default. In this way,
nativesdk recipes would have their RECIPE_SYSROOT set to
nativesdk-recipe-sysroot. After all, changing MULTILIBS should not
affect this value for nativesdk recipe.

Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
---
 meta/conf/bitbake.conf  | 2 +-
 meta/conf/multilib.conf | 4 ----
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 92aa944..7e5baec 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -368,7 +368,7 @@ B = "${S}"
 
 STAGING_DIR = "${TMPDIR}/sysroots"
 COMPONENTS_DIR = "${STAGING_DIR}-components"
-RECIPE_SYSROOT = "${WORKDIR}/recipe-sysroot"
+RECIPE_SYSROOT = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
 RECIPE_SYSROOT_NATIVE = "${WORKDIR}/recipe-sysroot-native"
 
 STAGING_DIR_NATIVE = "${RECIPE_SYSROOT_NATIVE}"
diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf
index e74dec8..fd6a868 100644
--- a/meta/conf/multilib.conf
+++ b/meta/conf/multilib.conf
@@ -6,10 +6,6 @@ MULTILIB_SAVE_VARNAME = "DEFAULTTUNE TARGET_ARCH TARGET_SYS TARGET_VENDOR"
 
 MULTILIBS ??= "multilib:lib32"
 
-STAGING_DIR_HOST = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
-STAGING_DIR_TARGET = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
-RECIPE_SYSROOT = "${WORKDIR}/${MLPREFIX}recipe-sysroot"
-
 INHERIT += "multilib_global"
 
 BBCLASSEXTEND_append = " ${MULTILIBS}"
-- 
1.9.1




More information about the Openembedded-core mailing list