diff mbox series

[meta-oe,1/2] bpftool,bpftool-native: Separate out native recipe

Message ID 20250906211646.3814323-1-raj.khem@gmail.com
State New
Headers show
Series [meta-oe,1/2] bpftool,bpftool-native: Separate out native recipe | expand

Commit Message

Khem Raj Sept. 6, 2025, 9:16 p.m. UTC
build uses prepared sourcedir for kernel and relying
on target kernel recipe to prepare this is not the correct
thing for native package. Since the kernel will need target
dependencies cross-compiler etc. to build/prepare the kernel sourcedir

This issue is revealed when bpftool-native is built for riscv64
it ends up in build errors

ERROR: bpftool-native-1.0-r0 do_configure: The sstate manifest for task 'linux-libc-headers:populate_sysroot' (multilib variant '') could not be found.
The pkgarchs considered were: qemuriscv64, allarch, x86_64_x86_64-nativesdk.
But none of these manifests exists:
    /mnt/b/yoe/master/sources/poky/build/tmp/sstate-control/manifest-qemuriscv64-linux-libc-headers.populate_sysroot
    /mnt/b/yoe/master/sources/poky/build/tmp/sstate-control/manifest-allarch-linux-libc-headers.populate_sysroot
    /mnt/b/yoe/master/sources/poky/build/tmp/sstate-control/manifest-x86_64_x86_64-nativesdk-linux-libc-headers.populate_sysroot
ERROR: Logfile of failure stored in: /mnt/b/yoe/master/sources/poky/build/tmp/work/x86_64-linux/bpftool-native/1.0/temp/log.do_configure.2509356

Therefore separate it out into independent recipe and use latest stable
kernel to build it.

Enable musl builds as well for bpftool, it works now.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../{bpftool.bb => bpftool-native_6.16.bb}    | 30 ++++++-------------
 meta-oe/recipes-kernel/bpftool/bpftool.bb     |  3 +-
 2 files changed, 10 insertions(+), 23 deletions(-)
 copy meta-oe/recipes-kernel/bpftool/{bpftool.bb => bpftool-native_6.16.bb} (55%)
diff mbox series

Patch

diff --git a/meta-oe/recipes-kernel/bpftool/bpftool.bb b/meta-oe/recipes-kernel/bpftool/bpftool-native_6.16.bb
similarity index 55%
copy from meta-oe/recipes-kernel/bpftool/bpftool.bb
copy to meta-oe/recipes-kernel/bpftool/bpftool-native_6.16.bb
index d19746184c..bc7712ce4d 100644
--- a/meta-oe/recipes-kernel/bpftool/bpftool.bb
+++ b/meta-oe/recipes-kernel/bpftool/bpftool-native_6.16.bb
@@ -2,12 +2,17 @@  SUMMARY = "Inspect and manipulate eBPF programs and maps"
 DESCRIPTION = "bpftool is a kernel tool for inspection and simple manipulation \
 of eBPF programs and maps."
 LICENSE = "GPL-2.0-only"
-DEPENDS = "binutils elfutils elfutils-native"
-PROVIDES = "virtual/bpftool"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+UPSTREAM_CHECK_URI = "https://www.kernel.org/"
 
-inherit bash-completion kernelsrc kernel-arch
+DEPENDS = "binutils-native elfutils-native"
 
-do_populate_lic[depends] += "virtual/kernel:do_shared_workdir"
+inherit native bash-completion
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v6.x/linux-${PV}.tar.xz"
+SRC_URI[sha256sum] = "1a4be2fe6b5246aa4ac8987a8a4af34c42a8dd7d08b46ab48516bcc1befbcd83"
+
+S = "${UNPACKDIR}/linux-${PV}"
 
 EXTRA_OEMAKE = "\
     V=1 \
@@ -22,13 +27,6 @@  EXTRA_OEMAKE = "\
     bash_compdir=${prefix}/share/bash-completion \
 "
 
-SECURITY_CFLAGS = ""
-
-do_configure[depends] += "virtual/kernel:do_shared_workdir"
-
-COMPATIBLE_HOST = "(x86_64|aarch64|riscv64).*-linux"
-COMPATIBLE_HOST:libc-musl = 'null'
-
 do_compile() {
     oe_runmake
 }
@@ -37,14 +35,4 @@  do_install() {
     oe_runmake DESTDIR=${D} install
 }
 
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-python do_package:prepend() {
-    d.setVar('PKGV', d.getVar("KERNEL_VERSION").split("-")[0])
-}
-
-B = "${WORKDIR}/${BPN}-${PV}"
-
 FILES:${PN} += "${exec_prefix}/sbin/*"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-kernel/bpftool/bpftool.bb b/meta-oe/recipes-kernel/bpftool/bpftool.bb
index d19746184c..4f4d4a8670 100644
--- a/meta-oe/recipes-kernel/bpftool/bpftool.bb
+++ b/meta-oe/recipes-kernel/bpftool/bpftool.bb
@@ -27,7 +27,6 @@  SECURITY_CFLAGS = ""
 do_configure[depends] += "virtual/kernel:do_shared_workdir"
 
 COMPATIBLE_HOST = "(x86_64|aarch64|riscv64).*-linux"
-COMPATIBLE_HOST:libc-musl = 'null'
 
 do_compile() {
     oe_runmake
@@ -47,4 +46,4 @@  B = "${WORKDIR}/${BPN}-${PV}"
 
 FILES:${PN} += "${exec_prefix}/sbin/*"
 
-BBCLASSEXTEND = "native nativesdk"
+BBCLASSEXTEND = "nativesdk"