bpftools: update, split off bpftool and libbpf packages
My original bpftools package made "variant" builds of bpftool and libbpf
as a convenience, since both used the same local kernel sources with the
same versioning. This is no longer the case, since the commit below
switched to using an out-of-tree build mirror hosting repos for each.
Replace bpftools with separate bpftool and libbpf packages, each simplified
and correctly versioned. Also fix the broken libbpf ABI introduced in the
same commit. Existing build .config files are not impacted.
Fixes: 00cbf6f6ab ("bpftools: update to standalone bpftools + libbpf, use the latest version")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
			
			
This commit is contained in:
		 Tony Ambardar
					Tony Ambardar
				
			
				
					committed by
					
						 Nick Hainke
						Nick Hainke
					
				
			
			
				
	
			
			
			 Nick Hainke
						Nick Hainke
					
				
			
						parent
						
							5636ffc22d
						
					
				
				
					commit
					afe1bf11f2
				
			
							
								
								
									
										75
									
								
								package/libs/libbpf/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								package/libs/libbpf/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | ||||
| # | ||||
| # Copyright (C) 2020-2023 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:=libbpf | ||||
| PKG_VERSION:=1.2.0 | ||||
| PKG_RELEASE:=1 | ||||
|  | ||||
| PKG_SOURCE_URL:=https://github.com/libbpf/libbpf | ||||
| PKG_SOURCE_PROTO:=git | ||||
| PKG_SOURCE_VERSION:=fbd60dbff51c870f5e80a17c4f2fd639eb80af90 | ||||
| PKG_MIRROR_HASH:=80a80dfba71576e017b596fb28068e2a92de629e426f063e4b37314c8d576336 | ||||
| PKG_ABI_VERSION:=$(firstword $(subst .,$(space),$(PKG_VERSION))) | ||||
|  | ||||
| PKG_MAINTAINER:=Tony Ambardar <itugrok@yahoo.com> | ||||
|  | ||||
| PKG_BUILD_FLAGS:=no-mips16 | ||||
| PKG_BUILD_PARALLEL:=1 | ||||
| PKG_INSTALL:=1 | ||||
|  | ||||
| include $(INCLUDE_DIR)/package.mk | ||||
| include $(INCLUDE_DIR)/nls.mk | ||||
|  | ||||
| define Package/libbpf | ||||
|   SECTION:=libs | ||||
|   CATEGORY:=Libraries | ||||
|   TITLE:=libbpf - eBPF helper library | ||||
|   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 | ||||
|  | ||||
| MAKE_VARS = \ | ||||
| 	EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \ | ||||
| 	LDFLAGS="$(TARGET_LDFLAGS)" | ||||
|  | ||||
| MAKE_FLAGS += \ | ||||
| 	$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \ | ||||
| 	LIBSUBDIR=lib | ||||
|  | ||||
| MAKE_PATH = src | ||||
|  | ||||
| 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 | ||||
|  | ||||
| Build/InstallDev=$(Build/InstallDev/libbpf) | ||||
|  | ||||
| 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)) | ||||
							
								
								
									
										10
									
								
								package/libs/libbpf/patches/001-cflags.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								package/libs/libbpf/patches/001-cflags.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| --- a/src/Makefile | ||||
| +++ b/src/Makefile | ||||
| @@ -34,6 +34,7 @@ ALL_CFLAGS := $(INCLUDES) | ||||
|   | ||||
|  SHARED_CFLAGS += -fPIC -fvisibility=hidden -DSHARED | ||||
|   | ||||
| +CFLAGS = $(EXTRA_CFLAGS) | ||||
|  CFLAGS ?= -g -O2 -Werror -Wall -std=gnu89 | ||||
|  ALL_CFLAGS += $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 $(EXTRA_CFLAGS) | ||||
|  ALL_LDFLAGS += $(LDFLAGS) $(EXTRA_LDFLAGS) | ||||
| @@ -1,5 +1,5 @@ | ||||
| #
 | ||||
| # Copyright (C) 2020 Tony Ambardar <itugrok@yahoo.com>
 | ||||
| # Copyright (C) 2020-2023 Tony Ambardar <itugrok@yahoo.com>
 | ||||
| #
 | ||||
| # This is free software, licensed under the GNU General Public License v2.
 | ||||
| # See /LICENSE for more information.
 | ||||
| @@ -8,14 +8,13 @@ | ||||
| include $(TOPDIR)/rules.mk | ||||
| 
 | ||||
| PKG_NAME:=bpftools | ||||
| PKG_VERSION:=7.2.0 | ||||
| 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_SOURCE_VERSION:=19ff0564980a7429e730f6987a0b0bf418b3c676 | ||||
| PKG_MIRROR_HASH:=f9b9871f64986dd2e5dab7060bb919398256ba93964da49c62efaf0e6bc9bbc4 | ||||
| 
 | ||||
| PKG_MAINTAINER:=Tony Ambardar <itugrok@yahoo.com> | ||||
| 
 | ||||
| @@ -63,27 +62,8 @@ define Package/bpftool-full/description | ||||
|   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 | ||||
| TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto | ||||
| TARGET_LDFLAGS += -Wl,--gc-sections -flto | ||||
| 
 | ||||
| ifeq ($(BUILD_VARIANT),full) | ||||
|   full:=1 | ||||
| @@ -99,7 +79,6 @@ 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) \
 | ||||
| @@ -108,30 +87,7 @@ MAKE_FLAGS += \ | ||||
| 	feature-disassembler-four-args=1 \
 | ||||
| 	feature-disassembler-init-styled=1 | ||||
| 
 | ||||
| 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 | ||||
| MAKE_PATH = src | ||||
| 
 | ||||
| define Package/bpftool-$(BUILD_VARIANT)/install | ||||
| 	$(INSTALL_DIR) $(1)/usr/libexec | ||||
| @@ -139,11 +95,5 @@ define Package/bpftool-$(BUILD_VARIANT)/install | ||||
| 		$(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)) | ||||
		Reference in New Issue
	
	Block a user