Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
linux:gentoo-spezifisch:gcc [15.03.2011 12:08] marc angelegt |
linux:gentoo-spezifisch:gcc [09.07.2013 21:33] (aktuell) |
||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
The GNU Compiler Collection. Includes C/C++, java compilers, pie+ssp extensions, Haj Ten Brugge runtime bounds checking. | The GNU Compiler Collection. Includes C/C++, java compilers, pie+ssp extensions, Haj Ten Brugge runtime bounds checking. | ||
- | ===== 1. Einstellungen (make.conf) | + | ===== 1. GCC Upgrade |
- | ==== 1.1 CFLAGS | + | ==== 1.1 Upgrade |
- | * **safe**: | + | Zunächst neuen GCC installieren und mit |
- | | + | |
- | \\ | + | |
- | * Für **graphite** muss USE=' | + | |
- | CFLAGS=" | + | aktivieren. Anschließend @sytem und @world neu kompilieren: |
- | \\ | + | |
- | * Für **lto** muss USE=' | + | |
- | | + | |
- | \\ | + | |
- | | + | |
- | CFLAGS=" | + | Eventuell |
- | -ftree-vectorize | + | |
- | -floop-interchange -floop-strip-mine -floop-block | + | |
- | -ftree-loop-linear" | + | |
- | \\ | + | |
- | * **Empfehlung** für ~amd64 und GCC-4.6: | + | |
- | | + | |
- | CFLAGS=" | + | oder |
- | \\ | + | |
- | alles mit | + | |
- | | + | |
- | ==== 1.2 LDFLAGS ==== | + | verwenden. |
- | * **safe**: | + | ==== 1.2 Nacharbeit ==== |
- | | + | |
- | \\ | + | |
- | | + | # fix_libtool_files.sh 4.5.2 |
+ | |||
+ | * Falls **error: / | ||
+ | |||
+ | | ||
+ | |||
+ | und | ||
+ | |||
+ | # source / | ||
+ | |||
+ | ausgeführt werden. | ||
+ | |||
+ | ==== 1.3 Aufräumen ==== | ||
+ | |||
+ | # emerge -aC < | ||
- | LDFLAGS=" | ||
- | \\ | ||
- | Allerdings ist **lto** mit GCC-4.5 experimentell und zumindest im 3Q-2010 nicht zu gebrauchen, " | ||
===== 2. Graphite ===== | ===== 2. Graphite ===== | ||
Zeile 52: | Zeile 51: | ||
==== 2.1 Einleitung ==== | ==== 2.1 Einleitung ==== | ||
- | Was ist graphite? | + | FIXME Was ist graphite? |
==== 2.2 Installation ==== | ==== 2.2 Installation ==== | ||
Zeile 72: | Zeile 71: | ||
CFLAGS=" | CFLAGS=" | ||
- | neu kompiliert werden. Nun sollte der komplette Toolchain sowie wichtige Systembibliotheken | + | neu kompiliert werden. Nun sollte der komplette Toolchain sowie wichtige Systembibliotheken |
# emerge -eav1 @system | # emerge -eav1 @system | ||
- | Abschließend kann auch @world komplett neu gebaut werden, | + | Abschließend kann auch @world komplett neu gebaut werden, |
- | ===== 3. GCC Upgrade | + | ===== 3. LTO ===== |
- | ==== 3.1 Upgrade | + | ==== 3.1 Einleitung |
- | Zunächst neuen GCC installieren und mit | + | FIXME Was ist LTO? |
- | | + | |
+ | * Mit GCC-4.6 angeblich für "a wide range of programs" | ||
+ | * GCC-4.5 extrem experimentell | ||
- | aktivieren. Anschließend @sytem und @world neu kompilieren: | + | ==== 3.2 Installation ==== |
- | | + | |
- | # emerge -eav world | + | |
- | Eventuell | + | und |
- | + | ||
- | # emerge --resume | + | |
- | + | ||
- | oder | + | |
- | + | ||
- | # emerge --resume --skip-first | + | |
- | + | ||
- | verwenden. | + | |
- | + | ||
- | ==== 3.2 Nacharbeit ==== | + | |
- | + | ||
- | * Wenn Fehler wie **libtool: link: `/ | + | |
- | + | ||
- | # fix_libtool_files.sh 4.5.2 | + | |
- | + | ||
- | * Falls **error: / | + | |
- | + | ||
- | # gcc-config | + | |
- | + | ||
- | und | + | |
- | + | ||
- | # source / | + | |
- | + | ||
- | ausgeführt werden. | + | |
- | + | ||
- | ==== 3.3 Aufräumen ==== | + | |
- | + | ||
- | # emerge -aC < | + | |
+ | LDFLAGS=" | ||
===== 4. Aktuelles ===== | ===== 4. Aktuelles ===== | ||
- | ==== 4.1 GCC 4.6 ==== | ||
- | |||
- | === 4.1.1 Allgemeines === | ||
- | |||
- | * graphite ist insofern " | ||
- | * Snapshot vom 12.03. kompiliert nicht, u.U. wegen graphite-CFLAGS, | ||
- | |||
- | === 4.1.2 Spezielle Pakete === | ||
- | |||
- | Auf meinem ~amd64-System (Stand: 14.03.2011)... | ||
- | |||
- | ... **nicht kompilierbare** Pakete: | ||
- | |||
- | * verifiziert | ||
- | * sys-devel/ | ||
- | * Nutze erstmal GCC-4.5 | ||
- | * www-client/ | ||
- | * Nutze erstmal GCC-4.5 | ||
- | * app-emulation/ | ||
- | * ./configure lässt nur bi 4.X, X <= 5 zu | ||
- | * app-office/ | ||
- | * Nutze erstmal GCC-4.5 | ||
- | * | ||
- | |||
- | * unverifiziert | ||
- | * < | ||
- | * Workaround: Downgrade zu media-libs/ | ||
- | * < | ||
- | * media-libs/ | ||
- | * | ||
- | |||
- | |||
- | \\ | ||
- | ... **fehlerhafte** Pakete: | ||
- | |||
- | * verifiziert | ||
- | * < | ||
- | * < | ||
- | * Workaround: USE=" | ||
- | * | ||
- | |||
- | * unverifiziert | ||
- | * < | ||
- | * < | ||
- | * < | ||
- | * < | ||
- | * Vermutlich durch Downgrade auf media-libs/ | ||
- | * www-client/ | ||
- | * tab_strip_gtk.cc(1180)] Not implemented reached in virtual void TabStripGtk:: | ||
- | * | ||
- | \\ |