If I try to build Xfree with gcc 3.2 and -march=athlon-tbird Xfree breaks with the following error: miPck1Prim.c: In function `CheckFAreaPick1': miPck1Prim.c:405: unable to find a register to spill in class `FLOAT_REGS' miPck1Prim.c:405: this is the insn: (insn 299 297 302 (set (subreg:SF (reg/v:DI 29 rmm0 [64]) 0) (float:SF (reg:HI 5 di [157]))) 167 {floathisf2} (nil) (nil)) miPck1Prim.c:405: confused by earlier errors, bailing out make[5]: *** [miPck1Prim.o] Error 1 make[5]: Leaving directory `/var/tmp/portage/xfree-4.2.0- r12/work/xc/programs/Xserver/PEX5/ddpex/mi/level1' make[4]: *** [ddpex/mi/level1] Error 2 make[4]: Leaving directory `/var/tmp/portage/xfree-4.2.0- r12/work/xc/programs/Xserver/PEX5' make[3]: *** [PEX5] Error 2 make[3]: *** [PEX5] Error 2 make[3]: Leaving directory `/var/tmp/portage/xfree-4.2.0- r12/work/xc/programs/Xserver' make[2]: *** [install] Error 2 make[2]: Leaving directory `/var/tmp/portage/xfree-4.2.0-r12/work/xc/programs' make[1]: *** [install] Error 2 make[1]: Leaving directory `/var/tmp/portage/xfree-4.2.0-r12/work/xc' make: *** [install] Error 2 !!! ERROR: The ebuild did not complete successfully. !!! Function src_install, Line 9, Exitcode 2 !!! (no error message) !!! emerge aborting on /usr/portage/x11-base/xfree/xfree-4.2.0-r12.ebuild But is I add -mno-mmx and -mno-3dnow to my C[XX]FLAGS the ebuid works. The ebuils needs to be modified to remove mmx and 3dnow from the compile option if gcc 3.2 is used to compile it. also it seems thet this problem only happens with -march=athlon-tbird, - march=athlon-xp seems to work with mmx and 3dnow acording to this thread from the forum: http://forums.gentoo.org/viewtopic.php?t=10998
this is not athlon specific. i have run into this on a celeron system with gcc 3.1.1 and the -mmmx flag enabled.
Same with -march=pentium4. I think this should rather be fixed gcc side. Please submit a bugreport to them.
Before I submit the bug to the gcc guys can anyone test if -m3dnow aso breaks Xfree or is it -mmmx only.
Testing "-march=pentium4 -mno-mmx" here now. Have a look at: http://gcc.gnu.org/cgi-bin/gnatsweb.pl At bug #7423, which is one I added for gcc-3.2_pre and -march=pentium4. Not very informative I know :P
Filter the flags in ebuild, but this is really a gcc issue.