Arm64's unistd.h is included in the tools build, but its dependent
header unistd_64.h is missing. This results in only a partial set of UAPI
headers being available, forcing tools to generate unistd_64.h dynamically.
Because unistd.h is widely used across the tools directory, relying on a
dynamically generated header is fragile, especially when a tool builds in
multiple stages, each of which may include unistd.h.
This series addresses the issue by adding a generated unistd_64.h
directly to the tools tree, ensuring the header is available from the
start and eliminating build failures due to header dependency.
This series has been tested with Arm64 cross-compilation and confirmed
that the BPF feature is enabled in perf. It also verifies libperf
in-source builds with applying this series.
Signed-off-by: Leo Yan <leo.yan@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: Add arm64's unistd_64.h
Revert "perf tools: Fix arm64 build by generating unistd_64.h"
tools headers: Verify arm64's unistd_64.h
tools/arch/arm64/include/uapi/asm/unistd_64.h | 335 ++++++++++++++++++++++++++
tools/lib/perf/Makefile | 14 +-
tools/perf/Makefile.config | 1 -
tools/perf/check-headers.sh | 9 +
4 files changed, 346 insertions(+), 13 deletions(-)
---
base-commit: cb015814f8b6eebcbb8e46e111d108892c5e6821
change-id: 20251203-perf_fix_syscall_header-e280fa931d44
Best regards,
--
Leo Yan <leo.yan@arm.com>