summaryrefslogtreecommitdiffstats
path: root/poky/meta/classes/multilib.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/classes/multilib.bbclass')
-rw-r--r--poky/meta/classes/multilib.bbclass35
1 files changed, 24 insertions, 11 deletions
diff --git a/poky/meta/classes/multilib.bbclass b/poky/meta/classes/multilib.bbclass
index 519c1a55b..6c6499a23 100644
--- a/poky/meta/classes/multilib.bbclass
+++ b/poky/meta/classes/multilib.bbclass
@@ -11,8 +11,12 @@ python multilib_virtclass_handler () {
# There should only be one kernel in multilib configs
# We also skip multilib setup for module packages.
provides = (e.data.getVar("PROVIDES") or "").split()
- if "virtual/kernel" in provides or bb.data.inherits_class('module-base', e.data) or "make-mod-scripts" in e.data.getVar("PN"):
- raise bb.parse.SkipRecipe("We shouldn't have multilib variants for the kernel")
+ non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split()
+ bpn = e.data.getVar("BPN")
+ if "virtual/kernel" in provides or \
+ bb.data.inherits_class('module-base', e.data) or \
+ bpn in non_ml_recipes:
+ raise bb.parse.SkipRecipe("We shouldn't have multilib variants for %s" % bpn)
save_var_name=e.data.getVar("MULTILIB_SAVE_VARNAME") or ""
for name in save_var_name.split():
@@ -35,6 +39,10 @@ python multilib_virtclass_handler () {
return
if bb.data.inherits_class('cross-canadian', e.data):
+ # Multilib cross-candian should use the same nativesdk sysroot without MLPREFIX
+ e.data.setVar("RECIPE_SYSROOT", "${WORKDIR}/recipe-sysroot")
+ e.data.setVar("STAGING_DIR_TARGET", "${WORKDIR}/recipe-sysroot")
+ e.data.setVar("STAGING_DIR_HOST", "${WORKDIR}/recipe-sysroot")
e.data.setVar("MLPREFIX", variant + "-")
override = ":virtclass-multilib-" + variant
e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override)
@@ -46,10 +54,10 @@ python multilib_virtclass_handler () {
if bb.data.inherits_class('nativesdk', e.data) or bb.data.inherits_class('crosssdk', e.data):
raise bb.parse.SkipRecipe("We can't extend nativesdk recipes")
- if bb.data.inherits_class('allarch', e.data) and not bb.data.inherits_class('packagegroup', e.data):
+ if bb.data.inherits_class('allarch', e.data) and not d.getVar('MULTILIB_VARIANTS') \
+ and not bb.data.inherits_class('packagegroup', e.data):
raise bb.parse.SkipRecipe("Don't extend allarch recipes which are not packagegroups")
-
# Expand this since this won't work correctly once we set a multilib into place
e.data.setVar("ALL_MULTILIB_PACKAGE_ARCHS", e.data.getVar("ALL_MULTILIB_PACKAGE_ARCHS"))
@@ -65,12 +73,11 @@ python multilib_virtclass_handler () {
e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False))
e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override)
- # Expand the WHITELISTs with multilib prefix
- for whitelist in ["WHITELIST_GPL-3.0", "LGPLv2_WHITELIST_GPL-3.0"]:
- pkgs = e.data.getVar(whitelist)
- for pkg in pkgs.split():
- pkgs += " " + variant + "-" + pkg
- e.data.setVar(whitelist, pkgs)
+ # Expand WHITELIST_GPL-3.0 with multilib prefix
+ pkgs = e.data.getVar("WHITELIST_GPL-3.0")
+ for pkg in pkgs.split():
+ pkgs += " " + variant + "-" + pkg
+ e.data.setVar("WHITELIST_GPL-3.0", pkgs)
# DEFAULTTUNE can change TARGET_ARCH override so expand this now before update_data
newtune = e.data.getVar("DEFAULTTUNE_" + "virtclass-multilib-" + variant, False)
@@ -117,6 +124,7 @@ python __anonymous () {
clsextend.map_variable("INITSCRIPT_PACKAGES")
clsextend.map_variable("USERADD_PACKAGES")
clsextend.map_variable("SYSTEMD_PACKAGES")
+ clsextend.map_variable("UPDATERCPN")
}
PACKAGEFUNCS_append = " do_package_qa_multilib"
@@ -131,7 +139,8 @@ python do_package_qa_multilib() {
i = i[len('virtual/'):]
if (not i.startswith('kernel-module')) and (not i.startswith(mlprefix)) and \
(not 'cross-canadian' in i) and (not i.startswith("nativesdk-")) and \
- (not i.startswith("rtld")) and (not i.startswith('kernel-vmlinux')):
+ (not i.startswith("rtld")) and (not i.startswith('kernel-vmlinux')) \
+ and (not i.startswith("kernel-image")):
candidates.append(i)
if len(candidates) > 0:
msg = "%s package %s - suspicious values '%s' in %s" \
@@ -142,6 +151,10 @@ python do_package_qa_multilib() {
if not ml:
return
+ # exception for ${MLPREFIX}target-sdk-provides-dummy
+ if 'target-sdk-provides-dummy' in d.getVar('PN'):
+ return
+
packages = d.getVar('PACKAGES')
for pkg in packages.split():
check_mlprefix(pkg, 'RDEPENDS', ml)
OpenPOWER on IntegriCloud