Re: Dependency issue through subdir's

From: Kieran Bingham
Date: Mon Jan 25 2016 - 11:23:07 EST

Hi Michal,

Thanks for your fast response!

On 25/01/16 13:22, Michal Marek wrote:
> On 2016-01-25 12:33, Kieran Bingham wrote:
>> This is functional on a make -j1 build, however at -j2 and above (from a
>> clean build), kbuild attempts to generate my file before
>> include/generated/timeconst.h resulting in the following error:
>> --- 8< ---
>> GEN scripts/gdb/linux/
>> In file included from sources/linux/include/linux/ktime.h:25:0,
>> from /linux/include/linux/rcupdate.h:47,
>> from /linux/include/linux/rbtree.h:34,
>> from /linux/include/linux/mm_types.h:9,
>> from /linux/arch/x86/include/asm/pgtable.h:448,
>> from /linux/scripts/gdb/linux/
>> sources/linux/include/linux/jiffies.h:10:33: fatal error:
>> generated/timeconst.h: No such file or directory
>> --- >8 ---
> [...]
>> 2) Move the code that generates this file to /Kbuild. However I don't
>> like the idea of putting non-essential generator at the top level build
> You can keep the code in scripts/gdb/..., just move it out of $(always)
> and have the toplevel Kbuild file call something like
> $(MAKE) $(obj)=scripts/gdb/linux build_constants

Looks like this will have to be the path forwards, as it appears I do
need some of the generated headers...

>> 3) Add #ifndef __GENERATE_CONSTANTS_PY__ across any reference to
>> generated header files, such as in ktime.h, and define that with my
>> Preprocessor statement.

Hrm ...
This simply moves the error on to the next generated file :
generated/bounds.h: which unfortunately I do need!

> If you do not need the generated headers, this might be the least evil.
> We already have the COMPILE_OFFSETS and __GENERATING_BOUNDS_H defines
> for a similar purpose.
> Michal

I've got a working patch now for the $(MAKE) version,
however I've had to use $(build)=scripts/gdb/linux build_constants to
make it work.

Thanks again for your help

Kieran Bingham