Re: Bug#397139: ftbfs alpha + ia64
On Mon, Nov 06, 2006 at 10:02:51AM +0100, Falk Hueffner wrote:
> Steve Langasek <vorlon@debian.org> writes:
> > On Sun, Nov 05, 2006 at 01:56:28PM +0100, maximilian attems wrote:
> >> {standard input}:372: Error: macro requires $at register while noat in effect
> >> make[5]: *** [arch/alpha/kernel/core_cia.o] Error 1
> >> make[4]: *** [arch/alpha/kernel] Error 2
> > Taking a look at the assembler output for core_cia, this is due to use of
> > the ldbu, ldwu, stb, and stw instructions in asm-alpha/compiler.h, which are
> > instructions specific to ev56 and above. They are also guarded in the
> > source by an #if !defined(__alpha_bwx__). It looks like the difference is
> > in the assembler between gcc-4.0 and gcc-4.1; specifically, gcc-4.1 emits a
> > '.arch ev5' directive, where gcc-4.0 does not.
> I made a patch against gcc to suppress gcc outputting .arch directives
> that don't do anything useful except triggering this error, and it
> went in in 4.1.1ds2-17. Unfortunately, I thought an .ev4 directive
> would be the problem, while it seems to be .ev5.
It gets better -- after fixing up the first bit of assembly in the source,
I've found that there's also embedded assembly in sys_titan.c which is
specific to ev6. So even emitting ".arch ev56" is going to give a build
failure.
Which convinces me even more that the right answer is to fix the kernel
instead of disabling gcc's ability to sanity-check the insns used.
Patch available as soon as I get to the end of the build.
Thanks,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
vorlon@debian.org http://www.debian.org/
Reply to: