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:: | ||
| - | * | ||
| - | \\ | ||