View previous topic :: View next topic |
Author |
Message |
musv Advocate
Joined: 01 Dec 2002 Posts: 3369 Location: de
|
Posted: Wed Jan 21, 2009 8:27 pm Post subject: Your CXXFLAGS ... can break packages |
|
|
Hallo,
zur Zeit setz ich einen neuen Rechner auf. Und nach langem langem und ewigen Lesen hab ich mich dazu entschlossen, ffast-math in die CFLAGS mit reinzunehmen - einfach mal zum Testen. Jetzt krieg ich bei jedem Compilieren die Meldung:
emerge irgendwas wrote: | Your CFLAGS contains "-ffast-math" which can break packages.
Your CXXFLAGS contains "-ffast-math" which can break packages. |
Tja, dass das experimentell ist, weiß ich selbst. Aber langsam und noch sicherer nervt mich die Meldung, weil die sogar bei virtuellen Paketen (z.b. virtual/jre...) kommt. Wie kann ich das abstellen (außer -ffast-math aus den CFLAGS rausnehmen)? |
|
Back to top |
|
|
doedel Guru
Joined: 05 Feb 2006 Posts: 579 Location: Denmark
|
Posted: Wed Jan 21, 2009 10:03 pm Post subject: |
|
|
Ich weiss, das ist jetzt doch ein bisschen OT und mit Sicherheit nicht das, was du gefragt hast, aber das will ich noch kurz loswerden.
Verwende -ffast-math nur auf Testsystemen! Es kann nicht nur Pakete abschiessen, es wird Pakete abschiessen!
Ich habe mal eine Zeit lang mit allen möglichen optimierungen herumgespielt, als ich angefangen habe mehr über Compiler herauszufinden. Mit -ffast-math bekam ich dauernd segfaults und als ich den gcc versucht habe damit zu compilieren ging das erst gar nicht bis zum Ende durch.
Quote: | -ffast-math
Sets -fno-math-errno, -funsafe-math-optimizations,
-fno-trapping-math, -ffinite-math-only, -fno-rounding-math, -fno-signaling-nans and fcx-limited-range.
This option causes the preprocessor macro __FAST_MATH__ to be defined.
This option should never be turned on by any -O option since it can result in incorrect output for programs which depend on an exact implementation of IEEE or ISO rules/specifications for math functions. |
(Quelle: http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Optimize-Options.html )
Es heisst ja schon immer dass -O3 sehr Fehleranfälligen Code Produziert, aber das ist lange nichts im Vergleich zu -ffast-math.
Wie gesagt, ich würde es echt nur auf Testsystemen versuchen! _________________ 1 ha == 1 Hekto-Ar == 1 Hektar |
|
Back to top |
|
|
misterjack Veteran
Joined: 03 Oct 2004 Posts: 1657
|
Posted: Wed Jan 21, 2009 10:36 pm Post subject: |
|
|
Da gilt für Intel-Prozessoren. Bei AMD kann man -ffast-math problemlos verwenden. https://forums.gentoo.org/viewtopic-p-4383821.html#4383821 - hab mich da eines besseren belehren lassen und habe UTgamers Flags mittlerweile selber problemlos am laufen.
Die Hinweismeldung seitens Portage habe ich aber nicht. _________________ „Meine Meinung steht fest! Bitte verwirren Sie mich nicht mit Tatsachen.“ |
|
Back to top |
|
|
musv Advocate
Joined: 01 Dec 2002 Posts: 3369 Location: de
|
Posted: Thu Jan 22, 2009 8:51 am Post subject: |
|
|
Genau das war auch der Grund, warum ich ffast-math reingenommen hab. Scheinbar hat UTGamer da schon bei Einigen erfolgreiche Missionierungsarbeit geleistet.
Was ich bisher noch nicht von seinen Flags übernommen hab, sind mfpmath=sse,387 und m64. Aber gut, das sind dann wahrscheinlich eher Philosophiefragen.
Doedel: sqlite baut nicht mit ffast-math. Das war bisher das einzige Paket.
Außerdem soll das System sowieso auf Performance getrieben werden, auch wenn das vielleicht dämlich klingt. Bisherige Ansätze dafür sind:
- Unnötige Daemons rauslassen (z.B. HAL)
- Dateisystem für Root: Reiser4 mit diversen Optimierungsplugins.
- SquashFS für Portage
- CCache nur für große Pakete (amarok, gcc, glibc, gtk+, imagemagick, kdelibs, openoffice, php qt, seamonkey, xulrunner,...)
- Compilieren hauptsächlich über tmpfs, um die Fragmentierung des Dateisystems zu vermeiden (Ja, auch oder besonders Reiser4 fragmentiert gerne nach einiger Zeit)
- Wenn alles installiert ist, kommt noch ein Prelinking hinzu
Und damit bleibt halt noch immer die nervige Warnmeldung. |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Thu Jan 22, 2009 10:25 am Post subject: |
|
|
In der Tat ist -ffast-math bei weitem nicht so schlimm wie sein Ruf (auch auf x86 nicht) und erhöht die Geschwindigkeit oft dramatisch (ganz im Gegensatz zu -mfpmath=sse,387, das Berechnungen nicht nur ungenauer sondern auch häufig langsamer macht). Wofür man es nicht benutzen sollte:
-ffast-math böse wrote: | sci-libs/*
sci-mathematics/*
app-office/openoffice
dev-db/sqlite
dev-lang/python
media-libs/plotutils
sci-visualization/gnuplot
sys-apps/paludis
sys-devel/gdb
sys-devel/m4 |
|
|
Back to top |
|
|
misterjack Veteran
Joined: 03 Oct 2004 Posts: 1657
|
Posted: Thu Jan 22, 2009 10:32 am Post subject: |
|
|
-ffast-math böse wrote: | app-office/openoffice
dev-lang/python
|
Da ich die zweie installiert habe, warum soll man sie nicht mit -ffast-math kompilieren? Gibt hier keine Probleme mit den Paketen. _________________ „Meine Meinung steht fest! Bitte verwirren Sie mich nicht mit Tatsachen.“ |
|
Back to top |
|
|
schachti Advocate
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Thu Jan 22, 2009 10:39 am Post subject: |
|
|
misterjack wrote: | Bei AMD kann man -ffast-math problemlos verwenden. |
Ich habe mich jetzt nicht durch 9 Seiten Thread gewühlt, meine mich aber zu erinnern, dass das nur für 64-Bit-Systeme gilt? _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Thu Jan 22, 2009 10:42 am Post subject: |
|
|
misterjack wrote: | -ffast-math böse wrote: | app-office/openoffice
dev-lang/python
|
Da ich die zweie installiert habe, warum soll man sie nicht mit -ffast-math kompilieren? Gibt hier keine Probleme mit den Paketen. |
Das weiß ich leider nicht mehr - die Liste habe ich meinem package.cflags-File entnommen, in das ich nur Einträge mache, wenn es einmal Ärger aufgrund der cflags gab oder zu erwarten war. Es kann aber auch sein, dass das nur für frühere Versionen der Pakete galt. |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Thu Jan 22, 2009 10:47 am Post subject: |
|
|
schachti wrote: | misterjack wrote: | Bei AMD kann man -ffast-math problemlos verwenden. |
Ich habe mich jetzt nicht durch 9 Seiten Thread gewühlt, meine mich aber zu erinnern, dass das nur für 64-Bit-Systeme gilt? |
Ich habe den Thread jetzt auch nicht durchgelesen, aber ich wüsste nicht, was -ffast-math mit 64-Bit oder 32-Bit zu tun hat: Hauptsächlich geht es bei -ffast-math darum, dass automatisch mathematische Formeln anders geklammert werden (was aufgrund von Rundungsfehlern z.B. ein anderes Ergebnis liefern kann) und dass nicht alle Exceptions (Division durch 0, Wurzel negativer Zahl usw) auf die per Sprachstandard definierte Weise behandelt werden. |
|
Back to top |
|
|
|