summaryrefslogtreecommitdiff
path: root/scripts/Makefile.asm-headers
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2024-07-18 01:24:20 +0900
committerLinus Torvalds <torvalds@linux-foundation.org>2024-07-18 10:01:55 -0700
commit49208b67585d18521225bf72bf842593cea711f8 (patch)
tree5172d89e11177dea8cc8f496bd0887b9b2a27400 /scripts/Makefile.asm-headers
parentb3ce7a30847a54a7f96a35e609303d8afecd460b (diff)
kbuild: fix rebuild of generic syscall headers
Commit fbb5c0606fa4 ("kbuild: add syscall table generation to scripts/Makefile.asm-headers") started to generate syscall headers for architectures using generic syscalls. However, these headers are always rebuilt using GNU Make 4.4.1 or newer. When using GNU Make 4.4 or older, these headers are not rebuilt when the command to generate them is changed, despite the use of the if_changed macro. scripts/Makefile.asm-headers now uses FORCE, but it is not marked as .PHONY. To handle the command line change correctly, .*.cmd files must be included. Fixes: fbb5c0606fa4 ("kbuild: add syscall table generation to scripts/Makefile.asm-headers") Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Closes: https://lore.kernel.org/lkml/CAHk-=wibB7SvXnUftBgAt+4-3vEKRpvEgBeDEH=i=j2GvDitoA@mail.gmail.com/ Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Tested-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'scripts/Makefile.asm-headers')
-rw-r--r--scripts/Makefile.asm-headers8
1 files changed, 8 insertions, 0 deletions
diff --git a/scripts/Makefile.asm-headers b/scripts/Makefile.asm-headers
index 6b8e8318e810..8a4856e74180 100644
--- a/scripts/Makefile.asm-headers
+++ b/scripts/Makefile.asm-headers
@@ -87,12 +87,20 @@ $(obj)/unistd_compat_%.h: $(syscalltbl) $(syshdr) FORCE
$(obj)/syscall_table_%.h: $(syscalltbl) $(systbl) FORCE
$(call if_changed,systbl)
+targets := $(syscall-y)
+
# Create output directory. Skip it if at least one old header exists
# since we know the output directory already exists.
ifeq ($(old-headers),)
$(shell mkdir -p $(obj))
endif
+PHONY += FORCE
+
FORCE:
+existing-targets := $(wildcard $(sort $(targets)))
+
+-include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
+
.PHONY: $(PHONY)