recipes-kernel: add libbpf

Add a recipe to build libbpf from https://github.com/libbpf/libbpf
The only patch fixes a build issue, and it's already merged upstream.

Signed-off-by: Matteo Croce <mcroce@microsoft.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Matteo Croce
2021-02-18 16:13:15 +01:00
committed by Khem Raj
parent 6eecd37b8c
commit e80d14dc55
2 changed files with 75 additions and 0 deletions
@@ -0,0 +1,31 @@
From 7df10d91db6f533cc0f6c09f4ae8ad92918c6160 Mon Sep 17 00:00:00 2001
From: Matteo Croce <mcroce@microsoft.com>
Date: Tue, 26 Jan 2021 12:41:47 +0100
Subject: [PATCH] install: don't preserve file owner
'cp -p' preserve file ownership, this may leave files owned by the
current in user in /lib .
Upstream-status: Submitted (0.4 release) [https://github.com/libbpf/libbpf/commit/767d82caab7e54238f2fc6f40ab1e4af285f2abe]
Signed-off-by: Matteo Croce <mcroce@microsoft.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index da33613..ab66edc 100644
--- a/Makefile
+++ b/Makefile
@@ -130,7 +130,7 @@ define do_s_install
$(Q)if [ ! -d '$(DESTDIR)$2' ]; then \
$(INSTALL) -d -m 755 '$(DESTDIR)$2'; \
fi;
- $(Q)cp -fpR $1 '$(DESTDIR)$2'
+ $(Q)cp -fR $1 '$(DESTDIR)$2'
endef
install: all install_headers install_pkgconfig
--
2.29.2
@@ -0,0 +1,44 @@
SUMMARY = "Library for BPF handling"
DESCRIPTION = "Library for BPF handling"
HOMEPAGE = "https://github.com/libbpf/libbpf"
SECTION = "libs"
LICENSE = "LGPLv2.1+"
# There is a typo in the filename, LPGL should really be LGPL.
# Keep this until the correct name is set upstream.
LIC_FILES_CHKSUM = "file://../LICENSE.LPGL-2.1;md5=b370887980db5dd40659b50909238dbd"
DEPENDS = "zlib elfutils"
SRC_URI = "git://github.com/libbpf/libbpf.git;protocol=https"
SRCREV = "051a4009f94d5633a8f734ca4235f0a78ee90469"
# Backported from version 0.4
SRC_URI += "file://0001-install-don-t-preserve-file-owner.patch"
PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64).*-linux"
S = "${WORKDIR}/git/src"
EXTRA_OEMAKE += "DESTDIR=${D} LIBDIR=${libdir}"
do_compile() {
if grep -q "CONFIG_BPF_SYSCALL=y" ${STAGING_KERNEL_BUILDDIR}/.config
then
oe_runmake
else
bbnote "BFP syscall is not enabled"
fi
}
do_install() {
if grep -q "CONFIG_BPF_SYSCALL=y" ${STAGING_KERNEL_BUILDDIR}/.config
then
oe_runmake install
else
bbnote "no files to install"
fi
}
BBCLASSEXTEND = "native"