Go to file
Frantisek Sumsal b923d0e3c6 lgtm: fix the extraction process
As this project uses only Makefile, without any configuration step, and due to
a "non-standard" location of the source files, LGTM kept failing to find the
respective Makefile and build the sources. By tricking LGTM's build system
auto detection, that we use automake/configure, it correctly sets the source
dir, thus the compilation, extraction & analysis steps now work in the src/
subdirectory, as expected.
2019-10-28 15:15:47 -07:00
include includes: add BPF_JMP32_IMM macro to fix build 2019-10-24 22:59:06 -07:00
scripts sync: adjust sync script for test_libbpf.c rename and bpf_helper_defs.h 2019-10-15 19:43:48 -07:00
src libbpf: Fix strncat bounds error in libbpf_prog_type_by_name 2019-10-24 22:59:06 -07:00
travis-ci/managers travis: add an aarch64 Xenial job 2019-10-23 10:13:54 -07:00
.lgtm.yml lgtm: fix the extraction process 2019-10-28 15:15:47 -07:00
.travis.yml travis: add an aarch64 Xenial job 2019-10-23 10:13:54 -07:00
BPF-CHECKPOINT-COMMIT sync: latest libbpf changes from kernel 2019-10-24 22:59:06 -07:00
CHECKPOINT-COMMIT sync: latest libbpf changes from kernel 2019-10-24 22:59:06 -07:00
README.md meson: kill meson.build as it's not used anymore 2019-10-01 16:51:32 -07:00

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 Build Status

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