frank
Goto Top

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:
Datei: /etc/make.conf
CFLAGS="-march=native -O2 -pipe"  
CXXFLAGS="${CFLAGS}"  
Bisher konnte man mit "-march" festlegen, welche Optimierung im GCC für die CPU aktiviert werden (MMX, SSE and SSE2 Instruction-Set etc.). Beispiele:
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  
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:
"-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 face-smile

Gruß
Frank

Content-Key: 123705

Url: https://administrator.de/contentid/123705

Printed on: April 25, 2024 at 20:04 o'clock