On 12/22/21 01:09, Richard Purdie wrote:
On Tue, 2021-12-21 at 11:08 -0800, Saul Wold wrote:
Stop ignoring or skipping the kernel and kernel modules code in the
split debug and striping functions, this will allow create_spdx to
process the kernel and modules.
Signed-off-by: Saul Wold <[email protected]>
---
meta/classes/package.bbclass | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 84eafbd529..4b7fe4f1e1 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -390,10 +390,6 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir,
debugappend, debugsrcdir,
dvar = d.getVar('PKGD')
objcopy = d.getVar("OBJCOPY")
- # We ignore kernel modules, we don't generate debug info files.
- if file.find("/lib/modules/") != -1 and file.endswith(".ko"):
- return (file, sources)
-
newmode = None
if not os.access(file, os.W_OK) or os.access(file, os.R_OK):
origmode = os.stat(file)[stat.ST_MODE]
@@ -1147,7 +1143,7 @@ python split_and_strip_files () {
if file.endswith(".ko") and file.find("/lib/modules/") != -1:
kernmods.append(file)
- continue
+
if oe.package.is_static_lib(file):
staticlibs.append(file)
continue
@@ -1165,7 +1161,7 @@ python split_and_strip_files () {
continue
# Check its an executable
if (s[stat.ST_MODE] & stat.S_IXUSR) or (s[stat.ST_MODE] &
stat.S_IXGRP) or (s[stat.ST_MODE] & stat.S_IXOTH) \
- or ((file.startswith(libdir) or file.startswith(baselibdir)) and
(".so" in f or ".node" in f)):
+ or ((file.startswith(libdir) or file.startswith(baselibdir)) and (".so" in
f or ".node" in f)) or (f.startswith('vmlinux') or ".ko" in f):
if cpath.islink(file):
checkelflinks[file] = ltarget
edgerouter:
https://autobuilder.yoctoproject.org/typhoon/#/builders/62/builds/4513
https://autobuilder.yoctoproject.org/typhoon/#/builders/111/builds/2507/steps/11/logs/stdio
So I have been digging into this and it seems that an option was added a
decade ago or so to strip the kernel/vmlinux when it's too big, this was
done for at least the routerstationpro according to bug #3515 [0], and
persists with the edgerouter, although I am not sure if it would still
actually be required as the edgerouter also uses the
KERNEL_ALT_IMAGETYPE to create a smaller binary kernel image.
The change I proposed causes the all kernels to be stripped all the time
as part of the split_and_strip_files(). As I see it there few different
options:
1) Set KERNEL_IMAGE_EXTRA_STRIP_SECTIONS = "" in create_spdx.bbclass
- This solves the problem with create_spdx.bbclass is in use, but not
the general case
2) Remove the KERNEL_IMAGE_EXTRA_STRIP_SECTIONS from edgerouter.conf
- Will solve the edgerouter case but may not solve other usages
unknown to me.
- Does anyone know of other machines/layers usage of this variable?
3) deprecate the kernel.bbclass:do_strip function in favor of using the
split_and_strip_files() of package.bbclass
4) Change error to warning in packaging.bbclass for the kernel only
- This would explain that a kernel image (vmlinux) is already
stripped and extended package data would not be available for for SPDX
creation.
RP, Bruce, Joshua: Thoughts?
Sau!
[0] https://bugzilla.yoctoproject.org/show_bug.cgi?id=3515
qemux86 musl cryptodev:
https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/4512/steps/11/logs/stdio
qemux86-64 musl cryptodev:
https://autobuilder.yoctoproject.org/typhoon/#/builders/45/builds/4526
qemux86 cryptodev:
https://autobuilder.yoctoproject.org/typhoon/#/builders/52/builds/4476/steps/11/logs/stdio
I tried these and have not been able to reproduce the failure.
selftest failure in linux-yocto:
https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/2981/steps/14/logs/stdio
(file truncated makes it sound like a race?)
stap kernel module failure:
https://autobuilder.yoctoproject.org/typhoon/#/builders/110/builds/3395/steps/13/logs/stdio
(race/intermittent?)
another kernel module race:
https://autobuilder.yoctoproject.org/typhoon/#/builders/63/builds/4480/steps/16/logs/stdio
Might need to try this on the AB once I resolve the kernel stripping
issue above.
Sau!
Cheers,
Richard
--
Sau!
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#160172):
https://lists.openembedded.org/g/openembedded-core/message/160172
Mute This Topic: https://lists.openembedded.org/mt/87884056/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-