make mit alternativer gcc-version?

  • Thread starter Thread starter spezies_64738
  • Start date Start date
S

spezies_64738

Guest
Ich versuche das mozart-programming-system aus den ports zu bauen, leider kompiliert es nicht mit gcc 4.2.
Ich habe parallel noch gcc 3.4 installiert, finde aber keine elegante Möglichkeit, make zu überreden, diese version statt der anderen zu benutzen.
Ist das machbar? Gibt es dafür vielleicht sogar ein flag, und ich habe es nur nicht gefunden?
Für Stichworte und Hinweise wäre ich dankbar.

~spezies_64738
 
Wenn mich nicht alles täuscht geht das doch in der make.conf durch das setzen von cc= etc.
In deinem Falle also:
CC= gcc34
CXX= c++34
CPP= cpp34
 
Ah danke, genau das habe ich gesucht. Die flags kann ich sogar direkt an make übergeben, ohne die make.conf anfassen zu müssen.
Wäre noch interessant zu wissen, wo die dokumentiert sind, vielleicht finden sich dort noch andere hilfreiche schalter... Aber für mein Problem reicht das erstmal.

~spezies_64738
 
Der Artikel ist von mir und ist auch hier zu finden. Er ist gewiss nicht im Gentoo-Wiki zu finden. Tipps mit --mmmx und -msse usw. (die man oft in Gentoo-Foren findet) sind übrigens generell zu ignorieren. Wer die GCC Dokumentation liest, versteht, dass sie keinerlei Effekt haben, wenn CPUTYPE korrekt gesetzt wurde.
 
Der Artikel ist von mir und ist auch hier zu finden. Er ist gewiss nicht im Gentoo-Wiki zu finden. Tipps mit --mmmx und -msse usw. (die man oft in Gentoo-Foren findet) sind übrigens generell zu ignorieren. Wer die GCC Dokumentation liest, versteht, dass sie keinerlei Effekt haben, wenn CPUTYPE korrekt gesetzt wurde.

Dann wundert es mich doch dass Intel in einem zu Prescott Zeiten erschienen whitepaper empfiehlt mfpmath=sse und -ffast-math zu setzen die du ja als eher problematisch beschreibst. Zudem finden sich bei Intel auch oft die -march option die ja das gleiche ist wie cputype oft in kombination mit msse. Ja ich habe die Dokumentation des GCC keineswegs gelesen sondern mich bei Intel direkt informiert und msse und die beiden anderen erwähnten Optionen waren das ergebnis. Und ja meine cputype Option ist korrekt gesetzt.
 
-ffast-math hat Einfluß auf die Genauigkeit von Floating-Point Operationen und ist deshalb mit Vorsicht zu genießen. Ich habe selbst ein paar Benchmarks mit verschiedenen mfpmath Einstellungen gemacht und bin zu dem Schluss gekommen, dass die Zeit zum Übertragen der Register auf die SSE-Einheit jeglichen Gewinn schluckt. Erst bei echten SIMD Anwendungen bringt SSE tatsächlich Geschwindigkeitsvorteile.

Hast du deinen Einstellungen in irgendeiner Form gebenchmarkt?
 
Ein wenig.. ich wollte da nicht groß Zeit reinhängen. Bezüglich -ffast-math ist mir jedenfalls aufgefallen dass das mit extremer vorsicht zu genießen ist wenn man eine welt damit bauen will. Bei ports hatte ich damit bisher keine Probleme.
Was die benchmarks anging habe ich da teilweise durchaus Performancegewinne festgestellt. Hielten sich im Rahmen aber im Prinzip hatte ich mit diesen Optionen seit ca. 3 Jahren nie Probleme und mein System läuft von der Stabilität her außerordentlich zufriedenstellend. Von daher sah ich auch keinen Grund etwas daran zu ändern.
Zu den Benchmarks: Ich habe hauptsächlich dinge gebencht die für mich am nächsten lagen.. Audio Dateien Komprimiert, Videostreams Komprimiert und dergleichen. Klar bei Audio ist es im Prinzip egal. dauert ja nicht lange aber bei Mehreren Gigabyte großen Videodateien kamen schon über 15% raus.. bei ein paar Stunden gerödel ist das ein Unterschied.
Gut.. mit time habe ich noch etwas experimentiert und ein paar Sinnfreie berechnung wie Pi auf paar Tausend Stellen berechnet.. aber das war nicht wirklich ernst gemeint :D.. habe auch keine Daten mehr im Kopf wie das Zeitlich aussah.
 
Das ist interessant, denn Multimedia-Ports setzen -ffast-math sowieso meist selbst. Die gewinne müssten also dem mfpmath abgerungen sein. Ich werde mal schauen ob ich XVid unter amd64 damit etwas auf die Sprünge helfen kann.
 
Ich denke mir die optionen sind teilweise auch sehr hardwareabhängig. AMD und Intel implementieren funktionen teilweise sehr unterschiedlich. Merkt man ja schön wenn man die SSE Leistung eines K8 mit einem P4 aufwärts vergleicht. Ist ja auch der grund weshalb Intel und AMD verschiedene Flags für den GCC empfehlen. Von daher kann es ja auch recht gut sein dass du auf einer anderen Plattform andere ergebnisse erzielst als ich.
Für den Vergleich rödelt bei mir ein Presler, also nichts anderes als ein Prescott mit zwei Kernen in 65nm. 32bit wird daher mit prescott als cputype optimiert und 64bittig mit nocona. Ich verwende (dank NVidia) ersteres.
 
Back
Top