From: "André Almeida" <andrealmeid@igalia.com>
To: Masami Hiramatsu <mhiramat@kernel.org>, Arnd Bergmanon <arnd@arndb.de>
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,
"André Almeida" <andrealmeid@igalia.com>
Subject: [PATCH v8 03/12] scripts/syscall.tbl: Use the common table
Date: Fri, 18 Sep 2026 21:31:10 -0300 [thread overview]
Message-ID: <20260918-tonyk-syscall_table-v8-3-0e2d60cad13e@igalia.com> (raw)
In-Reply-To: <20260918-tonyk-syscall_table-v8-0-0e2d60cad13e@igalia.com>
Remove some of the duplicated code by using the common syscall number
table.
Signed-off-by: André Almeida <andrealmeid@igalia.com>
---
arch/arc/kernel/Makefile.syscalls | 2 +-
arch/arm64/kernel/Makefile.syscalls | 2 +-
arch/arm64/tools/syscall_32.tbl | 69 ---------------------------------
arch/csky/kernel/Makefile.syscalls | 3 +-
arch/hexagon/kernel/Makefile.syscalls | 2 +-
arch/loongarch/kernel/Makefile.syscalls | 4 +-
arch/nios2/kernel/Makefile.syscalls | 2 +-
arch/nios2/kernel/syscall_table.c | 1 -
arch/openrisc/kernel/Makefile.syscalls | 2 +-
arch/openrisc/kernel/sys_call_table.c | 1 -
arch/riscv/kernel/Makefile.syscalls | 4 +-
| 11 +++---
scripts/syscall.tbl | 69 ---------------------------------
13 files changed, 16 insertions(+), 156 deletions(-)
diff --git a/arch/arc/kernel/Makefile.syscalls b/arch/arc/kernel/Makefile.syscalls
index 391d30ab7a83..507c4fff3f6b 100644
--- a/arch/arc/kernel/Makefile.syscalls
+++ b/arch/arc/kernel/Makefile.syscalls
@@ -1,3 +1,3 @@
# SPDX-License-Identifier: GPL-2.0
-syscall_abis_32 += arc time32 renameat stat64 rlimit
+syscall_abis_32 += arc time32 renameat stat64 rlimit clone3
diff --git a/arch/arm64/kernel/Makefile.syscalls b/arch/arm64/kernel/Makefile.syscalls
index 0542a718871a..2a5d8b51f647 100644
--- a/arch/arm64/kernel/Makefile.syscalls
+++ b/arch/arm64/kernel/Makefile.syscalls
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
syscall_abis_32 +=
-syscall_abis_64 += renameat rlimit memfd_secret
+syscall_abis_64 += renameat rlimit memfd_secret clone3
syscalltbl = arch/arm64/tools/syscall_%.tbl
diff --git a/arch/arm64/tools/syscall_32.tbl b/arch/arm64/tools/syscall_32.tbl
index df2d1d82fb3c..957cb7d59443 100644
--- a/arch/arm64/tools/syscall_32.tbl
+++ b/arch/arm64/tools/syscall_32.tbl
@@ -415,72 +415,3 @@
400 common migrate_pages sys_migrate_pages
401 common kexec_file_load sys_kexec_file_load
# 402 is unused
-403 common clock_gettime64 sys_clock_gettime
-404 common clock_settime64 sys_clock_settime
-405 common clock_adjtime64 sys_clock_adjtime
-406 common clock_getres_time64 sys_clock_getres
-407 common clock_nanosleep_time64 sys_clock_nanosleep
-408 common timer_gettime64 sys_timer_gettime
-409 common timer_settime64 sys_timer_settime
-410 common timerfd_gettime64 sys_timerfd_gettime
-411 common timerfd_settime64 sys_timerfd_settime
-412 common utimensat_time64 sys_utimensat
-413 common pselect6_time64 sys_pselect6 compat_sys_pselect6_time64
-414 common ppoll_time64 sys_ppoll compat_sys_ppoll_time64
-416 common io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64
-417 common recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64
-418 common mq_timedsend_time64 sys_mq_timedsend
-419 common mq_timedreceive_time64 sys_mq_timedreceive
-420 common semtimedop_time64 sys_semtimedop
-421 common rt_sigtimedwait_time64 sys_rt_sigtimedwait compat_sys_rt_sigtimedwait_time64
-422 common futex_time64 sys_futex
-423 common sched_rr_get_interval_time64 sys_sched_rr_get_interval
-424 common pidfd_send_signal sys_pidfd_send_signal
-425 common io_uring_setup sys_io_uring_setup
-426 common io_uring_enter sys_io_uring_enter
-427 common io_uring_register sys_io_uring_register
-428 common open_tree sys_open_tree
-429 common move_mount sys_move_mount
-430 common fsopen sys_fsopen
-431 common fsconfig sys_fsconfig
-432 common fsmount sys_fsmount
-433 common fspick sys_fspick
-434 common pidfd_open sys_pidfd_open
-435 common clone3 sys_clone3
-436 common close_range sys_close_range
-437 common openat2 sys_openat2
-438 common pidfd_getfd sys_pidfd_getfd
-439 common faccessat2 sys_faccessat2
-440 common process_madvise sys_process_madvise
-441 common epoll_pwait2 sys_epoll_pwait2 compat_sys_epoll_pwait2
-442 common mount_setattr sys_mount_setattr
-443 common quotactl_fd sys_quotactl_fd
-444 common landlock_create_ruleset sys_landlock_create_ruleset
-445 common landlock_add_rule sys_landlock_add_rule
-446 common landlock_restrict_self sys_landlock_restrict_self
-# 447 reserved for memfd_secret
-448 common process_mrelease sys_process_mrelease
-449 common futex_waitv sys_futex_waitv
-450 common set_mempolicy_home_node sys_set_mempolicy_home_node
-451 common cachestat sys_cachestat
-452 common fchmodat2 sys_fchmodat2
-453 common map_shadow_stack sys_map_shadow_stack
-454 common futex_wake sys_futex_wake
-455 common futex_wait sys_futex_wait
-456 common futex_requeue sys_futex_requeue
-457 common statmount sys_statmount
-458 common listmount sys_listmount
-459 common lsm_get_self_attr sys_lsm_get_self_attr
-460 common lsm_set_self_attr sys_lsm_set_self_attr
-461 common lsm_list_modules sys_lsm_list_modules
-462 common mseal sys_mseal
-463 common setxattrat sys_setxattrat
-464 common getxattrat sys_getxattrat
-465 common listxattrat sys_listxattrat
-466 common removexattrat sys_removexattrat
-467 common open_tree_attr sys_open_tree_attr
-468 common file_getattr sys_file_getattr
-469 common file_setattr sys_file_setattr
-470 common listns sys_listns
-471 common rseq_slice_yield sys_rseq_slice_yield
-472 common fchroot sys_fchroot
diff --git a/arch/csky/kernel/Makefile.syscalls b/arch/csky/kernel/Makefile.syscalls
index 3df3b5822fce..15783a984619 100644
--- a/arch/csky/kernel/Makefile.syscalls
+++ b/arch/csky/kernel/Makefile.syscalls
@@ -1,4 +1,3 @@
# SPDX-License-Identifier: GPL-2.0
-syscall_abis_32 += csky time32 stat64 rlimit
-
+syscall_abis_32 += csky time32 stat64 rlimit clone3
diff --git a/arch/hexagon/kernel/Makefile.syscalls b/arch/hexagon/kernel/Makefile.syscalls
index d2b7c5d44d95..d164b9728d23 100644
--- a/arch/hexagon/kernel/Makefile.syscalls
+++ b/arch/hexagon/kernel/Makefile.syscalls
@@ -1,3 +1,3 @@
# SPDX-License-Identifier: GPL-2.0
-syscall_abis_32 += hexagon time32 stat64 rlimit renameat
+syscall_abis_32 += hexagon time32 stat64 rlimit renameat clone3
diff --git a/arch/loongarch/kernel/Makefile.syscalls b/arch/loongarch/kernel/Makefile.syscalls
index 06f160502537..dbfddf37b329 100644
--- a/arch/loongarch/kernel/Makefile.syscalls
+++ b/arch/loongarch/kernel/Makefile.syscalls
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: GPL-2.0
-syscall_abis_32 += memfd_secret
-syscall_abis_64 += memfd_secret
+syscall_abis_32 += memfd_secret clone3
+syscall_abis_64 += memfd_secret clone3
diff --git a/arch/nios2/kernel/Makefile.syscalls b/arch/nios2/kernel/Makefile.syscalls
index 579a9daec272..cf68c3e82d5e 100644
--- a/arch/nios2/kernel/Makefile.syscalls
+++ b/arch/nios2/kernel/Makefile.syscalls
@@ -1,3 +1,3 @@
# SPDX-License-Identifier: GPL-2.0
-syscall_abis_32 += nios2 time32 stat64 renameat rlimit
+syscall_abis_32 += nios2 time32 stat64 renameat rlimit __clone3
diff --git a/arch/nios2/kernel/syscall_table.c b/arch/nios2/kernel/syscall_table.c
index c99818aac9e1..434694067d8f 100644
--- a/arch/nios2/kernel/syscall_table.c
+++ b/arch/nios2/kernel/syscall_table.c
@@ -13,7 +13,6 @@
#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native)
#define sys_mmap2 sys_mmap_pgoff
-#define sys_clone3 __sys_clone3
void *sys_call_table[__NR_syscalls] = {
[0 ... __NR_syscalls-1] = sys_ni_syscall,
diff --git a/arch/openrisc/kernel/Makefile.syscalls b/arch/openrisc/kernel/Makefile.syscalls
index 525a1e7e7fc9..85306750e03c 100644
--- a/arch/openrisc/kernel/Makefile.syscalls
+++ b/arch/openrisc/kernel/Makefile.syscalls
@@ -1,3 +1,3 @@
# SPDX-License-Identifier: GPL-2.0
-syscall_abis_32 += or1k time32 stat64 rlimit renameat
+syscall_abis_32 += or1k time32 stat64 rlimit renameat __clone3
diff --git a/arch/openrisc/kernel/sys_call_table.c b/arch/openrisc/kernel/sys_call_table.c
index b2f57e2538f7..7dda255db7d9 100644
--- a/arch/openrisc/kernel/sys_call_table.c
+++ b/arch/openrisc/kernel/sys_call_table.c
@@ -21,7 +21,6 @@
#define sys_mmap2 sys_mmap_pgoff
#define sys_clone __sys_clone
-#define sys_clone3 __sys_clone3
#define sys_fork __sys_fork
void *sys_call_table[__NR_syscalls] = {
diff --git a/arch/riscv/kernel/Makefile.syscalls b/arch/riscv/kernel/Makefile.syscalls
index 9668fd1faf60..436123cf0ee5 100644
--- a/arch/riscv/kernel/Makefile.syscalls
+++ b/arch/riscv/kernel/Makefile.syscalls
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: GPL-2.0
-syscall_abis_32 += riscv memfd_secret
-syscall_abis_64 += riscv rlimit memfd_secret
+syscall_abis_32 += riscv memfd_secret clone3
+syscall_abis_64 += riscv rlimit memfd_secret clone3
--git a/scripts/Makefile.asm-headers b/scripts/Makefile.asm-headers
index f1c3d287c14b..89706d20f896 100644
--- a/scripts/Makefile.asm-headers
+++ b/scripts/Makefile.asm-headers
@@ -18,6 +18,7 @@ src := $(srctree)/$(subst /generated,,$(obj))
syscall_abis_32 += common,32
syscall_abis_64 += common,64
syscalltbl := $(srctree)/scripts/syscall.tbl
+syscalltbl_common := $(srctree)/scripts/syscall_common.tbl
syshdr-args := --emit-nr
# let architectures override $(syscall_abis_%) and $(syscalltbl)
@@ -57,14 +58,14 @@ quiet_cmd_remove = REMOVE $(unwanted)
cmd_remove = rm -f $(unwanted); find $(obj) -type d -empty -delete
quiet_cmd_syshdr = SYSHDR $@
- cmd_syshdr = $(CONFIG_SHELL) $(syshdr) \
+ cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --common-tbl $(syscalltbl_common) \
$(if $(syshdr-args-$*),$(syshdr-args-$*),$(syshdr-args)) \
$(if $(syscall_compat),--prefix "compat$*_") \
--abis $(subst $(space),$(comma),$(strip $(syscall_abis_$*))) \
$< $@
quiet_cmd_systbl = SYSTBL $@
- cmd_systbl = $(CONFIG_SHELL) $(systbl) \
+ cmd_systbl = $(CONFIG_SHELL) $(systbl) --common-tbl $(syscalltbl_common) \
$(if $(systbl-args-$*),$(systbl-args-$*),$(systbl-args)) \
--abis $(subst $(space),$(comma),$(strip $(syscall_abis_$*))) \
$< $@
@@ -76,14 +77,14 @@ all: $(generic-y) $(syscall-y)
$(obj)/%.h: $(srctree)/$(generic)/%.h FORCE
$(call filechk,wrap)
-$(obj)/unistd_%.h: $(syscalltbl) $(syshdr) FORCE
+$(obj)/unistd_%.h: $(syscalltbl) $(syscalltbl_common) $(syshdr) FORCE
$(call if_changed,syshdr)
$(obj)/unistd_compat_%.h: syscall_compat:=1
-$(obj)/unistd_compat_%.h: $(syscalltbl) $(syshdr) FORCE
+$(obj)/unistd_compat_%.h: $(syscalltbl) $(syscalltbl_common) $(syshdr) FORCE
$(call if_changed,syshdr)
-$(obj)/syscall_table_%.h: $(syscalltbl) $(systbl) FORCE
+$(obj)/syscall_table_%.h: $(syscalltbl) $(syscalltbl_common) $(systbl) FORCE
$(call if_changed,systbl)
targets := $(syscall-y)
diff --git a/scripts/syscall.tbl b/scripts/syscall.tbl
index 0ab531605120..ee828d03094e 100644
--- a/scripts/syscall.tbl
+++ b/scripts/syscall.tbl
@@ -344,72 +344,3 @@
293 common rseq sys_rseq
294 common kexec_file_load sys_kexec_file_load
# 295 through 402 are unassigned to sync up with generic numbers don't use
-403 32 clock_gettime64 sys_clock_gettime
-404 32 clock_settime64 sys_clock_settime
-405 32 clock_adjtime64 sys_clock_adjtime
-406 32 clock_getres_time64 sys_clock_getres
-407 32 clock_nanosleep_time64 sys_clock_nanosleep
-408 32 timer_gettime64 sys_timer_gettime
-409 32 timer_settime64 sys_timer_settime
-410 32 timerfd_gettime64 sys_timerfd_gettime
-411 32 timerfd_settime64 sys_timerfd_settime
-412 32 utimensat_time64 sys_utimensat
-413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64
-414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64
-416 32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64
-417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64
-418 32 mq_timedsend_time64 sys_mq_timedsend
-419 32 mq_timedreceive_time64 sys_mq_timedreceive
-420 32 semtimedop_time64 sys_semtimedop
-421 32 rt_sigtimedwait_time64 sys_rt_sigtimedwait compat_sys_rt_sigtimedwait_time64
-422 32 futex_time64 sys_futex
-423 32 sched_rr_get_interval_time64 sys_sched_rr_get_interval
-424 common pidfd_send_signal sys_pidfd_send_signal
-425 common io_uring_setup sys_io_uring_setup
-426 common io_uring_enter sys_io_uring_enter
-427 common io_uring_register sys_io_uring_register
-428 common open_tree sys_open_tree
-429 common move_mount sys_move_mount
-430 common fsopen sys_fsopen
-431 common fsconfig sys_fsconfig
-432 common fsmount sys_fsmount
-433 common fspick sys_fspick
-434 common pidfd_open sys_pidfd_open
-435 common clone3 sys_clone3
-436 common close_range sys_close_range
-437 common openat2 sys_openat2
-438 common pidfd_getfd sys_pidfd_getfd
-439 common faccessat2 sys_faccessat2
-440 common process_madvise sys_process_madvise
-441 common epoll_pwait2 sys_epoll_pwait2 compat_sys_epoll_pwait2
-442 common mount_setattr sys_mount_setattr
-443 common quotactl_fd sys_quotactl_fd
-444 common landlock_create_ruleset sys_landlock_create_ruleset
-445 common landlock_add_rule sys_landlock_add_rule
-446 common landlock_restrict_self sys_landlock_restrict_self
-447 memfd_secret memfd_secret sys_memfd_secret
-448 common process_mrelease sys_process_mrelease
-449 common futex_waitv sys_futex_waitv
-450 common set_mempolicy_home_node sys_set_mempolicy_home_node
-451 common cachestat sys_cachestat
-452 common fchmodat2 sys_fchmodat2
-453 common map_shadow_stack sys_map_shadow_stack
-454 common futex_wake sys_futex_wake
-455 common futex_wait sys_futex_wait
-456 common futex_requeue sys_futex_requeue
-457 common statmount sys_statmount
-458 common listmount sys_listmount
-459 common lsm_get_self_attr sys_lsm_get_self_attr
-460 common lsm_set_self_attr sys_lsm_set_self_attr
-461 common lsm_list_modules sys_lsm_list_modules
-462 common mseal sys_mseal
-463 common setxattrat sys_setxattrat
-464 common getxattrat sys_getxattrat
-465 common listxattrat sys_listxattrat
-466 common removexattrat sys_removexattrat
-467 common open_tree_attr sys_open_tree_attr
-468 common file_getattr sys_file_getattr
-469 common file_setattr sys_file_setattr
-470 common listns sys_listns
-471 common rseq_slice_yield sys_rseq_slice_yield
-472 common fchroot sys_fchroot
--
2.55.0
next prev parent reply other threads:[~2026-09-19 0:31 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-19 0:31 [PATCH v8 00/12] syscalls: Add a shared table for all archs André Almeida
2026-09-19 0:31 ` [PATCH v8 01/12] syscalls: Make --abis parsing more robust André Almeida
2026-09-19 0:31 ` [PATCH v8 02/12] syscalls: Create unified partial table for all archs André Almeida
2026-09-19 0:31 ` André Almeida [this message]
2026-09-19 0:31 ` [PATCH v8 04/12] s390: Use the common syscall table André Almeida
2026-09-19 0:31 ` [PATCH v8 05/12] sparc: " André Almeida
2026-09-19 0:31 ` [PATCH v8 06/12] mips: Remove duplicated syscallnr.sh André Almeida
2026-09-19 0:31 ` [PATCH v8 07/12] mips: Get rid of custom mips ABIs for syscall tables André Almeida
2026-09-19 0:31 ` [PATCH v8 08/12] mips: Use the common syscall table André Almeida
2026-09-19 0:31 ` [PATCH v8 09/12] syscalls: Add an option for offsetting the common table André Almeida
2026-09-19 0:31 ` [PATCH v8 10/12] alpha: Define entry point for set_mempolicy_home_node syscall André Almeida
2026-09-19 0:31 ` [PATCH v8 11/12] alpha: Remove alpha_ prefix from custom syscall entries André Almeida
2026-09-19 0:31 ` [PATCH v8 12/12] alpha: Use the common syscall table André Almeida
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=20260918-tonyk-syscall_table-v8-3-0e2d60cad13e@igalia.com \
--to=andrealmeid@igalia.com \
--cc=arnd@arndb.de \
--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