Re: Bug#397139: ftbfs alpha + ia64
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. This updated patch
instead of alpha-no-ev4-directive.patch should help:
--- gcc/config/alpha/alpha.c.orig 2006-11-06 09:59:12.000000000 +0100
+++ gcc/config/alpha/alpha.c 2006-11-06 09:59:06.000000000 +0100
@@ -9353,7 +9353,7 @@
fputs ("\t.set nomacro\n", asm_out_file);
if (TARGET_SUPPORT_ARCH | TARGET_BWX | TARGET_MAX | TARGET_FIX | TARGET_CIX)
{
- const char *arch;
+ const char *arch = NULL;
if (alpha_cpu == PROCESSOR_EV6 || TARGET_FIX || TARGET_CIX)
arch = "ev6";
@@ -9361,12 +9361,9 @@
arch = "pca56";
else if (TARGET_BWX)
arch = "ev56";
- else if (alpha_cpu == PROCESSOR_EV5)
- arch = "ev5";
- else
- arch = "ev4";
- fprintf (asm_out_file, "\t.arch %s\n", arch);
+ if (arch)
+ fprintf (asm_out_file, "\t.arch %s\n", arch);
}
}
#endif
> Since the errors from the assembler really indicate that these instructions
> are not supported by the ev5 (gcc-4.0 has the same problem assembling the
> gcc-4.1 output as gcc-4.1 itself does, due to the .arch ev5 declaration),
> and this kernel code hasn't changed recently that I see, it seems to be the
> case that ev5 processors are already unsupported by the current kernel in
> etch. Given that no one has complained about this to date (at least that
> I'm aware of), is it time to explicitly bump the baseline on alpha to ev56
> for etch?
I'm not opposed to this, in fact I was planning to suggest this for
etch+1. However, this particular problem should be reasonably easy to
fix, so if anybody speaks up for ev5, we should give it a try...
--
Falk
Reply to: