From 21b155e0ff457131515ef7ee525d734b547fb0ba Mon Sep 17 00:00:00 2001 From: Eric Long Date: Sat, 10 Aug 2024 00:42:34 +0800 Subject: [PATCH] bpftool: add host build Besides probing BPF information in running system, bpftool is also used in generating skeleton, dumping BTF, etc. that is widely used in modern BPF development. Make it available as a host tool so that we can use it in package build. Tested build targeting malta/le on Arch Linux x86_64. bpftools currently does not support processing cross-endian BPF objects, so big-endian host is needed to build for big-endian targets using bpftools. Signed-off-by: Eric Long Link: https://github.com/openwrt/openwrt/pull/16122 Signed-off-by: Robert Marko --- package/network/utils/bpftool/Makefile | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/package/network/utils/bpftool/Makefile b/package/network/utils/bpftool/Makefile index 45f8904d8ddf..f2726d189690 100644 --- a/package/network/utils/bpftool/Makefile +++ b/package/network/utils/bpftool/Makefile @@ -22,8 +22,11 @@ PKG_BUILD_FLAGS:=no-mips16 gc-sections lto PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 +HOST_BUILD_PARALLEL:=1 + include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk +include $(INCLUDE_DIR)/host-build.mk define Package/bpftool/Default SECTION:=net @@ -88,5 +91,30 @@ define Package/bpftool-$(BUILD_VARIANT)/install $(1)/usr/libexec/bpftool-$(BUILD_VARIANT) endef +HOST_MAKE_FLAGS += \ + OUTPUT="$(HOST_BUILD_DIR)/" \ + prefix="/usr" \ + $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \ + check_feat=0 \ + feature-clang-bpf-co-re=0 \ + feature-libbfd=1 \ + feature-llvm=0 \ + feature-libcap=0 \ + feature-disassembler-four-args=1 \ + feature-disassembler-init-styled=1 + +HOST_MAKE_PATH = src + +define Host/Install + $(INSTALL_DIR) $(STAGING_DIR_HOST)/usr/sbin + $(INSTALL_BIN) $(HOST_BUILD_DIR)/bpftool \ + $(STAGING_DIR_HOST)/usr/sbin/bpftool +endef + +define Host/Clean + rm -f $(STAGING_DIR_HOST)/usr/sbin/bpftool +endef + $(eval $(call BuildPackage,bpftool-full)) $(eval $(call BuildPackage,bpftool-minimal)) +$(eval $(call HostBuild)) -- 2.30.2