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

Scott Wood scottwood at freescale.com
Fri Dec 10 19:27:14 CET 2010


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/freescale/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?

-Scott



More information about the U-Boot mailing list