[SRU][Q][PATCH 0/1] Race condition in perf build causes build failure due to missing unistd_64.h header on arm64

Jacob Martin jacob.martin at canonical.com
Fri Nov 21 22:34:14 UTC 2025


BugLink: https://bugs.launchpad.net/bugs/2131702

[Impact]

ARM64 builds of questing-derived kernels can fail with the following
error during the binary-perarch build target:

In file included from /usr/include/aarch64-linux-gnu/sys/syscall.h:24,
                 from /usr/include/syscall.h:1,
                 from jvmti/jvmti_agent.c:36:
/<<PKGBUILDDIR>>/debian/build/tools-perarch/tools/arch/arm64/include/uapi/asm/unistd.h:2:10: fatal error: asm/unistd_64.h: No such file or directory
    2 | #include <asm/unistd_64.h>
      |

This is caused by a dependency missing from the libjvmti perf build
target.

[Fix]

Upstream commit f3b601f ("perf tools: Fix arm64 libjvmti build by
generating unistd_64.h") resolves the build issue.

This commit is included in 6.18-rc1 and newer.

The break commit 22f72088ffe69a37 ("tools headers: Update the syscall
table with the kernel sources") is not present in plucky and older
kernels.

[Test Plan]

This issue was occuring reliably in linux-nvidia-6.17 when building the
debian/rules binary-perarch target on arm64. After applying this patch,
the issue was resolved on 5/5 subsequent test builds.

I tested the binary-perarch build for questing:linux with this patch on
an arm64 system with the following, and it was successful:
$ fakeroot debian/rules clean binary-perarch

[Regression Potential]

Any regressions should show up at build time, as the fix involves only
changes to the perf tool build script.

Vincent Minet (1):
  perf tools: Fix arm64 libjvmti build by generating unistd_64.h

 tools/perf/Makefile.perf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.43.0




More information about the kernel-team mailing list