45ad862601
Syncing latest libbpf commits from kernel repository. Baseline commit: 2c6a577d719e96c89b1aaa631089cce69b4d0045 Checkpoint commit: 8fc9f8bedf1bdaea48382ae2e3dd558e2b939cee Andrii Nakryiko (19): libbpf: add common min/max macro to libbpf_internal.h libbpf: extract BTF loading logic libbpf: streamline ELF parsing error-handling libbpf: refactor map initialization libbpf: identify maps by section index in addition to offset libbpf: split initialization and loading of BTF libbpf: allow specifying map definitions using BTF libbpf: constify getter APIs libbpf: fix GCC8 warning for strncpy libbpf: make libbpf_strerror_r agnostic to sign of error libbpf: introduce concept of bpf_link libbpf: add ability to attach/detach BPF program to perf event libbpf: add kprobe/uprobe attach API libbpf: add tracepoint attach API libbpf: add raw tracepoint attach API libbpf: capture value in BTF type info for BTF-defined map defs libbpf: add perf buffer API libbpf: auto-set PERF_EVENT_ARRAY size to number of CPUs libbpf: add perf_buffer_ prefix to README Colin Ian King (1): libbpf: fix spelling mistake "conflictling" -> "conflicting" Daniel Borkmann (2): bpf: sync tooling uapi header bpf, libbpf: enable recvmsg attach types Ivan Khoronzhuk (1): libbpf: fix max() type mismatch for 32bit Leo Yan (1): bpf, libbpf, smatch: Fix potential NULL pointer dereference Martynas Pumputis (1): bpf: sync BPF_FIB_LOOKUP flag changes with BPF uapi Maxim Mikityanskiy (3): xsk: Add getsockopt XDP_OPTIONS libbpf: Support getsockopt XDP_OPTIONS xsk: Change the default frame size to 4096 and allow controlling it Michal Rostecki (1): libbpf: Return btf_fd for load_sk_storage_btf Stanislav Fomichev (4): bpf: sync bpf.h to tools/ libbpf: support sockopt hooks bpf/tools: sync bpf.h bpf: sync bpf.h to tools/ Vincent Bernat (1): bonding: add an option to specify a delay between peer notifications include/uapi/linux/bpf.h | 38 +- include/uapi/linux/if_link.h | 1 + include/uapi/linux/if_xdp.h | 8 + src/README.rst | 3 +- src/bpf.c | 7 +- src/bpf_prog_linfo.c | 5 +- src/btf.c | 3 - src/btf.h | 1 + src/btf_dump.c | 3 - src/libbpf.c | 1670 ++++++++++++++++++++++++++++------ src/libbpf.h | 132 ++- src/libbpf.map | 12 +- src/libbpf_internal.h | 11 +- src/libbpf_probes.c | 14 +- src/str_error.c | 2 +- src/xsk.c | 15 +- src/xsk.h | 2 +- 17 files changed, 1601 insertions(+), 326 deletions(-) -- 2.17.1 |
||
---|---|---|
include | ||
scripts | ||
src | ||
travis-ci/managers | ||
.travis.yml | ||
CHECKPOINT-COMMIT | ||
meson.build | ||
README.md |
This is a mirror of bpf-next linux tree's
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's 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