Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-22 Thread Masahiro Yamada
Hi Frank

2018-08-22 3:02 GMT+09:00 Frank Rowand :
> On 08/21/18 00:18, Masahiro Yamada wrote:
>> Hi Frank,
>>
>>
>> 2018-08-21 14:37 GMT+09:00 Frank Rowand :
>>> On 08/20/18 19:08, Masahiro Yamada wrote:
 Hi Frank,

 2018-08-21 10:31 GMT+09:00 Frank Rowand :
> On 08/20/18 14:32, Rob Herring wrote:
>> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  
>> wrote:
>>>
>>> On 07/03/18 18:59, Masahiro Yamada wrote:
 It is tedious to specify extra compiler options for every file.
 HOST_EXTRACFLAGS is useful to add options to all files in a
 directory.

 -I$(src)/libfdt is needed for all the files in this directory
 to include libfdt_env.h etc. from scripts/dtc/libfdt/.

 On the other hand, -I$(src) is used to include check-in headers
 from generated C files.  Thus, I added it only to dtc-lexer.lex.o
 and dtc-parser.tab.o .

 Signed-off-by: Masahiro Yamada 
 ---

  scripts/dtc/Makefile | 18 --
  1 file changed, 4 insertions(+), 14 deletions(-)

 diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
 index 9cac65b..1c943e0 100644
 --- a/scripts/dtc/Makefile
 +++ b/scripts/dtc/Makefile
 @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
 livetree.o treesource.o \
  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o

  # Source files need to get at the userspace version of libfdt_env.h 
 to compile
 +HOST_EXTRACFLAGS := -I$(src)/libfdt
>>>
>>> Shouldn't that be += instead of :=?
>>
>> I don't think so. The definition is local to the file (and reset
>> before each makefile is included).
>>
>> Rob
>>
>
> Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
> instead of :=, including the example in Documentation/kbuild/makefiles.txt
>
> What makes scripts/dtc/Makefile different than the other makefiles?
>
> -Frank
>


 := and += work in the same way in here.
>>>
>>> Unless I do: HOST_EXTRACFLAGS=xxx make
>>> where "xxx" is some random flag I feel like adding in a particular build.
>>
>>
>>
>> This is not the intended usage of HOST_EXTRACFLAGS.
>
> I seem to have found a useful feature for making a specific object in a
> development context with additional compiler flags.  But a feature that
> you say is not intended.
>
> I do understand that there is an intended difference between HOSTCFLAGS
> and HOST_EXTRACFLAGS.  But I do not agree that using HOST_EXTRACFLAGS
> on the make commandline when building a single object in a development
> context is abuse.
>
>
>> HOST_EXTRACFLAGS is supposed to be set by Makefile in the kernel tree.
>
> But it is not set, thus it is currently available (and has been for many
> years) for the usage that I specified above.



Right.  People often find something that happens to work.



HOST_EXTRACFLAGS=xxx make

works, but

make HOST_EXTRACFLAGS=xxx

does not because it really overrides += in makefiles.



>
>> Documentation/kbuild/makefiles.txt explains this:
>>
>>To set flags that will take effect for all host programs created
>>in that Makefile, use the variable HOST_EXTRACFLAGS.
>>
>>
>>
>> If you want to pass additional host compiler flags,
>> please use HOSTCFLAGS instead.
>
> That will not work because the top level Makefile has:
>
>HOSTCFLAGS   := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
>
>
>> Documentation/kbuild/kbuild.txt lists officially supported
>> environment variables / command line variables.>
>> HOSTCFLAGS
>> --
>> Additional flags to be passed to $(HOSTCC) when building host programs.
>
> HOSTCFLAGS is not in my 4.18.0 Documentation/kbuild/kbuild.txt.  What version 
> are
> you looking at?
>
>   $ git log -n1
>   commit 94710cac0ef4ee177a63b5227664b38c95bbf703
>   Author: Linus Torvalds 
>   Date:   Sun Aug 12 13:41:04 2018 -0700
>
>   Linux 4.18
>   $ git grep HOSTCFLAGS Documentation/kbuild/kbuild.txt
>   $

Please check the latest Linus tree.

Commit f92d19e0ef92984845682e740934ad45473b
was merged in this MW.



>
> But this is where I concede that HOST_EXTRACFLAGS is also not listed as
> an officially supported environment variable or command line variable.  I
> had not checked here for that limitation.
>
>
>>
>>
>> Maybe I should add
>>
>> HOST_EXTRACFLAGS   :=
>> HOST_EXTRACXXFLAGS :=
>>
>> to the top of scripts/Makefile.build
>> to reset the variables explicitly
>> in case people try to abuse them.
>
> Yes, if you intend that it not be possible to initialize them in the make
> command then you should initialize them.  If you do that, it is easy
> enough for me to patch the initialization out in cases where I want the
> extra functionality.






-- 
Best Regards
Masahiro Yamada


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-22 Thread Masahiro Yamada
Hi Frank

2018-08-22 3:02 GMT+09:00 Frank Rowand :
> On 08/21/18 00:18, Masahiro Yamada wrote:
>> Hi Frank,
>>
>>
>> 2018-08-21 14:37 GMT+09:00 Frank Rowand :
>>> On 08/20/18 19:08, Masahiro Yamada wrote:
 Hi Frank,

 2018-08-21 10:31 GMT+09:00 Frank Rowand :
> On 08/20/18 14:32, Rob Herring wrote:
>> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  
>> wrote:
>>>
>>> On 07/03/18 18:59, Masahiro Yamada wrote:
 It is tedious to specify extra compiler options for every file.
 HOST_EXTRACFLAGS is useful to add options to all files in a
 directory.

 -I$(src)/libfdt is needed for all the files in this directory
 to include libfdt_env.h etc. from scripts/dtc/libfdt/.

 On the other hand, -I$(src) is used to include check-in headers
 from generated C files.  Thus, I added it only to dtc-lexer.lex.o
 and dtc-parser.tab.o .

 Signed-off-by: Masahiro Yamada 
 ---

  scripts/dtc/Makefile | 18 --
  1 file changed, 4 insertions(+), 14 deletions(-)

 diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
 index 9cac65b..1c943e0 100644
 --- a/scripts/dtc/Makefile
 +++ b/scripts/dtc/Makefile
 @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
 livetree.o treesource.o \
  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o

  # Source files need to get at the userspace version of libfdt_env.h 
 to compile
 +HOST_EXTRACFLAGS := -I$(src)/libfdt
>>>
>>> Shouldn't that be += instead of :=?
>>
>> I don't think so. The definition is local to the file (and reset
>> before each makefile is included).
>>
>> Rob
>>
>
> Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
> instead of :=, including the example in Documentation/kbuild/makefiles.txt
>
> What makes scripts/dtc/Makefile different than the other makefiles?
>
> -Frank
>


 := and += work in the same way in here.
>>>
>>> Unless I do: HOST_EXTRACFLAGS=xxx make
>>> where "xxx" is some random flag I feel like adding in a particular build.
>>
>>
>>
>> This is not the intended usage of HOST_EXTRACFLAGS.
>
> I seem to have found a useful feature for making a specific object in a
> development context with additional compiler flags.  But a feature that
> you say is not intended.
>
> I do understand that there is an intended difference between HOSTCFLAGS
> and HOST_EXTRACFLAGS.  But I do not agree that using HOST_EXTRACFLAGS
> on the make commandline when building a single object in a development
> context is abuse.
>
>
>> HOST_EXTRACFLAGS is supposed to be set by Makefile in the kernel tree.
>
> But it is not set, thus it is currently available (and has been for many
> years) for the usage that I specified above.



Right.  People often find something that happens to work.



HOST_EXTRACFLAGS=xxx make

works, but

make HOST_EXTRACFLAGS=xxx

does not because it really overrides += in makefiles.



>
>> Documentation/kbuild/makefiles.txt explains this:
>>
>>To set flags that will take effect for all host programs created
>>in that Makefile, use the variable HOST_EXTRACFLAGS.
>>
>>
>>
>> If you want to pass additional host compiler flags,
>> please use HOSTCFLAGS instead.
>
> That will not work because the top level Makefile has:
>
>HOSTCFLAGS   := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
>
>
>> Documentation/kbuild/kbuild.txt lists officially supported
>> environment variables / command line variables.>
>> HOSTCFLAGS
>> --
>> Additional flags to be passed to $(HOSTCC) when building host programs.
>
> HOSTCFLAGS is not in my 4.18.0 Documentation/kbuild/kbuild.txt.  What version 
> are
> you looking at?
>
>   $ git log -n1
>   commit 94710cac0ef4ee177a63b5227664b38c95bbf703
>   Author: Linus Torvalds 
>   Date:   Sun Aug 12 13:41:04 2018 -0700
>
>   Linux 4.18
>   $ git grep HOSTCFLAGS Documentation/kbuild/kbuild.txt
>   $

Please check the latest Linus tree.

Commit f92d19e0ef92984845682e740934ad45473b
was merged in this MW.



>
> But this is where I concede that HOST_EXTRACFLAGS is also not listed as
> an officially supported environment variable or command line variable.  I
> had not checked here for that limitation.
>
>
>>
>>
>> Maybe I should add
>>
>> HOST_EXTRACFLAGS   :=
>> HOST_EXTRACXXFLAGS :=
>>
>> to the top of scripts/Makefile.build
>> to reset the variables explicitly
>> in case people try to abuse them.
>
> Yes, if you intend that it not be possible to initialize them in the make
> command then you should initialize them.  If you do that, it is easy
> enough for me to patch the initialization out in cases where I want the
> extra functionality.






-- 
Best Regards
Masahiro Yamada


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-21 Thread Frank Rowand
On 08/21/18 00:18, Masahiro Yamada wrote:
> Hi Frank,
> 
> 
> 2018-08-21 14:37 GMT+09:00 Frank Rowand :
>> On 08/20/18 19:08, Masahiro Yamada wrote:
>>> Hi Frank,
>>>
>>> 2018-08-21 10:31 GMT+09:00 Frank Rowand :
 On 08/20/18 14:32, Rob Herring wrote:
> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  
> wrote:
>>
>> On 07/03/18 18:59, Masahiro Yamada wrote:
>>> It is tedious to specify extra compiler options for every file.
>>> HOST_EXTRACFLAGS is useful to add options to all files in a
>>> directory.
>>>
>>> -I$(src)/libfdt is needed for all the files in this directory
>>> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>>>
>>> On the other hand, -I$(src) is used to include check-in headers
>>> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
>>> and dtc-parser.tab.o .
>>>
>>> Signed-off-by: Masahiro Yamada 
>>> ---
>>>
>>>  scripts/dtc/Makefile | 18 --
>>>  1 file changed, 4 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
>>> index 9cac65b..1c943e0 100644
>>> --- a/scripts/dtc/Makefile
>>> +++ b/scripts/dtc/Makefile
>>> @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
>>> livetree.o treesource.o \
>>>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>>>
>>>  # Source files need to get at the userspace version of libfdt_env.h to 
>>> compile
>>> +HOST_EXTRACFLAGS := -I$(src)/libfdt
>>
>> Shouldn't that be += instead of :=?
>
> I don't think so. The definition is local to the file (and reset
> before each makefile is included).
>
> Rob
>

 Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
 instead of :=, including the example in Documentation/kbuild/makefiles.txt

 What makes scripts/dtc/Makefile different than the other makefiles?

 -Frank

>>>
>>>
>>> := and += work in the same way in here.
>>
>> Unless I do: HOST_EXTRACFLAGS=xxx make
>> where "xxx" is some random flag I feel like adding in a particular build.
> 
> 
> 
> This is not the intended usage of HOST_EXTRACFLAGS.

I seem to have found a useful feature for making a specific object in a
development context with additional compiler flags.  But a feature that
you say is not intended.

I do understand that there is an intended difference between HOSTCFLAGS
and HOST_EXTRACFLAGS.  But I do not agree that using HOST_EXTRACFLAGS
on the make commandline when building a single object in a development
context is abuse.


> HOST_EXTRACFLAGS is supposed to be set by Makefile in the kernel tree.

But it is not set, thus it is currently available (and has been for many
years) for the usage that I specified above.


> Documentation/kbuild/makefiles.txt explains this:
> 
>To set flags that will take effect for all host programs created
>in that Makefile, use the variable HOST_EXTRACFLAGS.
> 
> 
> 
> If you want to pass additional host compiler flags,
> please use HOSTCFLAGS instead.

That will not work because the top level Makefile has:

   HOSTCFLAGS   := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \


> Documentation/kbuild/kbuild.txt lists officially supported
> environment variables / command line variables.> 
> HOSTCFLAGS
> --
> Additional flags to be passed to $(HOSTCC) when building host programs.

HOSTCFLAGS is not in my 4.18.0 Documentation/kbuild/kbuild.txt.  What version 
are
you looking at?

  $ git log -n1
  commit 94710cac0ef4ee177a63b5227664b38c95bbf703
  Author: Linus Torvalds 
  Date:   Sun Aug 12 13:41:04 2018 -0700

  Linux 4.18
  $ git grep HOSTCFLAGS Documentation/kbuild/kbuild.txt
  $


But this is where I concede that HOST_EXTRACFLAGS is also not listed as
an officially supported environment variable or command line variable.  I
had not checked here for that limitation.


> 
> 
> Maybe I should add
> 
> HOST_EXTRACFLAGS   :=
> HOST_EXTRACXXFLAGS :=
> 
> to the top of scripts/Makefile.build
> to reset the variables explicitly
> in case people try to abuse them.

Yes, if you intend that it not be possible to initialize them in the make
command then you should initialize them.  If you do that, it is easy
enough for me to patch the initialization out in cases where I want the
extra functionality.




Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-21 Thread Frank Rowand
On 08/21/18 00:18, Masahiro Yamada wrote:
> Hi Frank,
> 
> 
> 2018-08-21 14:37 GMT+09:00 Frank Rowand :
>> On 08/20/18 19:08, Masahiro Yamada wrote:
>>> Hi Frank,
>>>
>>> 2018-08-21 10:31 GMT+09:00 Frank Rowand :
 On 08/20/18 14:32, Rob Herring wrote:
> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  
> wrote:
>>
>> On 07/03/18 18:59, Masahiro Yamada wrote:
>>> It is tedious to specify extra compiler options for every file.
>>> HOST_EXTRACFLAGS is useful to add options to all files in a
>>> directory.
>>>
>>> -I$(src)/libfdt is needed for all the files in this directory
>>> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>>>
>>> On the other hand, -I$(src) is used to include check-in headers
>>> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
>>> and dtc-parser.tab.o .
>>>
>>> Signed-off-by: Masahiro Yamada 
>>> ---
>>>
>>>  scripts/dtc/Makefile | 18 --
>>>  1 file changed, 4 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
>>> index 9cac65b..1c943e0 100644
>>> --- a/scripts/dtc/Makefile
>>> +++ b/scripts/dtc/Makefile
>>> @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
>>> livetree.o treesource.o \
>>>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>>>
>>>  # Source files need to get at the userspace version of libfdt_env.h to 
>>> compile
>>> +HOST_EXTRACFLAGS := -I$(src)/libfdt
>>
>> Shouldn't that be += instead of :=?
>
> I don't think so. The definition is local to the file (and reset
> before each makefile is included).
>
> Rob
>

 Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
 instead of :=, including the example in Documentation/kbuild/makefiles.txt

 What makes scripts/dtc/Makefile different than the other makefiles?

 -Frank

>>>
>>>
>>> := and += work in the same way in here.
>>
>> Unless I do: HOST_EXTRACFLAGS=xxx make
>> where "xxx" is some random flag I feel like adding in a particular build.
> 
> 
> 
> This is not the intended usage of HOST_EXTRACFLAGS.

I seem to have found a useful feature for making a specific object in a
development context with additional compiler flags.  But a feature that
you say is not intended.

I do understand that there is an intended difference between HOSTCFLAGS
and HOST_EXTRACFLAGS.  But I do not agree that using HOST_EXTRACFLAGS
on the make commandline when building a single object in a development
context is abuse.


> HOST_EXTRACFLAGS is supposed to be set by Makefile in the kernel tree.

But it is not set, thus it is currently available (and has been for many
years) for the usage that I specified above.


> Documentation/kbuild/makefiles.txt explains this:
> 
>To set flags that will take effect for all host programs created
>in that Makefile, use the variable HOST_EXTRACFLAGS.
> 
> 
> 
> If you want to pass additional host compiler flags,
> please use HOSTCFLAGS instead.

That will not work because the top level Makefile has:

   HOSTCFLAGS   := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \


> Documentation/kbuild/kbuild.txt lists officially supported
> environment variables / command line variables.> 
> HOSTCFLAGS
> --
> Additional flags to be passed to $(HOSTCC) when building host programs.

HOSTCFLAGS is not in my 4.18.0 Documentation/kbuild/kbuild.txt.  What version 
are
you looking at?

  $ git log -n1
  commit 94710cac0ef4ee177a63b5227664b38c95bbf703
  Author: Linus Torvalds 
  Date:   Sun Aug 12 13:41:04 2018 -0700

  Linux 4.18
  $ git grep HOSTCFLAGS Documentation/kbuild/kbuild.txt
  $


But this is where I concede that HOST_EXTRACFLAGS is also not listed as
an officially supported environment variable or command line variable.  I
had not checked here for that limitation.


> 
> 
> Maybe I should add
> 
> HOST_EXTRACFLAGS   :=
> HOST_EXTRACXXFLAGS :=
> 
> to the top of scripts/Makefile.build
> to reset the variables explicitly
> in case people try to abuse them.

Yes, if you intend that it not be possible to initialize them in the make
command then you should initialize them.  If you do that, it is easy
enough for me to patch the initialization out in cases where I want the
extra functionality.




Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-21 Thread Masahiro Yamada
Hi Frank,


2018-08-21 14:37 GMT+09:00 Frank Rowand :
> On 08/20/18 19:08, Masahiro Yamada wrote:
>> Hi Frank,
>>
>> 2018-08-21 10:31 GMT+09:00 Frank Rowand :
>>> On 08/20/18 14:32, Rob Herring wrote:
 On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  
 wrote:
>
> On 07/03/18 18:59, Masahiro Yamada wrote:
>> It is tedious to specify extra compiler options for every file.
>> HOST_EXTRACFLAGS is useful to add options to all files in a
>> directory.
>>
>> -I$(src)/libfdt is needed for all the files in this directory
>> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>>
>> On the other hand, -I$(src) is used to include check-in headers
>> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
>> and dtc-parser.tab.o .
>>
>> Signed-off-by: Masahiro Yamada 
>> ---
>>
>>  scripts/dtc/Makefile | 18 --
>>  1 file changed, 4 insertions(+), 14 deletions(-)
>>
>> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
>> index 9cac65b..1c943e0 100644
>> --- a/scripts/dtc/Makefile
>> +++ b/scripts/dtc/Makefile
>> @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
>> livetree.o treesource.o \
>>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>>
>>  # Source files need to get at the userspace version of libfdt_env.h to 
>> compile
>> +HOST_EXTRACFLAGS := -I$(src)/libfdt
>
> Shouldn't that be += instead of :=?

 I don't think so. The definition is local to the file (and reset
 before each makefile is included).

 Rob

>>>
>>> Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
>>> instead of :=, including the example in Documentation/kbuild/makefiles.txt
>>>
>>> What makes scripts/dtc/Makefile different than the other makefiles?
>>>
>>> -Frank
>>>
>>
>>
>> := and += work in the same way in here.
>
> Unless I do: HOST_EXTRACFLAGS=xxx make
> where "xxx" is some random flag I feel like adding in a particular build.



This is not the intended usage of HOST_EXTRACFLAGS.

HOST_EXTRACFLAGS is supposed to be set by Makefile in the kernel tree.


Documentation/kbuild/makefiles.txt explains this:

   To set flags that will take effect for all host programs created
   in that Makefile, use the variable HOST_EXTRACFLAGS.



If you want to pass additional host compiler flags,
please use HOSTCFLAGS instead.


Documentation/kbuild/kbuild.txt lists officially supported
environment variables / command line variables.

HOSTCFLAGS
--
Additional flags to be passed to $(HOSTCC) when building host programs.




Maybe I should add

HOST_EXTRACFLAGS   :=
HOST_EXTRACXXFLAGS :=

to the top of scripts/Makefile.build
to reset the variables explicitly
in case people try to abuse them.





-- 
Best Regards
Masahiro Yamada


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-21 Thread Masahiro Yamada
Hi Frank,


2018-08-21 14:37 GMT+09:00 Frank Rowand :
> On 08/20/18 19:08, Masahiro Yamada wrote:
>> Hi Frank,
>>
>> 2018-08-21 10:31 GMT+09:00 Frank Rowand :
>>> On 08/20/18 14:32, Rob Herring wrote:
 On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  
 wrote:
>
> On 07/03/18 18:59, Masahiro Yamada wrote:
>> It is tedious to specify extra compiler options for every file.
>> HOST_EXTRACFLAGS is useful to add options to all files in a
>> directory.
>>
>> -I$(src)/libfdt is needed for all the files in this directory
>> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>>
>> On the other hand, -I$(src) is used to include check-in headers
>> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
>> and dtc-parser.tab.o .
>>
>> Signed-off-by: Masahiro Yamada 
>> ---
>>
>>  scripts/dtc/Makefile | 18 --
>>  1 file changed, 4 insertions(+), 14 deletions(-)
>>
>> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
>> index 9cac65b..1c943e0 100644
>> --- a/scripts/dtc/Makefile
>> +++ b/scripts/dtc/Makefile
>> @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
>> livetree.o treesource.o \
>>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>>
>>  # Source files need to get at the userspace version of libfdt_env.h to 
>> compile
>> +HOST_EXTRACFLAGS := -I$(src)/libfdt
>
> Shouldn't that be += instead of :=?

 I don't think so. The definition is local to the file (and reset
 before each makefile is included).

 Rob

>>>
>>> Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
>>> instead of :=, including the example in Documentation/kbuild/makefiles.txt
>>>
>>> What makes scripts/dtc/Makefile different than the other makefiles?
>>>
>>> -Frank
>>>
>>
>>
>> := and += work in the same way in here.
>
> Unless I do: HOST_EXTRACFLAGS=xxx make
> where "xxx" is some random flag I feel like adding in a particular build.



This is not the intended usage of HOST_EXTRACFLAGS.

HOST_EXTRACFLAGS is supposed to be set by Makefile in the kernel tree.


Documentation/kbuild/makefiles.txt explains this:

   To set flags that will take effect for all host programs created
   in that Makefile, use the variable HOST_EXTRACFLAGS.



If you want to pass additional host compiler flags,
please use HOSTCFLAGS instead.


Documentation/kbuild/kbuild.txt lists officially supported
environment variables / command line variables.

HOSTCFLAGS
--
Additional flags to be passed to $(HOSTCC) when building host programs.




Maybe I should add

HOST_EXTRACFLAGS   :=
HOST_EXTRACXXFLAGS :=

to the top of scripts/Makefile.build
to reset the variables explicitly
in case people try to abuse them.





-- 
Best Regards
Masahiro Yamada


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Frank Rowand
On 08/20/18 19:08, Masahiro Yamada wrote:
> Hi Frank,
> 
> 2018-08-21 10:31 GMT+09:00 Frank Rowand :
>> On 08/20/18 14:32, Rob Herring wrote:
>>> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  wrote:

 On 07/03/18 18:59, Masahiro Yamada wrote:
> It is tedious to specify extra compiler options for every file.
> HOST_EXTRACFLAGS is useful to add options to all files in a
> directory.
>
> -I$(src)/libfdt is needed for all the files in this directory
> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>
> On the other hand, -I$(src) is used to include check-in headers
> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
> and dtc-parser.tab.o .
>
> Signed-off-by: Masahiro Yamada 
> ---
>
>  scripts/dtc/Makefile | 18 --
>  1 file changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> index 9cac65b..1c943e0 100644
> --- a/scripts/dtc/Makefile
> +++ b/scripts/dtc/Makefile
> @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
> livetree.o treesource.o \
>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>
>  # Source files need to get at the userspace version of libfdt_env.h to 
> compile
> +HOST_EXTRACFLAGS := -I$(src)/libfdt

 Shouldn't that be += instead of :=?
>>>
>>> I don't think so. The definition is local to the file (and reset
>>> before each makefile is included).
>>>
>>> Rob
>>>
>>
>> Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
>> instead of :=, including the example in Documentation/kbuild/makefiles.txt
>>
>> What makes scripts/dtc/Makefile different than the other makefiles?
>>
>> -Frank
>>
> 
> 
> := and += work in the same way in here.

Unless I do: HOST_EXTRACFLAGS=xxx make
where "xxx" is some random flag I feel like adding in a particular build.

Or is there something else buried in the kernel makefiles that leads to
a result different than I get from a simple example of recursive make files?

-Frank

> 
> 
> As Rob said, HOST_EXTRACFLAGS is reset in each makefile
> because HOST_EXTRACFLAGS is not export'ed.
> (scripts/gcc-plugins/Makefile actually export's it, but it is wrong.)
> 
> 
> Precisely speaking, HOST_EXTRACFLAGS is immediately expanded
> if it is set by :=, whereas it is lazily expanded if it is
> set by +=.  But, there is no effective difference in this case.
> 
> 



Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Frank Rowand
On 08/20/18 19:08, Masahiro Yamada wrote:
> Hi Frank,
> 
> 2018-08-21 10:31 GMT+09:00 Frank Rowand :
>> On 08/20/18 14:32, Rob Herring wrote:
>>> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  wrote:

 On 07/03/18 18:59, Masahiro Yamada wrote:
> It is tedious to specify extra compiler options for every file.
> HOST_EXTRACFLAGS is useful to add options to all files in a
> directory.
>
> -I$(src)/libfdt is needed for all the files in this directory
> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>
> On the other hand, -I$(src) is used to include check-in headers
> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
> and dtc-parser.tab.o .
>
> Signed-off-by: Masahiro Yamada 
> ---
>
>  scripts/dtc/Makefile | 18 --
>  1 file changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> index 9cac65b..1c943e0 100644
> --- a/scripts/dtc/Makefile
> +++ b/scripts/dtc/Makefile
> @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
> livetree.o treesource.o \
>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>
>  # Source files need to get at the userspace version of libfdt_env.h to 
> compile
> +HOST_EXTRACFLAGS := -I$(src)/libfdt

 Shouldn't that be += instead of :=?
>>>
>>> I don't think so. The definition is local to the file (and reset
>>> before each makefile is included).
>>>
>>> Rob
>>>
>>
>> Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
>> instead of :=, including the example in Documentation/kbuild/makefiles.txt
>>
>> What makes scripts/dtc/Makefile different than the other makefiles?
>>
>> -Frank
>>
> 
> 
> := and += work in the same way in here.

Unless I do: HOST_EXTRACFLAGS=xxx make
where "xxx" is some random flag I feel like adding in a particular build.

Or is there something else buried in the kernel makefiles that leads to
a result different than I get from a simple example of recursive make files?

-Frank

> 
> 
> As Rob said, HOST_EXTRACFLAGS is reset in each makefile
> because HOST_EXTRACFLAGS is not export'ed.
> (scripts/gcc-plugins/Makefile actually export's it, but it is wrong.)
> 
> 
> Precisely speaking, HOST_EXTRACFLAGS is immediately expanded
> if it is set by :=, whereas it is lazily expanded if it is
> set by +=.  But, there is no effective difference in this case.
> 
> 



Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Masahiro Yamada
Hi Frank,

2018-08-21 10:31 GMT+09:00 Frank Rowand :
> On 08/20/18 14:32, Rob Herring wrote:
>> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  wrote:
>>>
>>> On 07/03/18 18:59, Masahiro Yamada wrote:
 It is tedious to specify extra compiler options for every file.
 HOST_EXTRACFLAGS is useful to add options to all files in a
 directory.

 -I$(src)/libfdt is needed for all the files in this directory
 to include libfdt_env.h etc. from scripts/dtc/libfdt/.

 On the other hand, -I$(src) is used to include check-in headers
 from generated C files.  Thus, I added it only to dtc-lexer.lex.o
 and dtc-parser.tab.o .

 Signed-off-by: Masahiro Yamada 
 ---

  scripts/dtc/Makefile | 18 --
  1 file changed, 4 insertions(+), 14 deletions(-)

 diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
 index 9cac65b..1c943e0 100644
 --- a/scripts/dtc/Makefile
 +++ b/scripts/dtc/Makefile
 @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
 livetree.o treesource.o \
  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o

  # Source files need to get at the userspace version of libfdt_env.h to 
 compile
 +HOST_EXTRACFLAGS := -I$(src)/libfdt
>>>
>>> Shouldn't that be += instead of :=?
>>
>> I don't think so. The definition is local to the file (and reset
>> before each makefile is included).
>>
>> Rob
>>
>
> Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
> instead of :=, including the example in Documentation/kbuild/makefiles.txt
>
> What makes scripts/dtc/Makefile different than the other makefiles?
>
> -Frank
>


:= and += work in the same way in here.


As Rob said, HOST_EXTRACFLAGS is reset in each makefile
because HOST_EXTRACFLAGS is not export'ed.
(scripts/gcc-plugins/Makefile actually export's it, but it is wrong.)


Precisely speaking, HOST_EXTRACFLAGS is immediately expanded
if it is set by :=, whereas it is lazily expanded if it is
set by +=.  But, there is no effective difference in this case.


-- 
Best Regards
Masahiro Yamada


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Masahiro Yamada
Hi Frank,

2018-08-21 10:31 GMT+09:00 Frank Rowand :
> On 08/20/18 14:32, Rob Herring wrote:
>> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  wrote:
>>>
>>> On 07/03/18 18:59, Masahiro Yamada wrote:
 It is tedious to specify extra compiler options for every file.
 HOST_EXTRACFLAGS is useful to add options to all files in a
 directory.

 -I$(src)/libfdt is needed for all the files in this directory
 to include libfdt_env.h etc. from scripts/dtc/libfdt/.

 On the other hand, -I$(src) is used to include check-in headers
 from generated C files.  Thus, I added it only to dtc-lexer.lex.o
 and dtc-parser.tab.o .

 Signed-off-by: Masahiro Yamada 
 ---

  scripts/dtc/Makefile | 18 --
  1 file changed, 4 insertions(+), 14 deletions(-)

 diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
 index 9cac65b..1c943e0 100644
 --- a/scripts/dtc/Makefile
 +++ b/scripts/dtc/Makefile
 @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
 livetree.o treesource.o \
  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o

  # Source files need to get at the userspace version of libfdt_env.h to 
 compile
 +HOST_EXTRACFLAGS := -I$(src)/libfdt
>>>
>>> Shouldn't that be += instead of :=?
>>
>> I don't think so. The definition is local to the file (and reset
>> before each makefile is included).
>>
>> Rob
>>
>
> Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
> instead of :=, including the example in Documentation/kbuild/makefiles.txt
>
> What makes scripts/dtc/Makefile different than the other makefiles?
>
> -Frank
>


:= and += work in the same way in here.


As Rob said, HOST_EXTRACFLAGS is reset in each makefile
because HOST_EXTRACFLAGS is not export'ed.
(scripts/gcc-plugins/Makefile actually export's it, but it is wrong.)


Precisely speaking, HOST_EXTRACFLAGS is immediately expanded
if it is set by :=, whereas it is lazily expanded if it is
set by +=.  But, there is no effective difference in this case.


-- 
Best Regards
Masahiro Yamada


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Frank Rowand
On 08/20/18 14:32, Rob Herring wrote:
> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  wrote:
>>
>> On 07/03/18 18:59, Masahiro Yamada wrote:
>>> It is tedious to specify extra compiler options for every file.
>>> HOST_EXTRACFLAGS is useful to add options to all files in a
>>> directory.
>>>
>>> -I$(src)/libfdt is needed for all the files in this directory
>>> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>>>
>>> On the other hand, -I$(src) is used to include check-in headers
>>> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
>>> and dtc-parser.tab.o .
>>>
>>> Signed-off-by: Masahiro Yamada 
>>> ---
>>>
>>>  scripts/dtc/Makefile | 18 --
>>>  1 file changed, 4 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
>>> index 9cac65b..1c943e0 100644
>>> --- a/scripts/dtc/Makefile
>>> +++ b/scripts/dtc/Makefile
>>> @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
>>> livetree.o treesource.o \
>>>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>>>
>>>  # Source files need to get at the userspace version of libfdt_env.h to 
>>> compile
>>> +HOST_EXTRACFLAGS := -I$(src)/libfdt
>>
>> Shouldn't that be += instead of :=?
> 
> I don't think so. The definition is local to the file (and reset
> before each makefile is included).
> 
> Rob
> 

Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
instead of :=, including the example in Documentation/kbuild/makefiles.txt

What makes scripts/dtc/Makefile different than the other makefiles?

-Frank



Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Frank Rowand
On 08/20/18 14:32, Rob Herring wrote:
> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  wrote:
>>
>> On 07/03/18 18:59, Masahiro Yamada wrote:
>>> It is tedious to specify extra compiler options for every file.
>>> HOST_EXTRACFLAGS is useful to add options to all files in a
>>> directory.
>>>
>>> -I$(src)/libfdt is needed for all the files in this directory
>>> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>>>
>>> On the other hand, -I$(src) is used to include check-in headers
>>> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
>>> and dtc-parser.tab.o .
>>>
>>> Signed-off-by: Masahiro Yamada 
>>> ---
>>>
>>>  scripts/dtc/Makefile | 18 --
>>>  1 file changed, 4 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
>>> index 9cac65b..1c943e0 100644
>>> --- a/scripts/dtc/Makefile
>>> +++ b/scripts/dtc/Makefile
>>> @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
>>> livetree.o treesource.o \
>>>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>>>
>>>  # Source files need to get at the userspace version of libfdt_env.h to 
>>> compile
>>> +HOST_EXTRACFLAGS := -I$(src)/libfdt
>>
>> Shouldn't that be += instead of :=?
> 
> I don't think so. The definition is local to the file (and reset
> before each makefile is included).
> 
> Rob
> 

Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
instead of :=, including the example in Documentation/kbuild/makefiles.txt

What makes scripts/dtc/Makefile different than the other makefiles?

-Frank



Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Rob Herring
On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  wrote:
>
> On 07/03/18 18:59, Masahiro Yamada wrote:
> > It is tedious to specify extra compiler options for every file.
> > HOST_EXTRACFLAGS is useful to add options to all files in a
> > directory.
> >
> > -I$(src)/libfdt is needed for all the files in this directory
> > to include libfdt_env.h etc. from scripts/dtc/libfdt/.
> >
> > On the other hand, -I$(src) is used to include check-in headers
> > from generated C files.  Thus, I added it only to dtc-lexer.lex.o
> > and dtc-parser.tab.o .
> >
> > Signed-off-by: Masahiro Yamada 
> > ---
> >
> >  scripts/dtc/Makefile | 18 --
> >  1 file changed, 4 insertions(+), 14 deletions(-)
> >
> > diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> > index 9cac65b..1c943e0 100644
> > --- a/scripts/dtc/Makefile
> > +++ b/scripts/dtc/Makefile
> > @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
> > livetree.o treesource.o \
> >  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
> >
> >  # Source files need to get at the userspace version of libfdt_env.h to 
> > compile
> > +HOST_EXTRACFLAGS := -I$(src)/libfdt
>
> Shouldn't that be += instead of :=?

I don't think so. The definition is local to the file (and reset
before each makefile is included).

Rob


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Rob Herring
On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand  wrote:
>
> On 07/03/18 18:59, Masahiro Yamada wrote:
> > It is tedious to specify extra compiler options for every file.
> > HOST_EXTRACFLAGS is useful to add options to all files in a
> > directory.
> >
> > -I$(src)/libfdt is needed for all the files in this directory
> > to include libfdt_env.h etc. from scripts/dtc/libfdt/.
> >
> > On the other hand, -I$(src) is used to include check-in headers
> > from generated C files.  Thus, I added it only to dtc-lexer.lex.o
> > and dtc-parser.tab.o .
> >
> > Signed-off-by: Masahiro Yamada 
> > ---
> >
> >  scripts/dtc/Makefile | 18 --
> >  1 file changed, 4 insertions(+), 14 deletions(-)
> >
> > diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> > index 9cac65b..1c943e0 100644
> > --- a/scripts/dtc/Makefile
> > +++ b/scripts/dtc/Makefile
> > @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o 
> > livetree.o treesource.o \
> >  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
> >
> >  # Source files need to get at the userspace version of libfdt_env.h to 
> > compile
> > +HOST_EXTRACFLAGS := -I$(src)/libfdt
>
> Shouldn't that be += instead of :=?

I don't think so. The definition is local to the file (and reset
before each makefile is included).

Rob


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Rob Herring
On Mon, Aug 20, 2018 at 1:56 AM Masahiro Yamada
 wrote:
>
> Hi Rob,
>
>
> 2018-07-04 10:59 GMT+09:00 Masahiro Yamada :
> > It is tedious to specify extra compiler options for every file.
> > HOST_EXTRACFLAGS is useful to add options to all files in a
> > directory.
> >
> > -I$(src)/libfdt is needed for all the files in this directory
> > to include libfdt_env.h etc. from scripts/dtc/libfdt/.
> >
> > On the other hand, -I$(src) is used to include check-in headers
> > from generated C files.  Thus, I added it only to dtc-lexer.lex.o
> > and dtc-parser.tab.o .
> >
> > Signed-off-by: Masahiro Yamada 
>
>
> I hope this is a good clean-up.

Sorry, I missed this.

> May I apply this to my kbuild tree for v4.19 ?

Yes.

Reviewed-by: Rob Herring 


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Rob Herring
On Mon, Aug 20, 2018 at 1:56 AM Masahiro Yamada
 wrote:
>
> Hi Rob,
>
>
> 2018-07-04 10:59 GMT+09:00 Masahiro Yamada :
> > It is tedious to specify extra compiler options for every file.
> > HOST_EXTRACFLAGS is useful to add options to all files in a
> > directory.
> >
> > -I$(src)/libfdt is needed for all the files in this directory
> > to include libfdt_env.h etc. from scripts/dtc/libfdt/.
> >
> > On the other hand, -I$(src) is used to include check-in headers
> > from generated C files.  Thus, I added it only to dtc-lexer.lex.o
> > and dtc-parser.tab.o .
> >
> > Signed-off-by: Masahiro Yamada 
>
>
> I hope this is a good clean-up.

Sorry, I missed this.

> May I apply this to my kbuild tree for v4.19 ?

Yes.

Reviewed-by: Rob Herring 


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Frank Rowand
On 07/03/18 18:59, Masahiro Yamada wrote:
> It is tedious to specify extra compiler options for every file.
> HOST_EXTRACFLAGS is useful to add options to all files in a
> directory.
> 
> -I$(src)/libfdt is needed for all the files in this directory
> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
> 
> On the other hand, -I$(src) is used to include check-in headers
> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
> and dtc-parser.tab.o .
> 
> Signed-off-by: Masahiro Yamada 
> ---
> 
>  scripts/dtc/Makefile | 18 --
>  1 file changed, 4 insertions(+), 14 deletions(-)
> 
> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> index 9cac65b..1c943e0 100644
> --- a/scripts/dtc/Makefile
> +++ b/scripts/dtc/Makefile
> @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o livetree.o 
> treesource.o \
>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>  
>  # Source files need to get at the userspace version of libfdt_env.h to 
> compile
> +HOST_EXTRACFLAGS := -I$(src)/libfdt

Shouldn't that be += instead of :=?

-Frank

>  
> -HOSTCFLAGS_DTC := -I$(src) -I$(src)/libfdt
> -
> -HOSTCFLAGS_checks.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_data.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_dtc.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_flattree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_fstree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_livetree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_srcpos.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_treesource.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_util.o := $(HOSTCFLAGS_DTC)
> -
> -HOSTCFLAGS_dtc-lexer.lex.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_dtc-parser.tab.o := $(HOSTCFLAGS_DTC)
> +# Generated files need one more search path to include headers in source tree
> +HOSTCFLAGS_dtc-lexer.lex.o := -I$(src)
> +HOSTCFLAGS_dtc-parser.tab.o := -I$(src)
>  
>  # dependencies on generated files need to be listed explicitly
>  $(obj)/dtc-lexer.lex.o: $(obj)/dtc-parser.tab.h
> 



Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Frank Rowand
On 07/03/18 18:59, Masahiro Yamada wrote:
> It is tedious to specify extra compiler options for every file.
> HOST_EXTRACFLAGS is useful to add options to all files in a
> directory.
> 
> -I$(src)/libfdt is needed for all the files in this directory
> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
> 
> On the other hand, -I$(src) is used to include check-in headers
> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
> and dtc-parser.tab.o .
> 
> Signed-off-by: Masahiro Yamada 
> ---
> 
>  scripts/dtc/Makefile | 18 --
>  1 file changed, 4 insertions(+), 14 deletions(-)
> 
> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> index 9cac65b..1c943e0 100644
> --- a/scripts/dtc/Makefile
> +++ b/scripts/dtc/Makefile
> @@ -9,21 +9,11 @@ dtc-objs:= dtc.o flattree.o fstree.o data.o livetree.o 
> treesource.o \
>  dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>  
>  # Source files need to get at the userspace version of libfdt_env.h to 
> compile
> +HOST_EXTRACFLAGS := -I$(src)/libfdt

Shouldn't that be += instead of :=?

-Frank

>  
> -HOSTCFLAGS_DTC := -I$(src) -I$(src)/libfdt
> -
> -HOSTCFLAGS_checks.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_data.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_dtc.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_flattree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_fstree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_livetree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_srcpos.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_treesource.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_util.o := $(HOSTCFLAGS_DTC)
> -
> -HOSTCFLAGS_dtc-lexer.lex.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_dtc-parser.tab.o := $(HOSTCFLAGS_DTC)
> +# Generated files need one more search path to include headers in source tree
> +HOSTCFLAGS_dtc-lexer.lex.o := -I$(src)
> +HOSTCFLAGS_dtc-parser.tab.o := -I$(src)
>  
>  # dependencies on generated files need to be listed explicitly
>  $(obj)/dtc-lexer.lex.o: $(obj)/dtc-parser.tab.h
> 



Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Masahiro Yamada
Hi Rob,


2018-07-04 10:59 GMT+09:00 Masahiro Yamada :
> It is tedious to specify extra compiler options for every file.
> HOST_EXTRACFLAGS is useful to add options to all files in a
> directory.
>
> -I$(src)/libfdt is needed for all the files in this directory
> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>
> On the other hand, -I$(src) is used to include check-in headers
> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
> and dtc-parser.tab.o .
>
> Signed-off-by: Masahiro Yamada 


I hope this is a good clean-up.

May I apply this to my kbuild tree for v4.19 ?


> ---
>
>  scripts/dtc/Makefile | 18 --
>  1 file changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> index 9cac65b..1c943e0 100644
> --- a/scripts/dtc/Makefile
> +++ b/scripts/dtc/Makefile
> @@ -9,21 +9,11 @@ dtc-objs  := dtc.o flattree.o fstree.o data.o 
> livetree.o treesource.o \
>  dtc-objs   += dtc-lexer.lex.o dtc-parser.tab.o
>
>  # Source files need to get at the userspace version of libfdt_env.h to 
> compile
> +HOST_EXTRACFLAGS := -I$(src)/libfdt
>
> -HOSTCFLAGS_DTC := -I$(src) -I$(src)/libfdt
> -
> -HOSTCFLAGS_checks.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_data.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_dtc.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_flattree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_fstree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_livetree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_srcpos.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_treesource.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_util.o := $(HOSTCFLAGS_DTC)
> -
> -HOSTCFLAGS_dtc-lexer.lex.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_dtc-parser.tab.o := $(HOSTCFLAGS_DTC)
> +# Generated files need one more search path to include headers in source tree
> +HOSTCFLAGS_dtc-lexer.lex.o := -I$(src)
> +HOSTCFLAGS_dtc-parser.tab.o := -I$(src)
>
>  # dependencies on generated files need to be listed explicitly
>  $(obj)/dtc-lexer.lex.o: $(obj)/dtc-parser.tab.h
> --
> 2.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Best Regards
Masahiro Yamada


Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

2018-08-20 Thread Masahiro Yamada
Hi Rob,


2018-07-04 10:59 GMT+09:00 Masahiro Yamada :
> It is tedious to specify extra compiler options for every file.
> HOST_EXTRACFLAGS is useful to add options to all files in a
> directory.
>
> -I$(src)/libfdt is needed for all the files in this directory
> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>
> On the other hand, -I$(src) is used to include check-in headers
> from generated C files.  Thus, I added it only to dtc-lexer.lex.o
> and dtc-parser.tab.o .
>
> Signed-off-by: Masahiro Yamada 


I hope this is a good clean-up.

May I apply this to my kbuild tree for v4.19 ?


> ---
>
>  scripts/dtc/Makefile | 18 --
>  1 file changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> index 9cac65b..1c943e0 100644
> --- a/scripts/dtc/Makefile
> +++ b/scripts/dtc/Makefile
> @@ -9,21 +9,11 @@ dtc-objs  := dtc.o flattree.o fstree.o data.o 
> livetree.o treesource.o \
>  dtc-objs   += dtc-lexer.lex.o dtc-parser.tab.o
>
>  # Source files need to get at the userspace version of libfdt_env.h to 
> compile
> +HOST_EXTRACFLAGS := -I$(src)/libfdt
>
> -HOSTCFLAGS_DTC := -I$(src) -I$(src)/libfdt
> -
> -HOSTCFLAGS_checks.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_data.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_dtc.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_flattree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_fstree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_livetree.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_srcpos.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_treesource.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_util.o := $(HOSTCFLAGS_DTC)
> -
> -HOSTCFLAGS_dtc-lexer.lex.o := $(HOSTCFLAGS_DTC)
> -HOSTCFLAGS_dtc-parser.tab.o := $(HOSTCFLAGS_DTC)
> +# Generated files need one more search path to include headers in source tree
> +HOSTCFLAGS_dtc-lexer.lex.o := -I$(src)
> +HOSTCFLAGS_dtc-parser.tab.o := -I$(src)
>
>  # dependencies on generated files need to be listed explicitly
>  $(obj)/dtc-lexer.lex.o: $(obj)/dtc-parser.tab.h
> --
> 2.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Best Regards
Masahiro Yamada