From: "Arnd Bergmann" <arnd@arndb.de>
To: "André Almeida" <andrealmeid@igalia.com>,
"Masami Hiramatsu" <mhiramat@kernel.org>
Cc: "Christian Brauner" <brauner@kernel.org>,
linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org,
kernel-dev@igalia.com,
"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
linux-alpha@vger.kernel.org, linux-s390@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, soc@lists.linux.dev,
linux-mips@vger.kernel.org, sparclinux@vger.kernel.org
Subject: Re: [PATCH v7 04/13] arm: Use the common syscall table
Date: Fri, 18 Sep 2026 08:22:24 +0200 [thread overview]
Message-ID: <4fa47186-08b3-4b2a-bbcc-16b14a50ee21@app.fastmail.com> (raw)
In-Reply-To: <20260917-tonyk-syscall_table-v7-4-f4cd8f8e3265@igalia.com>
On Fri, Sep 18, 2026, at 01:46, André Almeida wrote:
> Remove some of the duplicated code by using the common syscall number
> table.
>
> Signed-off-by: André Almeida <andrealmeid@igalia.com>
> ---
> Changes from v6:
> - Added back syscalls from 403 to 423 to local table. arm32 can't use the
> common table for those syscalls, because arm doesn't implements compat_
> entry points for syscalls like pselect6, ppoll, etc., and OABI uses compat_
> entry points when it's available, so this would cause a build error.
That's too bad, especially if this is only needed for OABI, which
nobody should be using any more. I had hoped we could kill off OABI
soonish, but that is currently blocked on the discussion about keeping
RiscPC alive.
One possible idea would be to rework the table to differentiate
the cases using separate ABI tags for the three cases (EABI native,
OABI native, OABI on EABI), instead of using the compat column:
--- a/arch/arm/tools/syscall.tbl
+++ b/arch/arm/tools/syscall.tbl
@@ -115,7 +115,8 @@
99 common statfs sys_statfs
100 common fstatfs sys_fstatfs
# 101 was sys_ioperm
-102 oabi socketcall sys_socketcall sys_oabi_socketcall
+102 oabi socketcall sys_socketcall
+102 oabic socketcall sys_oabi_socketcall
103 common syslog sys_syslog
104 common setitimer sys_setitimer
105 common getitimer sys_getitimer
@@ -131,7 +132,8 @@
114 common wait4 sys_wait4
115 common swapoff sys_swapoff
116 common sysinfo sys_sysinfo
-117 oabi ipc sys_ipc sys_oabi_ipc
+117 oabi ipc sys_ipc
+117 oabic ipc sys_oabi_ipc
118 common fsync sys_fsync
119 common sigreturn sys_sigreturn_wrapper
120 common clone sys_clone
@@ -194,8 +196,12 @@
177 common rt_sigtimedwait sys_rt_sigtimedwait_time32
178 common rt_sigqueueinfo sys_rt_sigqueueinfo
179 common rt_sigsuspend sys_rt_sigsuspend
-180 common pread64 sys_pread64 sys_oabi_pread64
-181 common pwrite64 sys_pwrite64 sys_oabi_pwrite64
+180 eabi pread64 sys_pread64
+180 oabi pread64 sys_pread64
+180 oabic pread64 sys_oabi_pread64
+181 eabi pwrite64 sys_pwrite64
+181 oabi pwrite64 sys_pwrite64
+181 oabic pwrite64 sys_oabi_pwrite64
182 common chown sys_chown16
183 common getcwd sys_getcwd
184 common capget sys_capget
...
Not great, but it has the additional advantage of finally being able
to share the table file with the arm64 copy.
Another idea would be to actually add the six compat_sys_
entry points for OABI from the common table, or redirect
them like
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h
index 9fb00973c608..1ff4b6579ba1 100644
--- a/arch/arm/include/asm/unistd.h
+++ b/arch/arm/include/asm/unistd.h
@@ -33,6 +33,15 @@
#define __ARCH_WANT_SYS_OLD_GETRLIMIT
#define __ARCH_WANT_OLD_READDIR
#define __ARCH_WANT_SYS_SOCKETCALL
+
+/* allow using compat column from shared syscall table */
+#define compat_sys_pselect6_time64 sys_pselect6_time64
+#define compat_sys_ppoll_time64 sys_ppoll_time64
+#define compat_sys_io_pgetevents_time64 sys_io_pgetevents_time64
+#define compat_sys_recvmmsg_time64 sys_recvmmsg_time64
+#define compat_sys_rt_sigtimedwait_time64 sys_rt_sigtimedwait_time64
+#define compat_sys_epoll_pwait2 sys_epoll_pwait2
+
#endif
#define __ARCH_WANT_SYS_FORK
#define __ARCH_WANT_SYS_VFORK
This would be the least invasive here, but also the least intuitive.
Arnd
next prev parent reply other threads:[~2026-09-18 6:22 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-17 23:46 [PATCH v7 00/13] syscalls: Add a shared table for all archs André Almeida
2026-09-17 23:46 ` [PATCH v7 01/13] syscalls: Make --abis parsing more robust André Almeida
2026-09-17 23:46 ` [PATCH v7 02/13] syscalls: Create unified partial table for all archs André Almeida
2026-09-17 23:46 ` [PATCH v7 03/13] scripts/syscall.tbl: Use the common table André Almeida
2026-09-18 6:34 ` Arnd Bergmann
2026-09-18 19:58 ` André Almeida
2026-09-17 23:46 ` [PATCH v7 04/13] arm: Use the common syscall table André Almeida
2026-09-18 6:22 ` Arnd Bergmann [this message]
2026-09-18 20:10 ` André Almeida
2026-09-17 23:46 ` [PATCH v7 05/13] s390: " André Almeida
2026-09-17 23:46 ` [PATCH v7 06/13] sparc: " André Almeida
2026-09-17 23:46 ` [PATCH v7 07/13] mips: Remove duplicated syscallnr.sh André Almeida
2026-09-17 23:46 ` [PATCH v7 08/13] mips: Get rid of custom mips ABIs for syscall tables André Almeida
2026-09-17 23:46 ` [PATCH v7 09/13] mips: Use the common syscall table André Almeida
2026-09-18 6:56 ` Arnd Bergmann
2026-09-17 23:46 ` [PATCH v7 10/13] syscalls: Add an option for offsetting the common table André Almeida
2026-09-17 23:46 ` [PATCH v7 11/13] alpha: Define entry point for set_mempolicy_home_node syscall André Almeida
2026-09-18 11:36 ` Magnus Lindholm
2026-09-17 23:46 ` [PATCH v7 12/13] alpha: Remove alpha_ prefix from custom syscall entries André Almeida
2026-09-18 10:54 ` Magnus Lindholm
2026-09-18 20:11 ` André Almeida
2026-09-17 23:46 ` [PATCH v7 13/13] alpha: Use the common syscall table André Almeida
2026-09-18 10:57 ` Magnus Lindholm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4fa47186-08b3-4b2a-bbcc-16b14a50ee21@app.fastmail.com \
--to=arnd@arndb.de \
--cc=andrealmeid@igalia.com \
--cc=brauner@kernel.org \
--cc=kernel-dev@igalia.com \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=soc@lists.linux.dev \
--cc=sparclinux@vger.kernel.org \
--cc=tsbogend@alpha.franken.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®