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

Leo Yan posted 3 patches 4 weeks, 1 day ago
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(-)
[PATCH v4 0/3] tools build: Fix arm64 unistd.h dependency
Posted by Leo Yan 4 weeks, 1 day ago
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 v4:
- Updated commit log in patch 01 to avoid confusion (James).
- Link to v3: https://lore.kernel.org/r/20251222-perf_fix_syscall_header-v3-0-eb4a8b9dfe66@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: cbd41c6d4c26c161a2b0e70ad411d3885ff13507
change-id: 20251203-perf_fix_syscall_header-e280fa931d44

Best regards,
-- 
Leo Yan <leo.yan@arm.com>
Re: [PATCH v4 0/3] tools build: Fix arm64 unistd.h dependency
Posted by James Clark 2 weeks, 3 days ago

On 08/01/2026 9:43 am, Leo Yan wrote:
> 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.
> 

BPF feature detection is fixed on Arm with this change. And the make 
headers_install idea sounds good for later.

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

> [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 v4:
> - Updated commit log in patch 01 to avoid confusion (James).
> - Link to v3: https://lore.kernel.org/r/20251222-perf_fix_syscall_header-v3-0-eb4a8b9dfe66@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: cbd41c6d4c26c161a2b0e70ad411d3885ff13507
> change-id: 20251203-perf_fix_syscall_header-e280fa931d44
> 
> Best regards,