2007-01-08 13:18:25

by Sriram V

[permalink] [raw]
Subject: kernel compilation - errors

Hi,
Im using linux-2.6.14-omap2430.

Im using TI omap 2430 SDP.

When i compile it with the eldk toolchain.

I get an error listed at the end of this mail.

The error is simple - case values should be constants, However, the
toolchain gcc 4.0
is complaining that case values are not constant.

Actually, the some of the case values are defined as -

case (u32)&CM_ICLKEN_WKUP:
case (u32)&CM_FCLKEN_WKUP:

However, the same code compiles with some other compilers (lower
versions of gcc).

I think all compilers should give the same error

Why the difference in behaviour?.

Not sure, if the source located at linux.omap.com/pub is broken.
Couldnt find the sources of linux kernel for omap2430 with higher
versions of the linux kernel higher than 2.6.14.


Please advice,


Regards,
sriram

Error:

CHK include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/compile.h
CHK usr/initramfs_list
CC arch/arm/mach-omap2/clock24xx.o
arch/arm/mach-omap2/clock24xx.c:47: error: static declaration of
'clockfw_lock' follows non-static declaration
include/asm/arch/clock.h:53: error: previous declaration of
'clockfw_lock' was here
arch/arm/mach-omap2/clock24xx.c: In function 'do_omap_set_performance':
arch/arm/mach-omap2/clock24xx.c:579: warning: no return statement in
function returning non-void
arch/arm/mach-omap2/clock24xx.c: In function 'clk_safe':
arch/arm/mach-omap2/clock24xx.c:1223: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1224: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1228: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1229: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1236: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1237: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1241: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1242: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1246: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1250: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1254: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1255: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1259: error: case label does not
reduce to an integer constant
arch/arm/mach-omap2/clock24xx.c:1260: error: case label does not
reduce to an integer constant
make[1]: *** [arch/arm/mach-omap2/clock24xx.o] Error 1
make: *** [arch/arm/mach-omap2] Error 2


code is :
switch((u32)(clk->enable_reg)){
case (u32)&CM_ICLKEN_MDM:
case (u32)&CM_FCLKEN_MDM:
pReg = &CM_IDLEST_MDM;
off = 0x0;
break;
case (u32)&CM_ICLKEN_DSP:
case (u32)&CM_FCLKEN_DSP:
pReg = &CM_IDLEST_DSP;
if(enbit == 1)
off = 0;
else
off = enbit;
break;
case (u32)&CM_ICLKEN_WKUP:
case (u32)&CM_FCLKEN_WKUP:
pReg = &CM_IDLEST_WKUP;
off = enbit;
break;
case (u32)&CM_ICLKEN_GFX:
case (u32)&CM_FCLKEN_GFX:
pReg = &CM_IDLEST_GFX;
off = 0x0;
break;
case (u32)&CM_ICLKEN4_CORE:
pReg = &CM_IDLEST4_CORE;
off = enbit;
break;
case (u32)&CM_ICLKEN3_CORE:
pReg = &CM_IDLEST3_CORE;


2007-01-08 20:29:18

by Tony Lindgren

[permalink] [raw]
Subject: Re: kernel compilation - errors

Hi,

* Ram <[email protected]> [070108 05:18]:
> Hi,
> Im using linux-2.6.14-omap2430.
>
> Im using TI omap 2430 SDP.
>
> When i compile it with the eldk toolchain.
>
> I get an error listed at the end of this mail.
>
> The error is simple - case values should be constants, However, the
> toolchain gcc 4.0
> is complaining that case values are not constant.
>
> Actually, the some of the case values are defined as -
>
> case (u32)&CM_ICLKEN_WKUP:
> case (u32)&CM_FCLKEN_WKUP:
>
> However, the same code compiles with some other compilers (lower
> versions of gcc).
>
> I think all compilers should give the same error
>
> Why the difference in behaviour?.
>
> Not sure, if the source located at linux.omap.com/pub is broken.
> Couldnt find the sources of linux kernel for omap2430 with higher
> versions of the linux kernel higher than 2.6.14.

Sounds like you're using TI's tree. In that case please contact TI for
support.

If you want to use the current git tree, please see:

http://www.kernel.org/git/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=summary

and

http://muru.com/linux/omap

Only minimal 2340 code is currently merged in the linux-omap git tree,
so YMMV.

Regards,

Tony

2007-01-08 20:43:17

by Jan Engelhardt

[permalink] [raw]
Subject: Re: kernel compilation - errors


On Jan 8 2007 18:48, Ram wrote:
>
> Actually, the some of the case values are defined as -
>
> case (u32)&CM_ICLKEN_WKUP:
> case (u32)&CM_FCLKEN_WKUP:

This looks like really broken code, if CM_* happen to be constants.


-`J'
--