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

Attachment: pgpLOzIWZ4SFL.pgp
Description: PGP signature

Reply via email to