commit | 0db22b01a111753b6489395872cd31f69970cea1 | [log] [tgz] |
---|---|---|
author | Andrii Nakryiko <andriin@fb.com> | Tue Oct 15 11:28:47 2019 -0700 |
committer | Andrii Nakryiko <andrii.nakryiko@gmail.com> | Tue Oct 15 19:43:48 2019 -0700 |
tree | 5cce4516a896aa1eb10ab7e4a21d4090edefa7ee | |
parent | 807b9d7be1eec2e8b81c29316f922efdb4842198 [diff] |
libbpf: Add support for field existance CO-RE relocation Add support for BPF_FRK_EXISTS relocation kind to detect existence of captured field in a destination BTF, allowing conditional logic to handle incompatible differences between kernels. Also introduce opt-in relaxed CO-RE relocation handling option, which makes libbpf emit warning for failed relocations, but proceed with other relocations. Instruction, for which relocation failed, is patched with (u32)-1 value. Signed-off-by: Andrii Nakryiko <andriin@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://lore.kernel.org/bpf/20191015182849.3922287-4-andriin@fb.com
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.
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