bpftool,bpftool-native: Separate out native recipe

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>
This commit is contained in:
Khem Raj
2025-09-06 14:09:26 -07:00
parent bb2d5f9d4d
commit 6d3a650372
2 changed files with 39 additions and 2 deletions

View File

@@ -0,0 +1,38 @@
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"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
UPSTREAM_CHECK_URI = "https://www.kernel.org/"
DEPENDS = "binutils-native elfutils-native"
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 \
-C ${S}/tools/bpf/bpftool \
O=${B} \
CROSS=${TARGET_PREFIX} \
CC="${CC} ${DEBUG_PREFIX_MAP} -ffile-prefix-map=${STAGING_KERNEL_DIR}=${KERNEL_SRC_PATH} ${CFLAGS}" \
HOSTCC="${BUILD_CC} ${BUILD_CFLAGS}" \
LD="${LD}" \
AR=${AR} \
ARCH=${ARCH} \
bash_compdir=${prefix}/share/bash-completion \
"
do_compile() {
oe_runmake
}
do_install() {
oe_runmake DESTDIR=${D} install
}
FILES:${PN} += "${exec_prefix}/sbin/*"

View File

@@ -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"