1 |
On Fri, 2006-07-07 at 16:03 +0200, Diego 'Flameeyes' Pettenò wrote: |
2 |
> On Friday 07 July 2006 15:53, Martin Schlemmer wrote: |
3 |
> > Check Chris Gianelloni's mail just now. For some compilers with some |
4 |
> > -march's on x86 it did not explicitly turn on some features (or maybe |
5 |
> > not to such a high extend). |
6 |
> Uh no, I think he meant that for some borderline processors there's not |
7 |
> a -march value, like for Athlon64 Revision D, that has sse3 support. In those |
8 |
> cases you have to use -msse3 or whatever else to tell the compiler what to |
9 |
> generate. |
10 |
> |
11 |
> > So where say CFLAGS="-march=pentium3" would |
12 |
> > work, CFLAGS="-march=pentium3 -msse" would fail to build, or generate |
13 |
> > bad code (segfaulting binaries). |
14 |
> This might have been true with _older_ GCC, but all the series 3.3, 3.4, 4.0 |
15 |
> and 4.1 behaves correctly: -march=pentium3 implies -msse without doubt. |
16 |
> |
17 |
> What you might incorrectly remember is -mfpmath=sse that is totally another |
18 |
> thing, and dies usually on bad code anyway, and it's enabled by default on |
19 |
> 64-bit CPUs just because on there the 80-bit limit for doubles is not |
20 |
> pertinent anymore. |
21 |
> |
22 |
|
23 |
As I pointed out on irc (to clarify), its still an issue even with |
24 |
gcc-3.4.6. Its just well enough filtered, and as Mike pointed out, they |
25 |
'fixed' it in 3.4.5 via specs, and 3.4.6 by backporting patches from |
26 |
4.0.1 I think. |
27 |
|
28 |
> I might seem an idiot, but I have enough experience to know what I'm talking |
29 |
> about. Seems instead that other people confuse SEGFAULT with SIGILL and -msse |
30 |
> with -mfpmath=sse (or simply remember just what happened with GCC 3.2). |
31 |
> |
32 |
|
33 |
I did not imply this as far I know, and if it seemed that way, I can |
34 |
only say that I assumed that newer guys had the advantage of most |
35 |
ebuilds filtering or -mno-sse/whatever for known broken stuff (I know |
36 |
xorg was one with a few workarounds, also mozilla, etc at at some |
37 |
stage), so would not have noticed if sse/whatever broke something. |
38 |
That, and not being on the toolchain list you might not be familiar with |
39 |
the extend of the issue, with the fact that its different issues with |
40 |
different versions depending besides that on if its a i586, k6, p2, p3 |
41 |
or p4, etc. |
42 |
|
43 |
> A little note here: tools improve. GCC 2.95 was a joke, GCC 3.0, 3.1 were |
44 |
> almost unusable, 3.2 started to be usable but full of problems, 3.3/3.4 |
45 |
> series improved, drastically. |
46 |
> Stuff like visibility is badly broken up to 4.0, but works fine on 4.1. You |
47 |
> cannot think that a flag or a support will always be broken because a release |
48 |
> had it broken, you have to watch what you're doing to do it correctly. |
49 |
> |
50 |
|
51 |
I'd say only 4.0.1 and upwards really solved most of those issues, |
52 |
especially the long comming sse one. |
53 |
|
54 |
|
55 |
-- |
56 |
Martin Schlemmer |