Falk Hueffner wrote:
Dan Kegel <[EMAIL PROTECTED]> writes:
Likewise, compiling that version of gcc for alpha
dies while building the linux kernel, but for a different reason:
{standard input}:496: Error: macro requires $at register while noat in effect
make[1]: *** [arch/alpha/kernel/core_cia.o] Error 1
This doesn't really sound like a gcc bug, rather like an invalid asm,
or bad options passed to as. But it's impossible to tell without a
test case.
OK, I extracted a minimal test case. This is from compiling
arch/alpha/kernel/core_cia.c from linux-2.6.11.3 for alpha.
Works fine with gcc-4.0.1. Can somebody familiar with
inline assembly guess whether the source or the compiler are wrong here?
--- snip ---
inline unsigned int
cia_bwx_ioread8(void *a)
{
return ({ unsigned char __kir; __asm__("ldbu %0,%1" : "=r"(__kir) :
"m"(*(volatile unsigned char *)a)); __kir; });
}
--- snip ---
$ alpha-unknown-linux-gnu-gcc -fno-common -ffreestanding -O2 \
-mno-fp-regs -ffixed-8 -msmall-data -mcpu=ev5 -Wa,-mev6 -c core_cia.i
/tmp/ccmvyEzr.s: Assembler messages:
/tmp/ccmvyEzr.s:16: Error: macro requires $at register while noat in effect
--
Trying to get a job as a c++ developer? See
http://kegel.com/academy/getting-hired.html