gcc-4.1-20050709: alpha: "macro requires $at register while noat in effect" while compiling Linux kernel
Dan Kegel
dank@kegel.com
Mon Jul 11 01:35:00 GMT 2005
Falk Hueffner wrote:
> Dan Kegel <dank@kegel.com> 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
More information about the Gcc
mailing list