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