Linux kernel source tree
Find a file
Andrii Nakryiko d7c4b3980c libbpf: detect supported kernel BTF features and sanitize BTF
Depending on used versions of libbpf, Clang, and kernel, it's possible to
have valid BPF object files with valid BTF information, that still won't
load successfully due to Clang emitting newer BTF features (e.g.,
BTF_KIND_FUNC, .BTF.ext's line_info/func_info, BTF_KIND_DATASEC, etc), that
are not yet supported by older kernel.

This patch adds detection of BTF features and sanitizes BPF object's BTF
by substituting various supported BTF kinds, which have compatible layout:
  - BTF_KIND_FUNC -> BTF_KIND_TYPEDEF
  - BTF_KIND_FUNC_PROTO -> BTF_KIND_ENUM
  - BTF_KIND_VAR -> BTF_KIND_INT
  - BTF_KIND_DATASEC -> BTF_KIND_STRUCT

Replacement is done in such a way as to preserve as much information as
possible (names, sizes, etc) where possible without violating kernel's
validation rules.

v2->v3:
  - remove duplicate #defines from libbpf_util.h

v1->v2:
  - add internal libbpf_internal.h w/ common stuff
  - switch SK storage BTF to use new libbpf__probe_raw_btf()

Reported-by: Alexei Starovoitov <ast@fb.com>
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2019-05-13 01:31:20 +02:00
arch powerpc: tsi108: fix similar warning reported by kbuild test robot 2019-05-10 15:14:29 -07:00
block for-5.2/block-20190507 2019-05-07 18:14:36 -07:00
certs
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
Documentation dt-bindings: doc: net: remove Linux API references 2019-05-10 15:14:29 -07:00
drivers net: phy: realtek: add missing page operations 2019-05-10 15:20:59 -07:00
fs Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-05-09 19:35:41 -07:00
include bpf: fix minor issues in documentation for BPF helpers. 2019-05-13 01:12:45 +02:00
init Initialize the random driver earler; fix CRNG initialization when we 2019-05-07 21:42:23 -07:00
ipc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
kernel bpf: fix out of bounds backwards jmps due to dead code removal 2019-05-10 18:49:27 -07:00
lib 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
LICENSES
mm Merge branch 'work.icache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-05-07 10:57:05 -07:00
net dsa: tag_brcm: Fix build error without CONFIG_NET_DSA_TAG_BRCM_PREPEND 2019-05-10 15:06:45 -07:00
samples 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
scripts bpf: fix script for generating man page on BPF helpers 2019-05-13 01:12:45 +02:00
security Revert "selinux: do not report error on connect(AF_UNSPEC)" 2019-05-10 09:34:31 -07:00
sound sound updates for 5.2-rc1 2019-05-09 08:26:55 -07:00
tools libbpf: detect supported kernel BTF features and sanitize BTF 2019-05-13 01:31:20 +02:00
usr
virt arm64 updates for 5.2 2019-05-06 17:54:22 -07:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore .gitignore: add more all*.config patterns 2019-05-08 09:47:46 +09:00
.mailmap A reasonably busy cycle for docs, including: 2019-05-08 12:42:50 -07:00
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS powerpc updates for 5.2 2019-05-10 05:29:27 -07:00
Makefile Kbuild updates for v5.2 2019-05-08 12:25:12 -07:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.