[PATCH v3 0/3] tools build: Fix arm64 unistd.h dependency

Leo Yan
2025-12-22T18:07:10Z

The perf build includes arm64's unistd.h, but its dependent header
unistd_64.h is missing.

As suggested by Arnd in [1]:

"I would suggest using the same method across all architectures:
either we figure out how to use the generated headers on all of them
(including x86, which uses yet another method), or we just stick with
the old asm-generic/unistd.h copy and use that on arm64 as well."

A dynamic approach (e.g., make headers_install) may be explored later to
generate headers for tools, but that will need consensus from the tools
maintainers. In the meantime, this series provides a quick fix by using
the asm-generic/unistd.h copy for arm64.

[1] https://lore.kernel.org/linux-arm-kernel/20251222173653.GF9788@e132581.arm.com/T/#m69a051aae5e53a65f9b10e1d13f67b3e92f4bbc7

Signed-off-by: Leo Yan <leo.yan@arm.com>
---
Changes in v3:
- Changed to include asm-generic/unistd.h copy (Arnd).
- Removed check due to divergence between the kernel and tools.
- Link to v2: https://lore.kernel.org/r/20251210-perf_fix_syscall_header-v2-0-b18b6016e0ea@arm.com

Changes in v2:
- Added a consistency check (Ian).
- Rebased on the latest perf-tools-next.
- Link to v1: https://lore.kernel.org/r/20251204-perf_fix_syscall_header-v1-0-b8e27f74ed6a@arm.com

---
Leo Yan (3):
tools headers: Go back to include asm-generic/unistd.h for arm64
Revert "perf tools: Fix arm64 build by generating unistd_64.h"
tools headers: Don't check arm64's unistd.h

tools/arch/arm64/include/uapi/asm/unistd.h | 24 +++++++++++++++++++++++-
tools/lib/perf/Makefile | 14 ++------------
tools/perf/Makefile.config | 1 -
tools/perf/check-headers.sh | 1 -
4 files changed, 25 insertions(+), 15 deletions(-)
---
base-commit: cb015814f8b6eebcbb8e46e111d108892c5e6821
change-id: 20251203-perf_fix_syscall_header-e280fa931d44

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