A QA_check fix for x32 kernel module packages
cover A QA_check fix for x32 kernel module packages
From: Nitin A Kamble <[email protected]>
The kernel modules for x32 target are 64bit, but the QA_check was expecting them to be 32bit. The QA_check is fixed in this commit to avoid false errors.
Thanks,
Nitin
The following changes since commit 83b3e3e8e34a2512bcb1fe298715ece58c83dca3:
package_manager.py: RpmPM: don't add smart channel if already added (2014-03-03 15:05:32 -0800)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib nitin/fix1
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=nitin/fix1
Nitin A Kamble (1):
QA_check: special case kernel modules for x32 targets
meta/classes/insane.bbclass | 4 ++-- meta/classes/module.bbclass | 1 + 2 files changed, 3 insertions(+), 2 deletions(-)
Signature · 1 line
1.8.1.4
PATCH 1/1 QA_check: special case kernel modules for x32 targets
From: Nitin A Kamble <[email protected]>
The Kernel module packages for x32 target have 64 bit binaries, which breaks the QA_check expecting all the packages to be 32bit.
Make a special case for kernel module packages for x32 targets, to avoid this false error.
Fixes Bug:
[YOCTO #5903]
--- meta/classes/insane.bbclass | 4 ++-- meta/classes/module.bbclass | 1 + 2 files changed, 3 insertions(+), 2 deletions(-)
meta/classes/insane.bbclass +2 -2
@@ -443,11 +443,11 @@ def package_qa_check_arch(path,name,d, elf, messages): # Check the architecture and endiannes of the binary if not ((machine == elf.machine()) or \ - ("virtual/kernel" in provides) and (target_os == "linux-gnux32")): + (("virtual/kernel" in provides) or (KERNEL_MODULE_RECIPE == "1")) and (target_os == "linux-gnux32")): 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()) or \ - ("virtual/kernel" in provides) and (target_os == "linux-gnux32")): + (("virtual/kernel" in provides) or (KERNEL_MODULE_RECIPE == "1")) 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():
meta/classes/module.bbclass +1 -0
@@ -1,4 +1,5 @@ DEPENDS += "virtual/kernel" +KERNEL_MODULE_RECIPE = "1" inherit module-base kernel-module-split
Signature · 1 line
1.8.1.4
Re: [PATCH 1/1] QA_check: special case kernel modules for x32 targets
Review
Quoted 2 lines · On Tue, 2014-03-04 at 10:28 -0800, [email protected] wrote:
(quoted diff) +1
-1- ("virtual/kernel" in provides) and (target_os == "linux-gnux32")): + (("virtual/kernel" in provides) or (KERNEL_MODULE_RECIPE == "1")) and (target_os == "linux-gnux32")):
Can you not use bb.data.inherits_class("module") rather than adding this extra variable?
Also, out of curiosity, I don't entirely understand how the code above can possibly work. KERNEL_MODULE_RECIPE is a bitbake variable that's either defined to 1 or not defined at all, right? Is there some special magic nowadays that allows you to refer to it transparently from python code without using d.getVar()?
p.
Re: [PATCH 1/1] QA_check: special case kernel modules for x32 targets
Quoted 5 lines · Phil Blundell
Review
Quoted 2 lines · On Tue, 2014-03-04 at 10:28 -0800, [email protected] wrote:
(quoted diff) +1
-1- ("virtual/kernel" in provides) and (target_os == "linux-gnux32")): + (("virtual/kernel" in provides) or (KERNEL_MODULE_RECIPE == "1")) and (target_os == "linux-gnux32")):Can you not use
bb.data.inherits_class("module")rather than adding this extra variable?
This would simplify the code.
Quoted 5 lines
Also, out of curiosity, I don't entirely understand how the code above can possibly work.
KERNEL_MODULE_RECIPEis a bitbake variable that's either defined to 1 or not defined at all, right? Is there some special magic nowadays that allows you to refer to it transparently from python code without usingd.getVar()?
There is no such special magic. This fix need to be fixed.
Thanks,
Nitin
Quoted 3 lines
p.