[PATCH 5/5] scripts: imx: Do not include autoconf.h

Marcin Niestrój m.niestroj at grinn-global.com
Tue Sep 4 02:38:46 PDT 2018


Hi Sasha,

Sascha Hauer <s.hauer at pengutronix.de> writes:

> On Mon, Sep 03, 2018 at 12:57:15PM +0200, Marcin Niestroj wrote:
>> All required defines are passed with command line -D options, so there
>> is no need to include full autoconf.h header. Additionally there were
>> compile time warnings printed when passed variables (CONFIG_HABV*) had
>> embedded environment variables, because macros in autoconf.h were
>> redefining these passed as command line arguments (-include is
>> processed later than -D option).
>> 
>> Remove including autoconf.h header, so CONFIG_HABV* macros are only
>> defined with command line arguments, properly expanding embedded
>> variables.
>> 
>> Signed-off-by: Marcin Niestroj <m.niestroj at grinn-global.com>
>> ---
>> Changes rfc -> v1: new patch
>> 
>>  scripts/Makefile.lib | 1 -
>>  1 file changed, 1 deletion(-)
>> 
>> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
>> index 3b1308605..c254b5b79 100644
>> --- a/scripts/Makefile.lib
>> +++ b/scripts/Makefile.lib
>> @@ -433,7 +433,6 @@ cmd_imximage_S_dcd=						\
>>  
>>  imxcfg_cpp_flags  = -Wp,-MD,$(depfile) -nostdinc -x assembler-with-cpp \
>>        -I $(srctree)/include -I $(srctree)/arch/arm/mach-imx/include \
>> -      -include include/generated/autoconf.h \
>>        -DCONFIG_HABV3_SRK_PEM=\"$(CONFIG_HABV3_SRK_PEM)\" \
>>        -DCONFIG_HABV3_CSF_CRT_DER=\"$(CONFIG_HABV3_CSF_CRT_DER)\" \
>>        -DCONFIG_HABV3_IMG_CRT_DER=\"$(CONFIG_HABV3_IMG_CRT_DER)\" \
>
> the inclusion of autoconf.h is there so that we can use the CONFIG_*
> macros. See for example rch/arm/boards/tqma53/flash-header.imxcfg:36
>
> #ifdef CONFIG_MACH_TQMA53_1GB_RAM

Okay, so we cannot drop autoconf.h inclusion. That also means that we
need some other way to expand embedded variables in CONFIG_HAB* Kconfig
options. The problem is that autoconf.h overwrites (redefines) all
macros specified at command line.

>
> What we can do instead is replace the -include with "-I
> $(objtree)/include" so that we can do a "#include
> <generated/autoconf.h>" in arch/arm/boards/tqma53/flash-header.imxcfg.
> Would that be fine aswell?

This will also result in autoconf.h redefining macros specified at
command line, but only for that board (because of explicit "include
<generated/autoconf.h>"). Problem will surface once again when someone
will start using HAB for that board.

Maybe we should expand all macros from autoconf.h? For example process
autoconf.h *somehow* and produce autoconf-expanded.h, which we could use
with "-include" option. This is just an idea, I do not know how to
implement that. Any other ideas?

>
> Sascha

-- 
Regards,
Marcin



More information about the barebox mailing list