package/bpftool: new package
Move the target bpftool build out of linux-tools so that it is up to date. This also fixes build issues due to differences between kernel versions. The latest version should be fully backwards compatible. The host bpftool is needed for enabling features such as the systemd bpf-framework (to be added in a future patch). Use the git download method to get the libbpf submodule. Signed-off-by: James Hilliard <james.hilliard1@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
parent
7c7de551c5
commit
3675131e6c
@ -146,6 +146,14 @@ endif
|
||||
|
||||
comment "Legacy options removed in 2022.02"
|
||||
|
||||
config BR2_PACKAGE_LINUX_TOOLS_BPFTOOL
|
||||
bool "bpftool was moved"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_BPFTOOL
|
||||
help
|
||||
The linux-tools bpftool build has been moved out
|
||||
of the linux-tools package.
|
||||
|
||||
config BR2_TARGET_UBOOT_NEEDS_PYTHON2
|
||||
bool "host-python 2.7 support for U-Boot was removed"
|
||||
select BR2_LEGACY
|
||||
|
@ -1279,6 +1279,7 @@ F: configs/pine64_sopine_defconfig
|
||||
|
||||
N: James Hilliard <james.hilliard1@gmail.com>
|
||||
F: package/apcupsd/
|
||||
F: package/bpftool/
|
||||
F: package/exfatprogs/
|
||||
F: package/gensio/
|
||||
F: package/lua-std-debug/
|
||||
|
@ -86,6 +86,7 @@ menu "Debugging, profiling and benchmark"
|
||||
source "package/babeltrace2/Config.in"
|
||||
source "package/blktrace/Config.in"
|
||||
source "package/bonnie/Config.in"
|
||||
source "package/bpftool/Config.in"
|
||||
source "package/cache-calibrator/Config.in"
|
||||
source "package/clinfo/Config.in"
|
||||
source "package/coremark/Config.in"
|
||||
|
18
package/bpftool/Config.in
Normal file
18
package/bpftool/Config.in
Normal file
@ -0,0 +1,18 @@
|
||||
config BR2_PACKAGE_BPFTOOL
|
||||
bool "bpftool"
|
||||
depends on !BR2_nios2 # binutils
|
||||
depends on BR2_USE_WCHAR # binutils, elfutils
|
||||
depends on !BR2_STATIC_LIBS # elfutils
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils
|
||||
depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils
|
||||
select BR2_PACKAGE_BINUTILS
|
||||
select BR2_PACKAGE_ELFUTILS
|
||||
help
|
||||
bpftool is a tool for for inspection and simple manipulation
|
||||
of eBPF programs and maps.
|
||||
|
||||
comment "bpftool needs a uClibc or glibc toolchain w/ wchar, dynamic library, threads"
|
||||
depends on !BR2_nios2
|
||||
depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \
|
||||
|| !BR2_TOOLCHAIN_HAS_THREADS \
|
||||
|| !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC)
|
5
package/bpftool/bpftool.hash
Normal file
5
package/bpftool/bpftool.hash
Normal file
@ -0,0 +1,5 @@
|
||||
# Locally calculated
|
||||
sha256 c868cb85bf44195ec6cd20649c3db4f7aff64a38d950a1c2911d981fb2d7042c bpftool-a7f0e7f057283ae8af3de4578bcb8b7ee80b7144-br1.tar.gz
|
||||
sha256 7c588754d5e81e92e2a12e47cf78949d485c9c22b4850f12d21b3835c85947d1 LICENSE
|
||||
sha256 6313108c23efffa36948f8b2cff1560a5935373b527b0e1a837cc77e6ed1bacd LICENSE.BSD-2-Clause
|
||||
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL-2.0
|
45
package/bpftool/bpftool.mk
Normal file
45
package/bpftool/bpftool.mk
Normal file
@ -0,0 +1,45 @@
|
||||
################################################################################
|
||||
#
|
||||
# bpftool
|
||||
#
|
||||
################################################################################
|
||||
|
||||
BPFTOOL_VERSION = a7f0e7f057283ae8af3de4578bcb8b7ee80b7144
|
||||
BPFTOOL_SITE = https://github.com/libbpf/bpftool
|
||||
BPFTOOL_SITE_METHOD = git
|
||||
BPFTOOL_GIT_SUBMODULES = YES
|
||||
BPFTOOL_LICENSE = GPL-2.0, BSD-2-Clause
|
||||
BPFTOOL_LICENSE_FILES = LICENSE LICENSE.BSD-2-Clause LICENSE.GPL-2.0
|
||||
BPFTOOL_DEPENDENCIES = binutils elfutils
|
||||
HOST_BPFTOOL_DEPENDENCIES = host-elfutils host-pkgconf host-zlib
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBCAP),y)
|
||||
BPFTOOL_DEPENDENCIES += libcap
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
||||
BPFTOOL_DEPENDENCIES += zlib
|
||||
endif
|
||||
|
||||
define BPFTOOL_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) \
|
||||
-C $(@D)/src
|
||||
endef
|
||||
|
||||
define HOST_BPFTOOL_BUILD_CMDS
|
||||
$(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) \
|
||||
-C $(@D)/src
|
||||
endef
|
||||
|
||||
define BPFTOOL_INSTALL_TARGET_CMDS
|
||||
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) \
|
||||
-C $(@D)/src install DESTDIR="$(TARGET_DIR)" prefix=/usr
|
||||
endef
|
||||
|
||||
define HOST_BPFTOOL_INSTALL_CMDS
|
||||
$(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) \
|
||||
-C $(@D)/src install DESTDIR="$(HOST_DIR)" prefix=/usr
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
$(eval $(host-generic-package))
|
@ -5,28 +5,6 @@ menu "Linux Kernel Tools"
|
||||
config BR2_PACKAGE_LINUX_TOOLS
|
||||
bool
|
||||
|
||||
config BR2_PACKAGE_LINUX_TOOLS_BPFTOOL
|
||||
bool "bpftool"
|
||||
depends on !BR2_nios2 # binutils
|
||||
depends on BR2_USE_WCHAR # binutils, elfutils
|
||||
depends on !BR2_STATIC_LIBS # elfutils
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # elfutils
|
||||
depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils
|
||||
select BR2_PACKAGE_LINUX_TOOLS
|
||||
select BR2_PACKAGE_BINUTILS
|
||||
select BR2_PACKAGE_ELFUTILS
|
||||
help
|
||||
bpftool is a tool for for inspection and simple manipulation
|
||||
of eBPF programs and maps.
|
||||
|
||||
These tools are available only from kernel version 4.15.
|
||||
|
||||
comment "bpftool needs a uClibc or glibc toolchain w/ wchar, dynamic library, threads"
|
||||
depends on !BR2_nios2
|
||||
depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \
|
||||
|| !BR2_TOOLCHAIN_HAS_THREADS \
|
||||
|| !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC)
|
||||
|
||||
config BR2_PACKAGE_LINUX_TOOLS_CPUPOWER
|
||||
bool "cpupower"
|
||||
select BR2_PACKAGE_LINUX_TOOLS
|
||||
|
@ -1,37 +0,0 @@
|
||||
################################################################################
|
||||
#
|
||||
# bpftool
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LINUX_TOOLS += bpftool
|
||||
|
||||
BPFTOOL_DEPENDENCIES = binutils elfutils
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBCAP),y)
|
||||
BPFTOOL_DEPENDENCIES += libcap
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
||||
BPFTOOL_DEPENDENCIES += zlib
|
||||
endif
|
||||
|
||||
BPFTOOL_MAKE_OPTS = $(LINUX_MAKE_FLAGS)
|
||||
|
||||
define BPFTOOL_BUILD_CMDS
|
||||
$(Q)if ! grep install $(LINUX_DIR)/tools/bpf/bpftool/Makefile >/dev/null 2>&1 ; then \
|
||||
echo "Your kernel version is too old and does not have install section in the bpf tools." ; \
|
||||
echo "At least kernel 4.15 must be used." ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
||||
$(TARGET_MAKE_ENV) $(MAKE1) -C $(LINUX_DIR)/tools/bpf/bpftool \
|
||||
$(BPFTOOL_MAKE_OPTS)
|
||||
endef
|
||||
|
||||
define BPFTOOL_INSTALL_TARGET_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE1) -C $(LINUX_DIR)/tools/bpf/bpftool \
|
||||
$(BPFTOOL_MAKE_OPTS) \
|
||||
DESTDIR=$(TARGET_DIR) \
|
||||
install
|
||||
endef
|
Loading…
Reference in New Issue
Block a user