checksyscalls: only run when necessary

Currently checksyscalls.sh is unconditionally executed during each build.
Most of these executions are unnecessary.

Only run checksyscalls.sh if one of its inputs have changed.

This new logic does not work for the multiple invocations done for MIPS.
The effect is that checksyscalls.sh is still executed unconditionally.
However this is not worse than before.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Nicolas Schier <nsc@kernel.org>
Link: https://patch.msgid.link/20260402-kbuild-missing-syscalls-v3-2-6641be1de2db@weissschuh.net
Signed-off-by: Nicolas Schier <nsc@kernel.org>
This commit is contained in:
Thomas Weißschuh
2026-04-02 16:36:19 +02:00
committed by Nicolas Schier
parent e856b6ca14
commit b34db3fa85
2 changed files with 14 additions and 3 deletions

12
Kbuild
View File

@@ -47,12 +47,18 @@ $(rq-offsets-file): kernel/sched/rq-offsets.s FORCE
# Check for missing system calls
missing-syscalls-file := .tmp_missing-syscalls
targets += $(missing-syscalls-file)
quiet_cmd_syscalls = CALL $<
cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags)
cmd_syscalls = DEPFILE=$(depfile) $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags); touch $@
$(missing-syscalls-file): scripts/checksyscalls.sh $(rq-offsets-file) FORCE
$(call if_changed_dep,syscalls)
PHONY += missing-syscalls
missing-syscalls: scripts/checksyscalls.sh $(rq-offsets-file)
$(call cmd,syscalls)
missing-syscalls: $(missing-syscalls-file)
# Check the manual modification of atomic headers

View File

@@ -275,3 +275,8 @@ syscall_list() {
(ignore_list && syscall_list ${reference_table}) | \
$* -Wno-error -Wno-unused-macros -E -x c - > /dev/null
# For fixdep
if [ -n "${DEPFILE}" ]; then
echo "${0}: ${0} ${reference_table}" >> "${DEPFILE}"
fi