slick wrote:Also ich bevorzuge (und empfehle daher), abhängig vom Rechner entweder Os oder O2. Os ist wie O2 nur das Optimierungen welche die Binarys größer machen nicht benutzt werden. O3 benutze ich kaum, denn der Geschwindigkeitsvorteil ist nicht spürbar (messbar? k.A.) und teilweise scheint es zu mir aggressiv. Einige Programme (weiß aber nicht mehr welche) hatten Probleme mit O3.
Viele ebuilds überschreiben auch einfach die -O3 Flags durch O2 - oder aber sie lassen sich nur durch USE-Flags (customcflags) dazu bewegen -O3 zu benutzen. Firefox und Thunderbird z.B. kompilieren auch nur mit max. O2, egal was in der make.conf steht. Ansonsten läuft auf meinen Systemen -O3 sehr gut ohne Kompilier- und Programmfehler
Was ich bezüglich der Binary-Größe feststellen konnte, war nicht so weltbewegend (wenn ich mich recht entsinne so um die +10% bei O3) - was allerdings bei -O3 wirklich nachteilig ist, ist die um einiges höhere Kompilierzeit gegenüber -O2.
Generell würde ich sagen, dass -O2 tendenziell eher bei Desktop-Systemen zu empfehlen ist (da kleinere binarys), da diese in der Regel häufig gebootet werden und dementsprechend die Programme auch häufig geöffnet und geschlossen werden und -O3 die Vorteile eher bei Serversystemen hat, da dort die Programme i.d.R. nur einmal gestartet werden und schnellerer Code sich eher auszahlt - wobei der Geschwindigkeitsvorteil von -O3 gegenüber -O2 wohl eher im niedrigen einstellen Prozentbereich sein sollte.
Zu -ffast-math: Also ich habs in den CFLAGS bei meinem Desktop (amd64) drin und es läuft dort ohne Probleme. Auch dort gilt wieder, viele Programme, die mit dem Flag nicht zurecht kommen, kompilieren sich auch garnicht erst mit -ffast-math, sondern entfernen diese CFLAGS beim Kompilieren - nochmal der Hinweis: USE=customcflags ist
böse, es sei denn, man will einen kaputten mplayer und ein grub, welches keine Sekunden mehr zählen kann

- Allerdings würde ich -ffast-math trotzdem nicht auf kritischen Systemen verwenden, ist eben nicht IEEE-Konform und wenn man sich sicher sein will, dass der Computer innerhalb der Spezifikationen läuft und man sich darauf verlassen will, dass die Programme so laufen, wie sie sollen, würde ich absolut die Finger davon lassen.
Im Prinzip gibt es bei CFLAGS kein richtig oder falsch, höchstens für ein bestimmtes System mehr oder weniger geeignet. Ein System zum Emails schreiben und Surfen mit -O3 und -ffast-math, warum nicht? Wenns läuft und auch noch schnell! Wird das System zum Entwickeln benutzt, sind die aggressiven Flags vielleicht nicht das Maß aller dinge, wenn der Compiler plötzlich Fließkommaarithmetik nicht mehr so macht, wie er sollte. Und auf kritischen Servern - nun wer da mit -ffast-math rumspielt, dem ist nicht mehr zu helfen.
