summaryrefslogtreecommitdiffstats
path: root/meta/classes/allarch.bbclass
diff options
context:
space:
mode:
authorKai Kang <kai.kang@windriver.com>2018-09-11 19:25:17 -0400
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-09-12 08:17:37 +0100
commita23c482cab4f874f4a6a6889716123569eb5ece9 (patch)
treeaf71d8475fc23e698f0e986ac52c5f96f1767efc /meta/classes/allarch.bbclass
parent65cded55fa96b1ba72149a31689c081ac27af7f7 (diff)
downloadopenembedded-core-contrib-a23c482cab4f874f4a6a6889716123569eb5ece9.tar.gz
allarch: only enable allarch when multilib is not used
Some allarch packages rdepends non-allarch packages. when multilib is used, it doesn't expand the dependency chain correctly, e.g. core-image-sato -> ca-certificates(allarch) -> openssl we expect dependency chain for lib32-core-image-sato: lib32-core-image-sato -> ca-certificates(allarch) -> lib32-openssl it should install lib32-openssl for ca-certificates but openssl is still wrongly required. Only enable allarch when multilib is not used to fix the issue. Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/allarch.bbclass')
-rw-r--r--meta/classes/allarch.bbclass13
1 files changed, 12 insertions, 1 deletions
diff --git a/meta/classes/allarch.bbclass b/meta/classes/allarch.bbclass
index 1eebe0bf2e..5bd5c44a27 100644
--- a/meta/classes/allarch.bbclass
+++ b/meta/classes/allarch.bbclass
@@ -2,7 +2,18 @@
# This class is used for architecture independent recipes/data files (usually scripts)
#
-PACKAGE_ARCH = "all"
+python allarch_package_arch_handler () {
+ if bb.data.inherits_class("native", d) or bb.data.inherits_class("nativesdk", d) \
+ or bb.data.inherits_class("crosssdk", d):
+ return
+
+ variants = d.getVar("MULTILIB_VARIANTS")
+ if not variants:
+ d.setVar("PACKAGE_ARCH", "all" )
+}
+
+addhandler allarch_package_arch_handler
+allarch_package_arch_handler[eventmask] = "bb.event.RecipePreFinalise"
python () {
# Allow this class to be included but overridden - only set