[U-Boot] compile errors with gcc-4.5.1 on OXC and RMU boards

Wolfgang Denk wd at denx.de
Sun Dec 12 22:49:36 CET 2010


Dear Scott Wood,

In message <20101210122714.24b2cbef at udp111988uds.am.freescale.net> you wrote:
> On Fri, 10 Dec 2010 12:14:43 -0600
> Kumar Gala <galak at kernel.crashing.org> wrote:
> 
> > On the OXC & RMU boards I'm seeing the following build error:
> > 
> > powerpc-linux-gnu-gcc  -g  -Os   -mrelocatable -ffunction-sections -fdata-sections -fPIC -meabi -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0xFFF00000 -I/local/home/galak/git/u-boot-85xx/include -fno-builtin -ffreestanding -nostdinc -isystem /local/opt/freesc
> ale/usr/local/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/../lib/gcc/powerpc-linux-gnu/4.5.1/include -pipe  -DCONFIG_PPC -D__powerpc__ -DCONFIG_MPC824X -ffixed-r2 -mstring -mcpu=603e -msoft-float -Wall -Wstrict-prototypes -fno-stack-protector   \
> > 		-o board.o board.c -c
> > board.c: In function 'board_init_r':
> > board.c:761:35: error: token "[" is not valid in preprocessor expressions
> > make[1]: *** [board.o] Error 1
> > 
> > Not sure what to be done about it, since OXC.h defines:
> > 
> > #define CONFIG_SYS_FLASH_BASE           (0-flash_info[0].size)
> 
> This:
> 
> # elif CONFIG_SYS_MONITOR_BASE == CONFIG_SYS_FLASH_BASE
> 
> requires that CONFIG_SYS_FLASH_BASE be a preprocessor-evaluatable
> constant.  flash_info[0].size isn't any sort of constant.  I don't see
> how it ever worked -- probably just got evaluated as zero, or a string
> compare, or something.
> 
> As for what's to be done, I'll start by getting the attention of anyone
> who cares about these boards by putting the board names in the
> subject. :-)
> 
> Maybe convert the #elif into a regular if-statement?

No, I think this is a bug in the tool chain.

The "#elif" above should never be evaluated because the corresponding

	# if defined(CONFIG_OXC) || defined(CONFIG_RMU)

already catches the case for the OXC & RMU boards.


Or has the rule officially been dropped that the "#if" in the C
prepro use the same shortcut logic as the "if" in C?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"And it should be the law: If you use  the  word  `paradigm'  without
knowing  what  the  dictionary  says  it  means,  you  go to jail. No
exceptions."                     - David Jones @ Megatest Corporation


More information about the U-Boot mailing list