Re: [PATCH] fs: proc: move linux_proc_banner to where it is used

From: Masahiro Yamada
Date: Mon Nov 05 2018 - 12:29:22 EST


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