[PATCH v2 0/3] tools build: Fix arm64's unistd_64.h dependency

Leo Yan posted 3 patches 1 month, 4 weeks ago
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(-)
[PATCH v2 0/3] tools build: Fix arm64's unistd_64.h dependency
Posted by Leo Yan 1 month, 4 weeks ago
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>
Re: [PATCH v2 0/3] tools build: Fix arm64's unistd_64.h dependency
Posted by James Clark 1 month, 3 weeks ago

On 10/12/2025 16:44, Leo Yan wrote:
> 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,

Reviewed-by: James Clark <james.clark@linaro.org>