On Fri, 2006-07-07 at 16:03 +0200, Diego 'Flameeyes' Pettenò wrote: > 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. >
As I pointed out on irc (to clarify), its still an issue even with gcc-3.4.6. Its just well enough filtered, and as Mike pointed out, they 'fixed' it in 3.4.5 via specs, and 3.4.6 by backporting patches from 4.0.1 I think. > 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). > I did not imply this as far I know, and if it seemed that way, I can only say that I assumed that newer guys had the advantage of most ebuilds filtering or -mno-sse/whatever for known broken stuff (I know xorg was one with a few workarounds, also mozilla, etc at at some stage), so would not have noticed if sse/whatever broke something. That, and not being on the toolchain list you might not be familiar with the extend of the issue, with the fact that its different issues with different versions depending besides that on if its a i586, k6, p2, p3 or p4, etc. > 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. > I'd say only 4.0.1 and upwards really solved most of those issues, especially the long comming sse one. -- Martin Schlemmer
signature.asc
Description: This is a digitally signed message part
