Merge branch 'bpftool: Fix skeletons compilation for older kernels'
authorAndrii Nakryiko <andrii@kernel.org>
Mon, 10 Jul 2023 22:29:21 +0000 (15:29 -0700)
committerAndrii Nakryiko <andrii@kernel.org>
Tue, 11 Jul 2023 00:01:41 +0000 (17:01 -0700)
commit19f4b532346219bb60a515c3c9ba21482e8357ee
tree6a83738185371a1cb0b2a5736ed6a42a0c45cc66
parentc628747cc8800cf6d33d09f7f42c8b6f91e64dc7
parent658ac06801315b739774a15796ff06913ef5cad5
Merge branch 'bpftool: Fix skeletons compilation for older kernels'

Quentin Monnet says:

====================
At runtime, bpftool may run its own BPF programs to get the pids of
processes referencing BPF programs, or to profile programs. The skeletons
for these programs rely on a vmlinux.h header and may fail to compile when
building bpftool on hosts running older kernels, where some structs or
enums are not defined. In this set, we address this issue by using local
definitions for struct perf_event, struct bpf_perf_link,
BPF_LINK_TYPE_PERF_EVENT (pids.bpf.c) and struct bpf_perf_event_value
(profiler.bpf.c).

This set contains patches 1 to 3 from Alexander Lobakin's series, "bpf:
random unpopular userspace fixes (32 bit et al)" (v2) [0], from April 2022.
An additional patch defines a local version of BPF_LINK_TYPE_PERF_EVENT in
bpftool's pids.bpf.c.

[0] https://lore.kernel.org/bpf/20220421003152.339542-1-alobakin@pm.me/

v2: Fixed description (CO-RE for container_of()) in patch 2.

Cc: Alexander Lobakin <aleksander.lobakin@intel.com>
Cc: Michal Suchánek <msuchanek@suse.de>
Alexander Lobakin (3):
  bpftool: use a local copy of perf_event to fix accessing ::bpf_cookie
  bpftool: define a local bpf_perf_link to fix accessing its fields
  bpftool: use a local bpf_perf_event_value to fix accessing its fields
====================

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>