On Friday 07 July 2006 15:53, Martin Schlemmer wrote: > Check Chris Gianelloni's mail just now.  For some compilers with some > -march's on x86 it did not explicitly turn on some features (or maybe > not to such a high extend). Uh no, I think he meant that for some borderline processors there's not a -march value, like for Athlon64 Revision D, that has sse3 support. In those cases you have to use -msse3 or whatever else to tell the compiler what to generate. > So where say CFLAGS="-march=pentium3" would > work, CFLAGS="-march=pentium3 -msse" would fail to build, or generate > bad code (segfaulting binaries). This might have been true with _older_ GCC, but all the series 3.3, 3.4, 4.0 and 4.1 behaves correctly: -march=pentium3 implies -msse without doubt. What you might incorrectly remember is -mfpmath=sse that is totally another thing, and dies usually on bad code anyway, and it's enabled by default on 64-bit CPUs just because on there the 80-bit limit for doubles is not pertinent anymore. I might seem an idiot, but I have enough experience to know what I'm talking about. Seems instead that other people confuse SEGFAULT with SIGILL and -msse with -mfpmath=sse (or simply remember just what happened with GCC 3.2). A little note here: tools improve. GCC 2.95 was a joke, GCC 3.0, 3.1 were almost unusable, 3.2 started to be usable but full of problems, 3.3/3.4 series improved, drastically. Stuff like visibility is badly broken up to 4.0, but works fine on 4.1. You cannot think that a flag or a support will always be broken because a release had it broken, you have to watch what you're doing to do it correctly. -- Diego "Flameeyes" Pettenò - http://farragut.flameeyes.is-a-geek.org/ Gentoo/Alt lead, Gentoo/FreeBSD, Video, AMD64, Sound, PAM, KDE