Re: [PATCH v3 0/2] perf build: Support building BPF skeletons with bpf-gcc
From: Ian Rogers
Date: Tue Nov 03 2026 - 22:52:32 EST
On Thu, Oct 22, 2026 at 1:46 PM Ian Rogers <irogers@xxxxxxxxxx> wrote:
>
> 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, reuses tools/build/Makefile.feature
> for feature detection, and verifies with
> 'perf check -q feature bpf_skeletons' that BPF skeleton support is
> enabled (or disabled for make_no_bpf_skel) as expected.
>
> v3: Reuse tools/build/Makefile.feature and tools/scripts/utilities.mak
> in tools/perf/tests/make rather than open-coding compiler feature
> probes, and explicitly check for exit code 1 from 'perf check' in
> make_no_bpf_skel so crashes are not masked by shell negation.
> 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
Ping. Just to note that the 2 patches are clean with Sashiko:
https://sashiko.dev/#/patchset/20261022204627.1813821-1-irogers%40google.com
Thanks,
Ian
> tools/perf/Makefile.config | 83 +++++++++++++++++++++++++++-------
> tools/perf/Makefile.perf | 8 +++-
> tools/perf/bpf_skel.mak | 36 ++++++++++-----
> tools/perf/tests/make | 71 ++++++++++++++++++++++------
> tools/scripts/Makefile.include | 1 +
> tools/scripts/utilities.mak | 4 +-
> 6 files changed, 159 insertions(+), 44 deletions(-)
>
> --
> 2.56.0.307.g5fe7bd680c-goog
>