[Buildroot] ARCH=mips and linux-2.6.30.2

Dominic Mason dominic at opusvl.com
Thu Sep 24 16:27:06 UTC 2009


Hi

Whilst building mips (mipsel) for an Alchemy AU1100 based system, I got
the following error whilst building the kernel:


CC      arch/mips/lib/delay.o
arch/mips/lib/delay.c: In function '__udelay':
arch/mips/lib/delay.c:46: warning: right shift count >= width of type
arch/mips/lib/delay.c: In function '__ndelay':
arch/mips/lib/delay.c:54: error: 'us' undeclared (first use in this
function)
arch/mips/lib/delay.c:54: error: (Each undeclared identifier is reported
only once
arch/mips/lib/delay.c:54: error: for each function it appears in.)
make[1]: *** [arch/mips/lib/delay.o] Error 1
make: *** [arch/mips/lib] Error 2

This is using buildroot-2009-08 with kernel 2.6.30.2

For what it's worth, if you copy arch/mips/lib/delay.c 
from a vanilla 2.6.30.4 kernel, then the error disappears.

However, the patch appears to have been missed from the 2.6.30.5 kernel,
where it re-appears.

The relevant lines in arch/mips/lib/delay.c should be:

        __delay((us * 0x000010c7ull * HZ * lpj) >> 32);
and

        __delay((ns * 0x00000005ull * HZ * lpj) >> 32);


which should replace

        __delay((us * 0x000010c7 * HZ * lpj) >> 32);

and

        __delay((us * 0x00000005 * HZ * lpj) >> 32);



Apologies for not being proficient enough to supply this as a patch.

It would appear that the above change exists in the vanilla linux-2.6.31
kernel from www.kernel.org

So this is really for information only, for anyone who gets this error
trying to compile a mips system using the 2.6.30.2 and 2.6.30.5 kernel.



-- 
Dominic Mason <dominic at opusvl.com>
Opus VL


More information about the buildroot mailing list