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

From: Rasmus Villemoes
Date: Tue Oct 30 2018 - 04:18:06 EST

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_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/
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?