On Tue, Oct 30, 2018 at 5:18 PM Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> wrote: > > 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 > I think the basic idea is, the build version should not be incremented if you do incremental build without touching any source file. If you create/update <generated/compile.h> first, you never know whether the .version should be incremented or not. -- Best Regards Masahiro Yamada