[PATCH 0/8] perf build: Support building with Clang

From: Leo Yan
Date: Thu Sep 25 2025 - 06:27:05 EST


This series adds support for building perf with Clang, following the
discussion in [1]. Because the Android NDK uses Clang by default,
enabling Clang builds naturally covers Android as well.

The series is organized as follows:

- Patches 1–2: Fix two bugs found with Clang.
- Patches 3–6: Address Clang build warnings. Because these warnings
do not break the build, no Fixes tag is added to avoid backporting.
- Patches 7–8: Enable Clang in the Makefile and update the
documentation.

Testing:

- Clang 15.0.7 on Ubuntu 22.04.5: native and cross-compiling (aarch64)
- Clang 18.1.3 on Ubuntu 24.04.2: native and cross-compiling (aarch64)
- Android NDK r27d (latest LTS): cross-compiling (aarch64)

[1] https://lore.kernel.org/linux-perf-users/20240715143342.52236-1-leo.yan@xxxxxxx/

Signed-off-by: Leo Yan <leo.yan@xxxxxxx>
---
Leo Yan (8):
tools build: Align warning options with perf
perf python: split Clang options when invoking Popen
bpftool: Conditionally add -Wformat-signedness flag
perf test coresight: Dismiss clang warning for memcpy thread
perf test coresight: Dismiss clang warning for thread loop
perf test coresight: Dismiss clang warning for unroll loop thread
perf build: Support build with clang
perf docs: Document building with Clang

tools/bpf/bpftool/Makefile | 12 +++-
tools/build/feature/Makefile | 4 +-
tools/perf/Documentation/Build.txt | 18 +++++
tools/perf/Documentation/android.txt | 82 +++-------------------
tools/perf/Makefile.config | 32 ++++++++-
.../shell/coresight/memcpy_thread/memcpy_thread.c | 2 +
.../shell/coresight/thread_loop/thread_loop.c | 4 +-
.../unroll_loop_thread/unroll_loop_thread.c | 4 +-
tools/perf/util/setup.py | 5 +-
9 files changed, 81 insertions(+), 82 deletions(-)
---
base-commit: c17dda8013495d8132c976cbf349be9949d0fbd1
change-id: 20250915-perf_build_android_ndk-500b53bea895

Best regards,
--
Leo Yan <leo.yan@xxxxxxx>