Le Sat, 30 Sep 2006 22:35:58 +0200,
Lionel Bouton <lionel-dev@...> a écrit :
> Hi, I just had an unpleasant experience with -ffast-math and GCC 4.1.1
> (it borked my LDAP authentication on several systems which worked with
> the same CFLAGS as long as GCC 3.4.6 was used).
> There is a lot of material out there about CFLAGS and Gentoo (google
> returns 387000 pages) but what's working for someone might not for
> another. There are flags that work for a GCC version and most ebuilds
> and don't work with another GCC version (my unfortunate experience) or
> some ebuilds. Flag combination/architecture/LDFLAGS might be an issue too.
> There are already good resources (http://gentoo-wiki.com/CFLAGS_matrix
> was mentioned to me by robbat2) but they may not be advertised enough.
> I'd like to propose a paragraph to the GWN editor which presents some
> gotchas and good references on the subject.
> Here's a draft for review. You're welcomed to expand on the subject.
> --- Draft BEGIN ---
> Being able to tune the CFLAGS is part of one of the core principles of
> Gentoo: let the user be in control. Being in control brings both
> benefits and problems and CFLAGS tuning is not an exception.
> The recent upgrade to gcc-4.1.1 for x86 and amd64 users changed the
> landscape. Users that spent some time tuning their CFLAGS with gcc-3.4.6
> might find out that an upgrade to gcc-4.1.1 leaves them with an unstable
> system. Example of this are :
> <li>nss_ldap stopped working with -ffast-math</li>
> Users with unsupported CFLAGS (see the <uri
> link='http://gentoo-wiki.com/CFLAGS_matrix'>CFLAGS matrix</uri> for
> example) might want to return to safe CFLAGS (see <uri
> link='http://gentoo-wiki.com/Safe_Cflags'>Safe CFLAGS</uri>) if recent
> updates caused them stability problems. On the other hand, more
> adventurous users might want to experiment with CFLAGS that didn't work
> properly with gcc-3.4.6... As always, the user is in control.
> --- Draft END ---
> If possible, I'd like to expand the list of 3.4.6 -> 4.1.1 upgrade
> problems which are linked to experimental CFLAGS. If you want to expand
> the subject to cover other tuning/stability gotchas that recent updates
> might have brought into the light, please feel free to do so. As English
> is not my native tongue, feel free to spell check too.
My personal experience with other CFLAGS as the ones in the handbook is at
gcc-4.1.1 have a better optimisation with the default gentoo CFLAGS. Even
with -O2, the result is a faster system, and -O3 seam to be safer with math
related applications as with gcc-3.4.*.
But in the other hand, other flags seam to be more problematic as with
gcc-3.4.*. And the new optimisations flags as the vectorisation flags are not
easy to use, because the result depend on the code of the program. They can or
not brake the code, and when the program run well, they can make it faster
or slower. All depend of the size and complexity of the loops. And I think also
of the arch.
So my conclusion is:
For system flags, just keep the default, and if you want to experiment, do
profiling for each single program you want to optimize.
email@example.com mailing list