I actually tried two combinations so far, all failing in exactly same way: CHOST=alphaev6-unknown-linux-gnu/CFLAGS=-march=ev67 mtune=ev67 CHOST=alphaev67-unknown-linux-gnu/CFLAGS=-march=ev67 mtune=ev67 I think I tried others as well, but I don't remember for sure. In both cases end result was that compile failed with following error (full log attached as well): ../mpn/m4-ccas --m4=m4 gcc -c -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_mode1o -mcpu=ev67 -mtune=ev67 -O2 -pipe -g mode1o.asm -fPIC -DPIC -o .libs/mode1o.o m4 -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_mode1o -DPIC mode1o.asm >tmp-mode1o.s gcc -c -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_mode1o -mcpu=ev67 -mtune=ev67 -O2 -pipe -g tmp-mode1o.s -fPIC -DPIC -o .libs/mode1o.o tmp-mode1o.s: Assembler messages: tmp-mode1o.s:117: Error: macro requires $at register while noat in effect Reproducible: Always Steps to Reproduce:
Created attachment 112729 [details] Full compile output
Little additional info: compiling with default -mcpu/-mtune works.
-march is invalid on alpha ... i'm guessing you meant -mcpu ... in which case, using -mcpu=ev67 -mtune=ev67 is dumb when the cpus are the same ... but i digress built fine for me: CFLAGS="-mieee -pipe -O2 -mcpu=ev67" CHOST="alpha-unknown-linux-gnu" but i'll try bumping CHOST ... this will take some time :p
*** Bug 169696 has been marked as a duplicate of this bug. ***
In bug #169696 George is having the same problem using CHOST="alphaev56-unknown-linux-gnu". The revision 4.2.1-r1 compiles and passes all the tests in alpha ev67 using CHOST="alpha-unknown-linux-gnu", so probably the problems appear when something different than alpha-unkown is set.
alpha: is the normal chost set to anything other than alpha-*? In other words, is there anything to fix here?
Not really. CHOST different alpha-* is used mainly on Tru64 and some people have used it on Linux in the past. I'd rather not support it since it breaks all kinds of stuff if you do. As such I recommend closing this bugs as Inv.
Closing as invalid since we don't support other CHOSTs than alpha-*
the problem here is that alpha gcc does not pass appropriate -m flag down to the assembler. so even if you do `gcc -c -mcpu=ev67 foo.s`, the assembler does `as foo.s` which means the default assembler is still targetting ev4. it can be worked around in gmp by adding -Wa,-m<cpu> to match the -mcpu
guess we just need to add %{mcpu=*:-m%*} to ASM_SPEC in gcc/config/alpha/elf.h
and that does indeed do the trick, so i'll try sending it upstream # portageq envvar CHOST CFLAGS alphaev68-unknown-linux-gnu -mieee -pipe -O2 -mcpu=ev67 # gcc --version | head -n1 gcc (Gentoo 4.4.2 p1.0) 4.4.2 # emerge gmp ... >>> Completed installing gmp-4.3.1 into /var/tmp/portage/dev-libs/gmp-4.3.1/image/ strip: alphaev68-unknown-linux-gnu-strip --strip-unneeded -R .comment usr/lib/libgmpxx.so.4.1.0 usr/lib/libgmp.so.3.5.0 usr/lib/libgmpxx.a usr/lib/libgmp.a ecompressdir: bzip2 -9 /usr/share/info removing executable bit: usr/lib/libgmp.la removing executable bit: usr/lib/libgmpxx.la >>> Installing dev-libs/gmp-4.3.1 ...
upstream accepted the patch and ive queued it for gcc-4.*
Did this ever get put upstream?
hrm, it should have been. it was approved, but i guess people keep expecting me to make commits myself. i'll try and find someone to get me write access and i'll take care of merging it.