mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-22 20:38:29 +00:00
26a65e852c
bpftool changelog: https://github.com/libbpf/bpftool/releases libbpf changelog: https://github.com/libbpf/libbpf/releases This updates the bfptool to version 7.1.0. This also includes an update of the libbpf to version 1.1. This also adds some new feature options and removes some old ones which were also removed form the source code. zlib for example is now mandatory. Add -flto also to LD flags to make it really work. Before this change bpftool was on a git commit between version 6.7 and 6.8 and libbpf was on a commit between version 0.7 and 0.8. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
150 lines
3.8 KiB
Makefile
150 lines
3.8 KiB
Makefile
#
|
|
# Copyright (C) 2020 Tony Ambardar <itugrok@yahoo.com>
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=bpftools
|
|
PKG_RELEASE:=1
|
|
|
|
PKG_SOURCE_URL:=https://github.com/libbpf/bpftool
|
|
PKG_SOURCE_PROTO:=git
|
|
PKG_SOURCE_DATE:=7.1.0
|
|
PKG_SOURCE_VERSION:=b01941c8f7890489f09713348a7d89567538504b
|
|
PKG_MIRROR_HASH:=641fb337342e25ae784a3efe72c71d8c88600a326300d8d5834e26be21547015
|
|
PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE))
|
|
|
|
PKG_MAINTAINER:=Tony Ambardar <itugrok@yahoo.com>
|
|
|
|
PKG_USE_MIPS16:=0
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_INSTALL:=1
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/nls.mk
|
|
|
|
define Package/bpftool/Default
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
TITLE:=bpftool - eBPF subsystem utility
|
|
LICENSE:=GPL-2.0-only OR BSD-2-Clause
|
|
URL:=http://www.kernel.org
|
|
DEPENDS:=+libelf
|
|
endef
|
|
|
|
define Package/bpftool-minimal
|
|
$(call Package/bpftool/Default)
|
|
TITLE+= (Minimal)
|
|
VARIANT:=minimal
|
|
DEFAULT_VARIANT:=1
|
|
PROVIDES:=bpftool
|
|
ALTERNATIVES:=200:/usr/sbin/bpftool:/usr/libexec/bpftool-minimal
|
|
endef
|
|
|
|
define Package/bpftool-full
|
|
$(call Package/bpftool/Default)
|
|
TITLE+= (Full)
|
|
VARIANT:=full
|
|
PROVIDES:=bpftool
|
|
ALTERNATIVES:=300:/usr/sbin/bpftool:/usr/libexec/bpftool-full
|
|
DEPENDS+= +libbfd +libopcodes
|
|
endef
|
|
|
|
define Package/bpftool-minimal/description
|
|
A tool for inspection and simple manipulation of eBPF programs and maps.
|
|
endef
|
|
|
|
define Package/bpftool-full/description
|
|
A tool for inspection and simple manipulation of eBPF programs and maps.
|
|
This full version uses libbfd and libopcodes to support disassembly of
|
|
eBPF programs and jited code.
|
|
endef
|
|
|
|
define Package/libbpf
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=libbpf - eBPF helper library
|
|
VARIANT:=lib
|
|
LICENSE:=LGPL-2.1 OR BSD-2-Clause
|
|
ABI_VERSION:=$(PKG_ABI_VERSION)
|
|
URL:=http://www.kernel.org
|
|
DEPENDS:=+libelf
|
|
endef
|
|
|
|
define Package/libbpf/description
|
|
libbpf is a library for loading eBPF programs and reading and manipulating eBPF objects from user-space.
|
|
endef
|
|
|
|
|
|
# LTO not compatible with DSO using PIC
|
|
ifneq ($(BUILD_VARIANT),lib)
|
|
TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
|
|
TARGET_LDFLAGS += -Wl,--gc-sections -flto
|
|
endif
|
|
|
|
ifeq ($(BUILD_VARIANT),full)
|
|
full:=1
|
|
else
|
|
full:=0
|
|
endif
|
|
|
|
MAKE_VARS = \
|
|
EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
|
|
LDFLAGS="$(TARGET_LDFLAGS)"
|
|
|
|
MAKE_FLAGS += \
|
|
OUTPUT="$(PKG_BUILD_DIR)/" \
|
|
prefix="/usr" \
|
|
$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \
|
|
LIBSUBDIR=lib \
|
|
check_feat=0 \
|
|
feature-clang-bpf-co-re=0 \
|
|
feature-libbfd=$(full) \
|
|
feature-llvm=0 \
|
|
feature-libcap=0 \
|
|
feature-disassembler-four-args=1 \
|
|
feature-disassembler-init-styled=0
|
|
|
|
ifeq ($(BUILD_VARIANT),lib)
|
|
MAKE_PATH = libbpf/src
|
|
else
|
|
MAKE_PATH = src
|
|
endif
|
|
|
|
define Build/InstallDev/libbpf
|
|
$(INSTALL_DIR) $(1)/usr/include/bpf
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/bpf/*.h $(1)/usr/include/bpf/
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbpf.{a,so*} \
|
|
$(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libbpf.pc \
|
|
$(1)/usr/lib/pkgconfig/
|
|
$(SED) 's,/usr/include,$$$${prefix}/include,g' \
|
|
$(1)/usr/lib/pkgconfig/libbpf.pc
|
|
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' \
|
|
$(1)/usr/lib/pkgconfig/libbpf.pc
|
|
endef
|
|
|
|
ifeq ($(BUILD_VARIANT),lib)
|
|
Build/InstallDev=$(Build/InstallDev/libbpf)
|
|
endif
|
|
|
|
define Package/bpftool-$(BUILD_VARIANT)/install
|
|
$(INSTALL_DIR) $(1)/usr/libexec
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/bpftool \
|
|
$(1)/usr/libexec/bpftool-$(BUILD_VARIANT)
|
|
endef
|
|
|
|
define Package/libbpf/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbpf.so.* $(1)/usr/lib/
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,libbpf))
|
|
$(eval $(call BuildPackage,bpftool-full))
|
|
$(eval $(call BuildPackage,bpftool-minimal))
|