[PATCH v1 0/2] perf build: Support building BPF skeletons with bpf-gcc

From: Ian Rogers

Date: Tue Oct 13 2026 - 18:30:18 EST


Currently the perf build requires clang (>= 12.0.1) to compile BPF
skeleton programs (.bpf.c -> .bpf.o). bpf-gcc (>= 14.0.0) also supports
BPF CO-RE and BTF generation and is already supported in
tools/testing/selftests/bpf/Makefile.

This series updates the perf build to support both clang and bpf-gcc:
- Patch 1 updates Makefile.config, Makefile.perf, and bpf_skel.mak to
prefer bpf-gcc when building perf with GCC (CC_NO_CLANG=1) and clang
when building with Clang/LLVM (CC_NO_CLANG=0), while respecting
explicit BPF_GCC=... or CLANG=... command-line overrides and falling
back to whichever compiler is available.
- Patch 2 adds make_bpf_skel_clang and make_bpf_skel_bpf_gcc build-test
targets to tools/perf/tests/make and verifies with
'perf check -q feature bpf_skeletons' that BPF skeleton support is
enabled (or disabled for make_no_bpf_skel) as expected.

Ian Rogers (2):
perf build: Support building BPF skeletons with bpf-gcc
perf test make: Add BPF skeleton build tests for clang and bpf-gcc

tools/perf/Makefile.config | 81 +++++++++++++++++++++++++++-------
tools/perf/Makefile.perf | 8 +++-
tools/perf/bpf_skel.mak | 36 ++++++++++-----
tools/perf/tests/make | 29 ++++++++++++
tools/scripts/Makefile.include | 1 +
5 files changed, 126 insertions(+), 29 deletions(-)

--
2.56.0.385.gd3acb90ef8-goog