* Waldemar Brodkorb (linux@netcologne.de) [20000406 22:51]:
CFLAGS= -O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions
<ironie> Ich *liebe* solche Generalisierungen. </ironie> -O9 bringt mit dem standard gcc überhaupt nichts, denn der kennt nur 3 Optimierungsstufen und -O3 schaltet nur zusätzlich automatisches inlinen ein, was in der Regel wenig sinnvoll ist. -ffast-math ist mit Vorsicht zu geniessen und -fomit-frame-pointer macht das Debuggen unmöglich. -mcpu kann man sich sparen, wenn -march angegeben wurde, denn letzteres impliziert ersteres. -malign-doubles ist auch nur bedingt sinnvoll. Schau Dir einfach mal die Texinfo-Dokumentation zum GCC an ( 'info gcc' ), speziell die Beschreibung der von Dir genannten Schalter. Die meisten haben ihre Haken und deshalb muss man von Fall zu Fall, sprich von Paket zu Paket, entscheiden, welche Schalter sinnvoll sind. Meiner Erfahrung nach sind ab Pentium aufwärts generell nur "-O2 --march=<prozessor> -fschedule-insns2 -fomit-frame-pointer" problemlos verwendbar. Bei allen anderen Flags muss man von Paket zu Paket entscheiden.
Flags in /etc/profile.local eintragen und exportieren.
Wenn Du rpm verwendest, ist es sinnvoller, /etc/rpmrc entsprechend zu modifizieren und dann in den Specfiles CFLAGS="$RPM_OPT_FLAGS" ./configure ..... zu verwenden. Aber Vorsicht! Manche Pakete ignorieren geflissentlich übergebene CFLAGS und setzten ihre eignen (selten aus gutem Grund).
Stell ich mir die Sache zu einfach vor?
Ja leider :( Im Endeffekt musst du dir doch jedes Paket ansehen und gegebenenfalls anpassen, zumal, wie ich schrieb, man von Paket zu Paket entscheiden muss, welche Optionen man evtl. noch zusätzlixh verwendet.
Bringt es Geschwindigkeitsvorteile oder lohnt der Aufwand nicht?
Teils ja, teils nein. Ein generelles Urteil ist da nicht möglich.
Philipp
--
Philipp Thomas