Andrii Nakryiko 910c475f09 sync: latest libbpf changes from kernel
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
2019-04-19 09:52:37 -07:00
2019-04-17 14:19:40 -07:00
2019-04-15 21:39:11 -07:00

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
Automated upstream mirror for libbpf stand-alone build.
Readme 13 MiB
Languages
C 98.3%
Shell 1.4%
Makefile 0.3%