Gentoo GCC-Compiler Einstellungen
Für alle Gentoo-User die das Maximum an Performance aus Ihrem System holen wollen. Mehr geht nicht.
Hallo Gentoo User,
seit der GCC-Compiler Version 4.2.x gibt es die neue "-march=native" Optimierung für die CFLAGS. Einfach in der /etc/make.conf die Variable CFLAGS="-O2 -pipe" erweitern. Beispiel:
Bisher konnte man mit "-march" festlegen, welche Optimierung im GCC für die CPU aktiviert werden (MMX, SSE and SSE2 Instruction-Set etc.). Beispiele:
Anders jetzt mit "-march=native". Diese Einstellung ermittelt automatisch den Prozessortyp und seine "Instruction-Set". Damit lässt sich ein optimales Ergebnis beim Kompilieren erzielen. Der einzige Nachteil, der für mich keiner ist, die so kompilierten Programme laufen auch wirklich nur auf dem eigenen Rechner.
Das sagt das GCC-Handbuch dazu:
Hier ein paar Fragen und Antworten zu GCC und Gentoo:
Welche GCC-Version benutzt mein Gentoo-System gerade?
Wie aktualisiere ich eigentlich den GCC unter Gentoo?
Ich habe den neuen GCC mit "emerge -av gcc" erfolgreich kompiliert, aber "gcc -v" zeigt mir immer noch die alte Version an?
Wer danach sein ganzes System neu kompilieren will, kann das mit "emerge -e system" machen. Aber Achtung, der Vorgang dauert sehr, sehr lange (hängt von der Leistung Deiner CPU ab).
Hier noch die wichtigsten Links zum Thema:
Gentoo GCC-Aktualisierungsanleitung
GCC-Handbuch Seite zum Thema "-mtune=cpu-type"
GCC 4 (GNU Compiler Collection) CFLAGS für x86 und x86-64 CPU
Viel Spaß beim Kompilieren
Gruß
Frank
Hallo Gentoo User,
seit der GCC-Compiler Version 4.2.x gibt es die neue "-march=native" Optimierung für die CFLAGS. Einfach in der /etc/make.conf die Variable CFLAGS="-O2 -pipe" erweitern. Beispiel:
Datei: /etc/make.conf
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
CFLAGS="-march=i686 -O2 -pipe" für normale i686 CPU (z.B. Pentium etc. auch "generic" genannt)
CFLAGS="-march=nocona -O2 -pipe" für die neuen Xeons mit 64 Bit
CFLAGS="-march=opteron -O2 -pipe" für den Opteron
Das sagt das GCC-Handbuch dazu:
"-march=native" This selects the CPU to tune for at compilation time by determining the processor type of the compiling machine. Using -mtune=native will produce code optimized for the local machine under the constraints > of the selected instruction set. Using -march=native will enable all instruction subsets supported by the local machine (hence the result might not run on different machines).
Hier ein paar Fragen und Antworten zu GCC und Gentoo:
Welche GCC-Version benutzt mein Gentoo-System gerade?
gcc -v
oder
gcc-config -l (das mit dem Stern dahinter ist der aktuelle GCC-Compiler)
Wie aktualisiere ich eigentlich den GCC unter Gentoo?
emerge --sync
emerge -av gcc
Ich habe den neuen GCC mit "emerge -av gcc" erfolgreich kompiliert, aber "gcc -v" zeigt mir immer noch die alte Version an?
Bei Gentoo musst Du das GCC-Profil bzw. Version selbst auswählen. Automatisch wird nicht auf die neue GCC-Version umgeschaltet!
Einfach "gcc-config -l" aufrufen und es erscheint nun die Liste der verfügbaren GCC-Versionen auf Deinem System (das sind meine Versionen):
[1] x86_64-pc-linux-gnu-4.1.2
[2] x86_64-pc-linux-gnu-4.3.2 *
Jetzt kannst Du mit "gcc-config 1" oder "gcc-config 2" die GCC-Versionen wechseln.
Danach noch ein "source /etc/profile" ausführen und zur Kontrolle "gcc -v".
Wer danach sein ganzes System neu kompilieren will, kann das mit "emerge -e system" machen. Aber Achtung, der Vorgang dauert sehr, sehr lange (hängt von der Leistung Deiner CPU ab).
Hier noch die wichtigsten Links zum Thema:
Gentoo GCC-Aktualisierungsanleitung
GCC-Handbuch Seite zum Thema "-mtune=cpu-type"
GCC 4 (GNU Compiler Collection) CFLAGS für x86 und x86-64 CPU
Viel Spaß beim Kompilieren
Gruß
Frank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 123705
Url: https://administrator.de/contentid/123705
Ausgedruckt am: 23.11.2024 um 05:11 Uhr