mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-23 01:39:06 +08:00
910c475f09e5c269f441d7496c27dace30dc2335
Syncing latest libbpf commits from kernel repository. Baseline commit: 3daf8e703ec3dcf73a27a7dcabbac152793eb114 Checkpoint commit: ba02de1aa04e392e15ef503c6dd5166915d9d4de Alan Maguire (2): bpf: sync bpf.h to tools/ for BPF_F_ADJ_ROOM_ENCAP_L2 bpf: fix whitespace for ENCAP_L2 defines in bpf.h Andrey Ignatov (3): bpf: Sync bpf.h to tools/ libbpf: Support sysctl hook bpf: Sync bpf.h to tools/ Andrii Nakryiko (2): btf: add support for VAR and DATASEC in btf_dedup() libbpf: fix printf formatter for ptrdiff_t argument Magnus Karlsson (4): libbpf: fix XDP socket ring buffer memory ordering libbpf: remove likely/unlikely in xsk.h libbpf: remove dependency on barrier.h in xsk.h libbpf: optimize barrier for XDP socket rings include/uapi/linux/bpf.h | 149 ++++++++++++++++++++++++++++++++++++++- src/btf.c | 29 +++++++- src/libbpf.c | 5 +- src/libbpf_probes.c | 1 + src/libbpf_util.h | 30 ++++++++ src/xsk.h | 22 ++++-- 6 files changed, 226 insertions(+), 10 deletions(-) -- 2.17.1
This is a mirror of bpf-next linux tree
(https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next)
bpf-next/tools/lib/bpf directory plus its supporting header files.
The following files will by sync'ed with bpf-next repo:
src/ <-> bpf-next/tools/lib/bpf/
include/uapi/linux/bpf_common.h <-> bpf-next/tools/include/uapi/linux/bpf_common.h
include/uapi/linux/bpf.h <-> bpf-next/tools/include/uapi/linux/bpf.h
include/uapi/linux/btf.h <-> bpf-next/tools/include/uapi/linux/btf.h
include/uapi/linux/if_link.h <-> bpf-next/tools/include/uapi/linux/if_link.h
include/uapi/linux/if_xdp.h <-> bpf-next/tools/include/uapi/linux/if_xdp.h
include/uapi/linux/netlink.h <-> bpf-next/tools/include/uapi/linux/netlink.h
include/tools/libc_compat.h <-> bpf-next/tools/include/tools/libc_compat.h
Other header files at this repo (include/linux/*.h) are reduced versions of
their counterpart files at bpf-next/tools/include/linux/*.h to make compilation
successful.
Build
=====
libelf is an internal dependency of libbpf and thus it is required to link
against and must be installed on the system for applications to work.
pkg-config is used by default to find libelf, and the program called can be
overridden with PKG_CONFIG.
If using pkg-config at build time is not desired, it can be disabled by setting
NO_PKG_CONFIG=1 when calling make.
To build both static libbpf.a and shared libbpf.so:
cd src
make
To build only static libbpf.a library in directory
build/ and install them together with libbpf headers in a staging directory
root/:
cd src
mkdir build root
BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=root make install
To build both static libbpf.a and shared libbpf.so against a custom libelf
dependency installed in /build/root/ and install them together with libbpf
headers in a build directory /build/root/:
cd src
PKG_CONFIG_PATH=/build/root/lib64/pkgconfig DESTDIR=/build/root make install
To integrate libbpf into a project which uses Meson building system define
[wrap-git] file in `subprojects` folder.
To add libbpf dependency to the parent parent project, e.g. for
libbpf_static_dep:
libbpf_obj = subproject('libbpf', required : true)
libbpf_static_dep = libbpf_proj.get_variable('libbpf_static_dep')
To validate changes to meson.build
python3 meson.py build
ninja -C build/
To install headers, libs and pkgconfig
cd build
ninja install
Description
Languages
C
98.3%
Shell
1.4%
Makefile
0.3%