]> www.infradead.org Git - users/hch/dma-mapping.git/commitdiff
kbuild: fix rebuild of generic syscall headers
authorMasahiro Yamada <masahiroy@kernel.org>
Wed, 17 Jul 2024 16:24:20 +0000 (01:24 +0900)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 18 Jul 2024 17:01:55 +0000 (10:01 -0700)
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>
scripts/Makefile.asm-headers

index 6b8e8318e810deab2a6ebe282e5ee02a590e09de..8a4856e7418033a4bd35e62333937239a5f783bf 100644 (file)
@@ -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)