| Summary: | do_package_qa should not error on 64 bit kernel modules + 32 bit rootfs | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Zubair Lutfullah Kakakhel <Zubair.Kakakhel> |
| Component: | kernel | Assignee: | Robert Yang <liezhi.yang> |
| Status: | RESOLVED FIXED | QA Contact: | David Lopez Barriba <davidx.lopez.barriba> |
| Severity: | normal | ||
| Priority: | Medium+ | CC: | jose.perez.carranza, randy.macleod, ross.burton, tom.zanussi |
| Version: | unspecified | ||
| Target Milestone: | 2.3 M1 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Yes (doc changes required) | |
One solution I can see would be for the kernel classes to detect 32-bit host and 64-bit kernel and add the INSANE_SKIP assignments as it splits the kernel modules out. Robert does this also occur on x86-64 with 32bit userspace? If not may not be as critical to the 2.2 release. Note that insane already has some exclusions for the kernel:
elif not ((bits == elf.abiSize()) or \
((("virtual/kernel" in provides) or bb.data.inherits_class("module", d) ) and (target_os == "linux-gnux32" or target_os == "linux-gnun32"))):
package_qa_add_message(messages, "arch", "Bit size did not match (%d to %d) %s on %s" % \
That check seems to be handling n32 options correctly. This happens with a purely 32 bit rootfs (o32 in MIPS) and a 64 bit kernel. I sent a patch to the mailing list just now: http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/mips |
Hi, If I use a 64 bit kernel + 32 bit rootfs configuration, the kernel modules are compiled as 64 bit. But do_package_qa doesn't like that in the rootfs and gives an error like this ERROR: linux-yocto-4.4+gitAUTOINC+6ec93aaa70_628bf62756-r0.1 do_package_qa: QA Issue: Bit size did not match (32 to 64) linux-yocto on work/qemumips64r2el_nf_o32-poky-linux/linux-yocto/4.4+gitAUTOINC+6ec93aaa70_628bf62756-r0.1/packages-split/kernel-module-nls-base/lib/modules/4.4.11-yocto-standard/kernel/fs/nls/nls_base.ko [arch] ERROR: linux-yocto-4.4+gitAUTOINC+6ec93aaa70_628bf62756-r0.1 do_package_qa: QA Issue: Bit size did not match (32 to 64) linux-yocto on work/qemumips64r2el_nf_o32-poky-linux/linux-yocto/4.4+gitAUTOINC+6ec93aaa70_628bf62756-r0.1/packages-split/kernel-module-ip-vs-lc/lib/modules/4.4.11-yocto-standard/kernel/net/netfilter/ipvs/ip_vs_lc.ko [arch] ERROR: linux-yocto-4.4+gitAUTOINC+6ec93aaa70_628bf62756-r0.1 do_package_qa: QA Issue: Bit size did not match (32 to 64) linux-yocto on work/qemumips64r2el_nf_o32-poky-linux/linux-yocto/4.4+gitAUTOINC+6ec93aaa70_628bf62756-r0.1/packages-split/kernel-module-nls-cp936/lib/modules/4.4.11-yocto-standard/kernel/fs/nls/nls_cp936.ko [arch] ERROR: linux-yocto-4.4+gitAUTOINC+6ec93aaa70_628bf62756-r0.1 do_package_qa: QA Issue: Bit size did not match (32 to 64) linux-yocto on work/qemumips64r2el_nf_o32-poky-linux/linux-yocto/4.4+gitAUTOINC+6ec93aaa70_628bf62756-r0.1/packages-split/kernel-module-ebt-mark/lib/modules/4.4.11-yocto-standard/kernel/net/bridge/netfilter/ebt_mark.ko [arch] ERROR: linux-yocto-4.4+gitAUTOINC+6ec93aaa70_628bf62756-r0.1 do_package_qa: QA Issue: Bit size did not match (32 to 64) linux-yocto on work/qemumips64r2el_nf_o32-poky-linux/linux-yocto/4.4+gitAUTOINC+6ec93aaa70_628bf62756-r0.1/packages-split/kernel-module-crc-itu-t/lib/modules/4.4.11-yocto-standard/kernel/lib/crc-itu-t.ko [arch] I couldn't seem to use INSANE_SKIP_[pkg] for kernel-modules. It would be nice if the arch check would be skipped. Perhaps something like this. Although, I'm not too familiar with internals. Maybe there is a better way. --- /tmp/vdoyDS_insane.bbclass +++ /home/zkakakhel/poky/meta/classes/insane.bbclass @@ -1101,6 +1101,8 @@ g = globals() for package in packages: skip = (d.getVar('INSANE_SKIP_' + package, True) or "").split() + if package.startswith("kernel-module-"): + skip = "arch" if skip: bb.note("Package %s skipping QA tests: %s" % (package, str(skip))) warnchecks = [] Thanks ZubairLK