[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220507131146.834810-3-mailhol.vincent@wanadoo.fr>
Date: Sat, 7 May 2022 22:11:45 +0900
From: Vincent Mailhol <mailhol.vincent@...adoo.fr>
To: Masahiro Yamada <yamada.masahiro@...ionext.com>,
Masahiro Yamada <masahiroy@...nel.org>,
Michal Marek <michal.lkml@...kovi.net>,
Nick Desaulniers <ndesaulniers@...gle.com>
Cc: linux-kernel@...r.kernel.org, Arnd Bergmann <arnd@...db.de>,
Andy Shevchenko <andy.shevchenko@...il.com>,
Rikard Falkeborn <rikard.falkeborn@...il.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Kees Cook <keescook@...omium.org>,
Will Deacon <will@...nel.org>,
Peter Zijlstra <peterz@...radead.org>,
Vincent Mailhol <mailhol.vincent@...adoo.fr>
Subject: [RFC PATCH v2 2/2] kbuild: call check-atomics.sh only if prerequisites change
check-atomics.sh is executed unconditionally. Most developers will not
modify the files being checked by this script and thus do not need to
execute it again for each iterative make.
We first add an additional dependency to include/linux/atomic/* to
make sure that the script gets executed again if the headers are
modified. We then use the if_change macro instead of cmd. c.f. [1] and
create the dot file scripts/atomic/.check-atomics which is used for
the target timestamp. Finally, the dot file is added to the
CLEAN_FILES target.
[1] https://www.kernel.org/doc/html/latest/kbuild/makefiles.html#command-change-detection
Signed-off-by: Vincent Mailhol <mailhol.vincent@...adoo.fr>
---
Kbuild | 7 ++++---
Makefile | 3 ++-
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/Kbuild b/Kbuild
index fa441b98c9f6..c3cb76ebcbaf 100644
--- a/Kbuild
+++ b/Kbuild
@@ -50,10 +50,11 @@ missing-syscalls: scripts/checksyscalls.sh $(offsets-file) FORCE
#####
# Check atomic headers are up-to-date
-always-y += old-atomics
+always-y += scripts/atomic/.check-atomics
quiet_cmd_atomics = CALL $<
cmd_atomics = $(CONFIG_SHELL) $<
-old-atomics: scripts/atomic/check-atomics.sh FORCE
- $(call cmd,atomics)
+scripts/atomic/.check-atomics: scripts/atomic/check-atomics.sh $(wildcard include/linux/atomic/*) FORCE
+ $(call if_changed,atomics)
+ @touch $@
diff --git a/Makefile b/Makefile
index 9a820c525b86..9e815c8bb0b6 100644
--- a/Makefile
+++ b/Makefile
@@ -1483,7 +1483,8 @@ endif # CONFIG_MODULES
# Directories & files removed with 'make clean'
CLEAN_FILES += include/ksym vmlinux.symvers modules-only.symvers \
modules.builtin modules.builtin.modinfo modules.nsdeps \
- compile_commands.json .thinlto-cache
+ compile_commands.json .thinlto-cache \
+ scripts/atomic/.check-atomics
# Directories & files removed with 'make mrproper'
MRPROPER_FILES += include/config include/generated \
--
2.35.1
Powered by blists - more mailing lists