[libbpf] Add new port (#51968)

This commit is contained in:
Chris W 2026-05-26 20:46:27 +01:00 committed by GitHub
parent c1ccec989e
commit 45929bdc2c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 148 additions and 0 deletions

View File

@ -0,0 +1,19 @@
diff --git a/src/Makefile b/src/Makefile
index 91cc02a..fe30a96 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -62,12 +62,13 @@ OBJS := bpf.o btf.o libbpf.o libbpf_utils.o netlink.o \
SHARED_OBJS := $(addprefix $(SHARED_OBJDIR)/,$(OBJS))
STATIC_OBJS := $(addprefix $(STATIC_OBJDIR)/,$(OBJS))
-STATIC_LIBS := $(OBJDIR)/libbpf.a
ifndef BUILD_STATIC_ONLY
SHARED_LIBS := $(OBJDIR)/libbpf.so \
$(OBJDIR)/libbpf.so.$(LIBBPF_MAJOR_VERSION) \
$(OBJDIR)/libbpf.so.$(LIBBPF_VERSION)
VERSION_SCRIPT := libbpf.map
+else
+ STATIC_LIBS := $(OBJDIR)/libbpf.a
endif
HEADERS := bpf.h libbpf.h btf.h libbpf_common.h libbpf_legacy.h \

View File

@ -0,0 +1,31 @@
diff --git a/src/Makefile b/src/Makefile
index fe30a96..174931f 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -43,15 +43,20 @@ ALL_CFLAGS += $(CFLAGS) \
ALL_LDFLAGS += $(LDFLAGS) $(EXTRA_LDFLAGS)
ifeq ($(shell command -v $(PKG_CONFIG) 2> /dev/null),)
-NO_PKG_CONFIG := 1
+$(error pkg-config not found)
endif
-ifdef NO_PKG_CONFIG
- ALL_LDFLAGS += -lelf -lz
-else
- ALL_CFLAGS += $(shell $(PKG_CONFIG) --cflags libelf zlib)
- ALL_LDFLAGS += $(shell $(PKG_CONFIG) --libs libelf zlib)
+
+ifneq ($(shell $(PKG_CONFIG) --env-only --exists libelf && echo true),true)
+$(error libelf not found)
endif
+ifneq ($(shell $(PKG_CONFIG) --env-only --exists zlib && echo true),true)
+$(error zlib not found)
+endif
+
+ALL_CFLAGS += $(shell $(PKG_CONFIG) --env-only --cflags libelf zlib)
+ALL_LDFLAGS += $(shell $(PKG_CONFIG) --env-only --libs libelf zlib)
+
OBJDIR ?= .
SHARED_OBJDIR := $(OBJDIR)/sharedobjs
STATIC_OBJDIR := $(OBJDIR)/staticobjs

View File

@ -0,0 +1,66 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO libbpf/libbpf
REF "v${VERSION}"
SHA512 29996f76d45222070b7554c1a098d67cf0933876a0fb3965800a304239a7e8dcc4d2ecc3ffe049dfbebe62e29e12cca793c6b22d5845955dd17faff5786691dd
HEAD_REF master
PATCHES
0001-enable-static-or-shared.patch
0002-fix-dependency-lookup.patch
)
find_program(MAKE make REQUIRED)
set(OPTIONS "")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
list(APPEND OPTIONS "BUILD_STATIC_ONLY=y")
endif()
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
file(COPY "${SOURCE_PATH}/" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/")
z_vcpkg_setup_pkgconfig_path(CONFIG RELEASE)
vcpkg_execute_build_process(
COMMAND
"${MAKE}"
"install"
"-j${VCPKG_CONCURRENCY}"
"PREFIX=${CURRENT_PACKAGES_DIR}"
"LIBDIR=${CURRENT_PACKAGES_DIR}/lib"
${OPTIONS}
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src"
LOGNAME "make-install-${TARGET_TRIPLET}-rel"
)
z_vcpkg_restore_pkgconfig_path()
endif()
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
file(COPY "${SOURCE_PATH}/" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/")
z_vcpkg_setup_pkgconfig_path(CONFIG DEBUG)
vcpkg_execute_build_process(
COMMAND
"${MAKE}"
"install"
"-j${VCPKG_CONCURRENCY}"
"PREFIX=${CURRENT_PACKAGES_DIR}/debug"
"LIBDIR=${CURRENT_PACKAGES_DIR}/debug/lib"
${OPTIONS}
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src"
LOGNAME "make-install-${TARGET_TRIPLET}-dbg"
)
z_vcpkg_restore_pkgconfig_path()
endif()
vcpkg_fixup_pkgconfig()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
vcpkg_install_copyright(FILE_LIST
"${SOURCE_PATH}/LICENSE"
"${SOURCE_PATH}/LICENSE.LGPL-2.1"
"${SOURCE_PATH}/LICENSE.BSD-2-Clause"
)

19
ports/libbpf/vcpkg.json Normal file
View File

@ -0,0 +1,19 @@
{
"name": "libbpf",
"version": "1.7.0",
"description": "Supports loading compiled BPF object files into the Linux Kernel",
"license": "LGPL-2.1-only OR BSD-2-Clause",
"supports": "linux",
"dependencies": [
"elfutils",
{
"name": "pkgconf",
"host": true
},
{
"name": "vcpkg-make",
"host": true
},
"zlib"
]
}

View File

@ -4764,6 +4764,10 @@
"baseline": "1.4.1",
"port-version": 0
},
"libbpf": {
"baseline": "1.7.0",
"port-version": 0
},
"libbson": {
"baseline": "2.3.0",
"port-version": 0

9
versions/l-/libbpf.json Normal file
View File

@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "aea6aac91b32835628f587b7ec0ea00f0152f35a",
"version": "1.7.0",
"port-version": 0
}
]
}