lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f950fe96-34d3-4631-b04d-4a1584f4c2f1@linaro.org>
Date: Mon, 14 Apr 2025 17:28:36 +0100
From: James Clark <james.clark@...aro.org>
To: Namhyung Kim <namhyung@...nel.org>, Arnd Bergmann <arnd@...aro.org>
Cc: Jiri Olsa <jolsa@...nel.org>, Adrian Hunter <adrian.hunter@...el.com>,
 Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...nel.org>,
 LKML <linux-kernel@...r.kernel.org>, linux-perf-users@...r.kernel.org,
 linux-arch@...r.kernel.org, Arnaldo Carvalho de Melo <acme@...nel.org>,
 Ian Rogers <irogers@...gle.com>, Kan Liang <kan.liang@...ux.intel.com>
Subject: Re: [PATCH 05/10] tools headers: Update the syscall table with the
 kernel sources



On 10/04/2025 1:11 am, Namhyung Kim wrote:
> To pick up the changes in:
> 
>    c4a16820d9019940 fs: add open_tree_attr()
>    2df1ad0d25803399 x86/arch_prctl: Simplify sys_arch_prctl()
>    e632bca07c8eef1d arm64: generate 64-bit syscall.tbl
> 
> This is basically to support the new open_tree_attr syscall.  But it
> also needs to update asm-generic unistd.h header to get the new syscall
> number.  And arm64 unistd.h header was converted to use the generic
> 64-bit header.
> 
> Addressing this perf tools build warning:
> 
>    Warning: Kernel ABI header differences:
>      diff -u tools/scripts/syscall.tbl scripts/syscall.tbl
>      diff -u tools/perf/arch/x86/entry/syscalls/syscall_32.tbl arch/x86/entry/syscalls/syscall_32.tbl
>      diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
>      diff -u tools/perf/arch/powerpc/entry/syscalls/syscall.tbl arch/powerpc/kernel/syscalls/syscall.tbl
>      diff -u tools/perf/arch/s390/entry/syscalls/syscall.tbl arch/s390/kernel/syscalls/syscall.tbl
>      diff -u tools/perf/arch/mips/entry/syscalls/syscall_n64.tbl arch/mips/kernel/syscalls/syscall_n64.tbl
>      diff -u tools/perf/arch/arm/entry/syscalls/syscall.tbl arch/arm/tools/syscall.tbl
>      diff -u tools/perf/arch/sh/entry/syscalls/syscall.tbl arch/sh/kernel/syscalls/syscall.tbl
>      diff -u tools/perf/arch/sparc/entry/syscalls/syscall.tbl arch/sparc/kernel/syscalls/syscall.tbl
>      diff -u tools/perf/arch/xtensa/entry/syscalls/syscall.tbl arch/xtensa/kernel/syscalls/syscall.tbl
>      diff -u tools/arch/arm64/include/uapi/asm/unistd.h arch/arm64/include/uapi/asm/unistd.h
>      diff -u tools/include/uapi/asm-generic/unistd.h include/uapi/asm-generic/unistd.h
> 
> Please see tools/include/uapi/README for further details.
> 
> Cc: linux-arch@...r.kernel.org
> Signed-off-by: Namhyung Kim <namhyung@...nel.org>
> ---
>   tools/arch/arm64/include/uapi/asm/unistd.h    | 24 +------------------
>   tools/include/uapi/asm-generic/unistd.h       |  4 +++-
>   .../perf/arch/arm/entry/syscalls/syscall.tbl  |  1 +
>   .../arch/mips/entry/syscalls/syscall_n64.tbl  |  1 +
>   .../arch/powerpc/entry/syscalls/syscall.tbl   |  1 +
>   .../perf/arch/s390/entry/syscalls/syscall.tbl |  1 +
>   tools/perf/arch/sh/entry/syscalls/syscall.tbl |  1 +
>   .../arch/sparc/entry/syscalls/syscall.tbl     |  1 +
>   .../arch/x86/entry/syscalls/syscall_32.tbl    |  3 ++-
>   .../arch/x86/entry/syscalls/syscall_64.tbl    |  1 +
>   .../arch/xtensa/entry/syscalls/syscall.tbl    |  1 +
>   tools/scripts/syscall.tbl                     |  1 +
>   12 files changed, 15 insertions(+), 25 deletions(-)
> 
> diff --git a/tools/arch/arm64/include/uapi/asm/unistd.h b/tools/arch/arm64/include/uapi/asm/unistd.h
> index 9306726337fe005e..df36f23876e863ff 100644
> --- a/tools/arch/arm64/include/uapi/asm/unistd.h
> +++ b/tools/arch/arm64/include/uapi/asm/unistd.h
> @@ -1,24 +1,2 @@
>   /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> -/*
> - * Copyright (C) 2012 ARM Ltd.
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License version 2 as
> - * published by the Free Software Foundation.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program.  If not, see <http://www.gnu.org/licenses/>.
> - */
> -
> -#define __ARCH_WANT_RENAMEAT
> -#define __ARCH_WANT_NEW_STAT
> -#define __ARCH_WANT_SET_GET_RLIMIT
> -#define __ARCH_WANT_TIME32_SYSCALLS
> -#define __ARCH_WANT_MEMFD_SECRET
> -
> -#include <asm-generic/unistd.h>
> +#include <asm/unistd_64.h>

Hi Namhyung,

Since we're not including the generic syscalls here anymore we now need 
to generate the syscall header file for the Perf build to work (build 
error pasted at the end for reference).

I had a go at adding the rule for it, but I saw that we'd need to pull 
in quite a bit from the kernel so it was blurring the lines about the 
separation of the tools/ folder. For example this file has the arm64 defs:

  arch/arm64/kernel/Makefile.syscalls

To make this common part of the makefile work:

  scripts/Makefile.asm-headers

Maybe we can just copy or reimplement Makefile.syscalls, but I'm not 
even sure if Makefile.asm-headers will work with the tools/ build 
structure so maybe that has to be re-implemented too. Adding Arnd to see 
what he thinks.

As far as I can tell this is a separate issue to the work that Charlie 
and Ian did recently to build all arch's syscall numbers into Perf to 
use for reporting, as this is requires a single header for the build.

Thanks
James

---

In file included from /usr/include/aarch64-linux-gnu/sys/syscall.h:24,
                  from evsel.c:4:
/home/jamcla02/workspace/linux/linux/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>
       |          ^~~~~~~~~~~~~~~~~




Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ