summaryrefslogtreecommitdiffstats
path: root/meta/classes/multilib.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-09-22 22:15:58 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-09-22 22:15:58 +0100
commitfbe051130bccd02b2f126b4b98a142c82a6d8346 (patch)
tree076ac87b4cc19875bbe603d1cc1a0fc3d0cc6598 /meta/classes/multilib.bbclass
parent3cd1a7d8ef381ed81c458f3e5e6f2e3774342b57 (diff)
downloadopenembedded-core-fbe051130bccd02b2f126b4b98a142c82a6d8346.tar.gz
multilib.bbclass: Partially fix multlib image targets
This patch partially fixes problems when building multilib extended images such as libXX-core-image-minimal. Its not a perfect/complete solution but works much better than any previous code did. [YOCTO #1496] (partial) [YOCTO #1497] (partial) [YOCTO #1498] (partial) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/multilib.bbclass')
-rw-r--r--meta/classes/multilib.bbclass13
1 files changed, 13 insertions, 0 deletions
diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index 138dd27a6e..98f69116b8 100644
--- a/meta/classes/multilib.bbclass
+++ b/meta/classes/multilib.bbclass
@@ -11,6 +11,10 @@ python multilib_virtclass_handler () {
if bb.data.inherits_class('kernel', e.data) or bb.data.inherits_class('module-base', e.data) or bb.data.inherits_class('allarch', e.data):
raise bb.parse.SkipPackage("We shouldn't have multilib variants for the kernel")
+ if bb.data.inherits_class('image', e.data):
+ e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False))
+ return
+
save_var_name=e.data.getVar("MULTILIB_SAVE_VARNAME", True) or ""
for name in save_var_name.split():
val=e.data.getVar(name, True)
@@ -48,6 +52,15 @@ python __anonymous () {
newdeps.append(multilib_extend_name(variant, dep))
d.setVar(varname, " ".join(newdeps))
+ if bb.data.inherits_class('image', d):
+ map_dependencies("PACKAGE_INSTALL", d)
+ pinstall = d.getVar("PACKAGE_INSTALL", True) + " " + d.getVar("MULTILIB_PACKAGE_INSTALL", False)
+ d.setVar("MULTILIB_PACKAGE_INSTALL", pinstall)
+ d.setVar("PACKAGE_INSTALL", "")
+ # FIXME, we need to map this to something, not delete it!
+ d.setVar("PACKAGE_INSTALL_ATTEMPTONLY", "")
+ return
+
pkgs_mapping = []
for pkg in (d.getVar("PACKAGES", True) or "").split():
if pkg.startswith(variant):