On 2018-10-27 21:47, Alexey Dobriyan wrote: > On Fri, Oct 26, 2018 at 11:20:34PM +0200, Rasmus Villemoes wrote: >> +#include <generated/compile.h> > >> +#define linux_proc_banner \ >> + "%s version %s" \ >> + " (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")" \ >> + " (" LINUX_COMPILER ") %s\n" > > Include doesn't work if compiling from scratch: Urgh, thanks. I assumed that all the include/generated/ stuff was always generated by the prepare steps in the top Makefile. But the logic for making compile.h is in init/Makefile. > rm -rf ../obj > mkdir ../obj > make O=../obj defconfig > make O=../obj fs/proc/version.o > > CC fs/proc/version.o > fs/proc/version.c:2:10: fatal error: generated/compile.h: No such file or directory The same happens in current mainline for arch/x86/boot/version.o: $ make arch/x86/boot/version.o CALL scripts/checksyscalls.sh DESCEND objtool CC arch/x86/boot/version.o arch/x86/boot/version.c:17:31: fatal error: generated/compile.h: No such file or directory Cc kbuild: Wouldn't it be a little nicer creating generated/compile.h along with the other files in generated/, so that everybody can rely on them being there instead of having the logic for compile.h hidden away in init/Makefile and listing it as an explicit dependency? Or is there some reason compile.h is special? Rasmus