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

Leo Yan
2025-09-30T16:55:14Z

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: Correct CROSS_ARCH and dismiss Clang build warnings.
- 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@arm.com/

---
Changes in v2:
- Dropped the patch for dismissing warning in bpftool.
- Refined the document. (Ian)
- Link to v1: https://lore.kernel.org/r/20250925-perf_build_android_ndk-v1-0-8b35aadde3dc@arm.com

---
Leo Yan (8):
tools build: Align warning options with perf
perf python: split Clang options when invoking Popen
perf: build: Correct CROSS_ARCH for clang
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/build/feature/Makefile | 6 +-
tools/perf/Documentation/Build.txt | 15 ++++
tools/perf/Documentation/android.txt | 80 ++--------------------
tools/perf/Makefile.config | 32 ++++++++-
tools/perf/Makefile.perf | 2 +-
.../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, 67 insertions(+), 83 deletions(-)
---
base-commit: c17dda8013495d8132c976cbf349be9949d0fbd1
change-id: 20250915-perf_build_android_ndk-500b53bea895

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