Skip to contentSkip to conversation

multilib/bitbake.conf: default to contain MLPREFIX in RECIPE_SYSROOT

PATCH New Chen Qi 1 participant 2 messages Apr 20, 2018

lore
Share & tools
lore

Chen Qi

author
#0 lore raw

cover multilib/bitbake.conf: default to contain MLPREFIX in RECIPE_SYSROOT

The following changes since commit 71b4ae25612d6dd3687fdd583ed0077e744899cb:

glib-2.0/glib.inc: fix broken mingw build (2018-04-20 08:19:46 +0100)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib ChenQi/recipe-sysroot-mlprefix
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/recipe-sysroot-mlprefix

Chen Qi (1):
multilib/bitbake.conf: default to contain MLPREFIX in RECIPE_SYSROOT

 meta/conf/bitbake.conf  | 2 +-
 meta/conf/multilib.conf | 4 ----
 2 files changed, 1 insertion(+), 5 deletions(-)
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH 1/1 multilib/bitbake.conf: default to contain MLPREFIX in RECIPE_SYSROOT

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.

---
 meta/conf/bitbake.conf  | 2 +-
 meta/conf/multilib.conf | 4 ----
 2 files changed, 1 insertion(+), 5 deletions(-)
meta/conf/bitbake.conf +1 -1
index 92aa944..7e5baec 100644
@@ -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}"
meta/conf/multilib.conf +0 -4
index e74dec8..fd6a868 100644
@@ -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}"
Signature · 1 line
1.9.1