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