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

Reply via email to