[U-Boot] [U-Boot, v3, 15/15] of: clean up OF_CONTROL ifdef conditionals

Marek Vasut marex at denx.de
Wed Aug 19 23:15:27 CEST 2015


On Wednesday, August 19, 2015 at 02:02:18 PM, Tom Rini wrote:
> On Wed, Aug 19, 2015 at 06:39:29AM +0200, Marek Vasut wrote:
> > On Tuesday, August 18, 2015 at 07:53:23 PM, Tom Rini wrote:
> > > On Wed, Aug 12, 2015 at 07:31:55AM +0900, Masahiro Yamada wrote:
> > > > We have flipped CONFIG_SPL_DISABLE_OF_CONTROL.  We have cleansing
> > > > devices, $(SPL_) and CONFIG_IS_ENABLED(), so we are ready to clear
> > > > 
> > > > away the ugly logic in include/fdtdec.h:
> > > >  #ifdef CONFIG_OF_CONTROL
> > > >  # if defined(CONFIG_SPL_BUILD) && !defined(SPL_OF_CONTROL)
> > > >  #  define OF_CONTROL 0
> > > >  # else
> > > >  #  define OF_CONTROL 1
> > > >  # endif
> > > >  #else
> > > >  # define OF_CONTROL 0
> > > >  #endif
> > > > 
> > > > Now CONFIG_IS_ENABLED(OF_CONTROL) is the substitute.  It refers to
> > > > CONFIG_OF_CONTROL for U-boot proper and CONFIG_SPL_OF_CONTROL for
> > > > SPL.
> > > > 
> > > > Also, we no longer have to cancel CONFIG_OF_CONTROL in
> > > > include/config_uncmd_spl.h and scripts/Makefile.spl.
> > > > 
> > > > Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
> > > > Reviewed-by: Tom Rini <trini at konsulko.com>
> > > > Reviewed-by: Simon Glass <sjg at chromium.org>
> > > > Acked-by: Linus Walleij <linus.walleij at linaro.org>
> > > 
> > > (With a slight change due to samsun PR, but applied cleanly after
> > > rename)
> > > Applied to u-boot/master, thanks!
> > 
> > And this just broke just about every SoCFPGA platform (try ie.
> > socfpga_cyclone5) ;-) I poked into this a bit and noticed that adding
> > #include <linux/kconfig.h> into include/configs/socfpga_common.h fixes
> > the issue, but I'd like to check with you if this is the correct way of
> > fixing it.
> 
> Broke it how?
> $ ./tools/buildman/buildman socfpga_cyclone5
> boards.cfg is up to date. Nothing to do.
> Building current source for 1 boards (1 thread, 6 jobs per thread)
>     1    0    0 /1      socfpga_cyclone5

Looks like I wasn't really accurate and mainline actually managed to avoid
this breakage. I only triggered it with a custom patch, which enables env
in SPI NOR (see the spit below).

I suspect the problem is caused by tools/envcrc.c, which does include the
board config file (which uses this CONFIG_IS_ENABLED()), but does not include
a header file which defines it.

The question therefore is, shall we not used CONFIG_IS_ENABLED() in board
config files or shall we include linux/kconfig.h in tools/envcrc.c ?

--->8---

In file included from include/configs/socfpga_sockit.h:195:0,
                 from include/config.h:5,
                 from tools/envcrc.c:19:
include/configs/socfpga_common.h:217:22: error: missing binary operator before 
token "("
 #if CONFIG_IS_ENABLED(OF_CONTROL) /* DW SPI is controlled via DT */
                      ^
make[1]: *** [tools/envcrc.o] Error 1
make[1]: *** Waiting for unfinished jobs....
In file included from include/configs/socfpga_sockit.h:195:0,
                 from include/config.h:5,
                 from ./tools/../common/env_embedded.c:12,
                 from tools/common/env_embedded.c:1:
include/configs/socfpga_common.h:217:22: error: missing binary operator before 
token "("
 #if CONFIG_IS_ENABLED(OF_CONTROL) /* DW SPI is controlled via DT */
                      ^
make[1]: *** [tools/common/env_embedded.o] Error 1
make: *** [tools] Error 2
In file included from include/configs/socfpga_sockit.h:195:0,
                 from include/config.h:5,
                 from tools/envcrc.c:19:
include/configs/socfpga_common.h:217:22: error: missing binary operator before 
token "("
 #if CONFIG_IS_ENABLED(OF_CONTROL) /* DW SPI is controlled via DT */
                      ^
make[1]: *** [tools/envcrc.o] Error 1
make: *** [tools] Error 2
In file included from include/configs/socfpga_sockit.h:195:0,
                 from include/config.h:5,
                 from tools/envcrc.c:19:                                                                                                          
include/configs/socfpga_common.h:217:22: error: missing binary operator before 
token "("                                                          
 #if CONFIG_IS_ENABLED(OF_CONTROL) /* DW SPI is controlled via DT */                                                                              
                      ^                                                                                                                           
make[1]: *** [tools/envcrc.o] Error 1                                                                                                             
make: *** [tools] Error 2                                                                                                                         
In file included from include/configs/socfpga_sockit.h:195:0,                                                                                     
                 from include/config.h:5,                                                                                                         
                 from tools/envcrc.c:19:
include/configs/socfpga_common.h:217:22: error: missing binary operator before 
token "("
 #if CONFIG_IS_ENABLED(OF_CONTROL) /* DW SPI is controlled via DT */
                      ^
make[1]: *** [tools/envcrc.o] Error 1
make: *** [tools] Error 2

Best regards,
Marek Vasut


More information about the U-Boot mailing list