[PATCH v2 0/2] perf build: Support building BPF skeletons with bpf-gcc
From: Ian Rogers
Date: Tue Oct 13 2026 - 19:32:47 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.
v2: Pass only -dumpfullversion when querying BPF_GCC_VERSION, guard
against an empty version string, and fix version-ge3 / version-lt3
in tools/scripts/utilities.mak so empty or <3-component version
strings do not shift awk fields and evaluate as false in version-lt3.
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 | 83 +++++++++++++++++++++++++++-------
tools/perf/Makefile.perf | 8 +++-
tools/perf/bpf_skel.mak | 36 ++++++++++-----
tools/perf/tests/make | 29 ++++++++++++
tools/scripts/Makefile.include | 1 +
tools/scripts/utilities.mak | 4 +-
6 files changed, 130 insertions(+), 31 deletions(-)
--
2.56.0.385.gd3acb90ef8-goog