This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc-4.1-20050709: alpha: "macro requires $at register while noatin effect" while compiling Linux kernel
- From: Dan Kegel <dank at kegel dot com>
- To: Falk Hueffner <falk at debian dot org>
- Cc: GCC Mailing List <gcc at gcc dot gnu dot org>
- Date: Sun, 10 Jul 2005 18:26:02 -0700
- Subject: Re: gcc-4.1-20050709: alpha: "macro requires $at register while noatin effect" while compiling Linux kernel
- References: <42D0ADD8.5030407@kegel.com> <871x6624rq.fsf@debian.org>
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