[8/8] insane.bbclass: avoid errors for x32 kernel

Submitted by Nitin A Kamble on Nov. 16, 2011, 7:14 p.m.


Message ID 819eacfcb191817adb70e29d57deaf958924c653.1321470759.git.nitin.a.kamble@intel.com
State Accepted
Commit c9963542b17537f18548616c9ad4f1d92f42bffb
Headers show

Commit Message

Nitin A Kamble Nov. 16, 2011, 7:14 p.m.
From: Nitin A Kamble <nitin.a.kamble@intel.com>

x32 abi of x86_64 has 32bit userspace and the kernel is 64bit.

The qa checking code was reporting this as errors for x32 kernel
files and modules.

This commit extends the condition in the checking code to avoid
throwing the bitsize not matched error for x32 kernel files.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
 meta/classes/insane.bbclass |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index a65f3ee..5726e69 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -211,6 +211,7 @@  def package_qa_check_arch(path,name,d, elf, messages):
     target_os   = d.getVar('TARGET_OS', True)
     target_arch = d.getVar('TARGET_ARCH', True)
+    provides = d.getVar('PROVIDES', d, True)
     # FIXME: Cross package confuse this check, so just skip them
     for s in ['cross', 'nativesdk', 'cross-canadian']:
@@ -230,9 +231,10 @@  def package_qa_check_arch(path,name,d, elf, messages):
     if not machine == elf.machine():
         messages.append("Architecture did not match (%d to %d) on %s" % \
                  (machine, elf.machine(), package_qa_clean_path(path,d)))
-    elif not bits == elf.abiSize():
-        messages.append("Bit size did not match (%d to %d) on %s" % \
-                 (bits, elf.abiSize(), package_qa_clean_path(path,d)))
+    elif not ((bits == elf.abiSize()) or  \
+	("virtual/kernel" in provides) and (target_os == "linux-gnux32")):
+        messages.append("Bit size did not match (%d to %d) %s on %s" % \
+                 (bits, elf.abiSize(), bpn, package_qa_clean_path(path,d)))
     elif not littleendian == elf.isLittleEndian():
         messages.append("Endiannes did not match (%d to %d) on %s" % \
                  (littleendian, elf.isLittleEndian(), package_qa_clean_path(path,d)))