Patchwork [3/5] multilib: set NO_MULTILIB for kernel recipes

login
register
mail settings
Submitter Dongxiao Xu
Date Sept. 2, 2011, 9:03 a.m.
Message ID <ebfc24b94166e681b4edad8db4df57fff1d5e79b.1314953755.git.dongxiao.xu@intel.com>
Download mbox | patch
Permalink /patch/10893/
State New, archived
Headers show

Comments

Dongxiao Xu - Sept. 2, 2011, 9:03 a.m.
Kernel in a Linux system shouldn't be multilib, thus setting NO_MULTILIB
flag for kernel.bbclass. Besides if other recipes have dependency on
virtual/kernel or kernel-module-*, we don't extend name for them.

Some part of the commit is derived from Ke's prototype in:
http://bugzilla.pokylinux.org/show_bug.cgi?id=1361

[YOCTO #1361]

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Yu Ke <ke.yu@intel.com>
---
 meta/classes/kernel.bbclass   |    1 +
 meta/classes/multilib.bbclass |   11 +++++++++++
 meta/conf/multilib.conf       |    1 -
 3 files changed, 12 insertions(+), 1 deletions(-)

Patch

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index bc1baa0..d522b4c 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -9,6 +9,7 @@  INHIBIT_DEFAULT_DEPS = "1"
 KERNEL_IMAGETYPE ?= "zImage"
 INITRAMFS_IMAGE ?= ""
 INITRAMFS_TASK ?= ""
+NO_MULTILIB = "1"
 
 python __anonymous () {
     kerneltype = bb.data.getVar('KERNEL_IMAGETYPE', d, 1) or ''
diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index 5d975fd..1908aa1 100644
--- a/meta/classes/multilib.bbclass
+++ b/meta/classes/multilib.bbclass
@@ -6,6 +6,11 @@  python multilib_virtclass_handler () {
     variant = e.data.getVar("BBEXTENDVARIANT", True)
     if cls != "multilib" or not variant:
         return
+
+    if e.data.getVar("NO_MULTILIB", True) == "1":
+        bb.warn("NO_MULTILIB is set for %s, using the default instead." % e.data.getVar("PN", True))
+        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)
@@ -28,7 +33,13 @@  STAGINGCC_prepend = "${BBEXTENDVARIANT}-"
 python __anonymous () {
     variant = d.getVar("BBEXTENDVARIANT", True)
 
+    if d.getVar("NO_MULTILIB", True) == "1":
+        bb.warn("NO_MULTILIB is set for %s, using the default instead." % d.getVar("PN", True))
+        return
+
     def extend_name(name):
+        if name == "virtual/kernel" or name.startswith("kernel-module"):
+            return name
         if name.startswith("virtual/"):
             subs = name.split("/", 1)[1]
             if not subs.startswith(variant):
diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf
index 36793d2..9fca715 100644
--- a/meta/conf/multilib.conf
+++ b/meta/conf/multilib.conf
@@ -237,7 +237,6 @@  BBCLASSEXTEND_append_pn-libxxf86vm = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-libzypp = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-lighttpd = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-linux-libc-headers = " ${MULTILIBS}"
-BBCLASSEXTEND_append_pn-linux-yocto = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-logrotate = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-lrzsz = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-lsb = " ${MULTILIBS}"