Falk Hueffner wrote:
> Aurelien Jarno <[EMAIL PROTECTED]> writes:
> 
> > Falk Hueffner a écrit :
> >> Aurelien Jarno <[EMAIL PROTECTED]> writes:
> >>
> >>>On arm, ia64 and alpha the glibc fails to build with gcc-4.1.
> >> On Alpha the problem is:
> >> {standard input}: Assembler messages:
> >> {standard input}:341: Error: macro requires $at register while noat in 
> >> effect
> >> {standard input}:374: Error: macro requires $at register while noat in 
> >> effect
> >> {standard input}:438: Error: macro requires $at register while noat in 
> >> effect
> >> {standard input}:471: Error: macro requires $at register while noat in 
> >> effect
> >> make[3]: *** [/tmp/buildd/glibc-2.3.6/build-tree/alpha-libc/misc/ioperm.o] 
> >> Error 1
> >> Hrm. gcc puts .arch ev4 into the .s, and this overrides -mev6 for as.
> >> I cannot really think of anything better than
> >
> > Ok, thanks a lot, I will add it in the SVN soon.
> >
> > Do you think it is a fix or a workaround? Or rather do you think this
> > behaviour is correct?
> 
> Well, the right thing to do would be to turn arch to ev6, and then
> restore it to whatever it was previously; with this patch, it remains
> turned on for the rest of the file and could potentially hide errors.
> However, I don't think that's possible with gas. So given this
> deficiency, I don't think there's a better way.

FYI, the MIPS gas has

        .set push
        .set mips32
        # ...
        .set pop

which is very useful to handle such situations. Alpha gas at least
doesn't document anything similiar, but it might be useful to
implement such a feature for it.


Thiemo

Reply via email to