Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:gentoo-spezifisch:gcc

Dies ist eine alte Version des Dokuments!


GCC

The GNU Compiler Collection. Includes C/C++, java compilers, pie+ssp extensions, Haj Ten Brugge runtime bounds checking.

1. GCC Upgrade

1.1 Upgrade

Zunächst neuen GCC installieren und mit

# gcc-config 

aktivieren. Anschließend @sytem und @world neu kompilieren:

# emerge -eav system
# emerge -eav world

Eventuell

# emerge --resume

oder

# emerge --resume --skip-first

verwenden.

1.2 Nacharbeit

  • Wenn Fehler wie libtool: link: `/usr/lib/gcc-lib/i686-pc-linux-gnu/4.5.2/libstdc++.la' is not a valid libtool archiv auftreten, kann dies mit fix_libtool_files.sh und der Angabe der alten GCC-Version behoben werden:
# fix_libtool_files.sh 4.5.2
  • Falls error: /usr/bin/gcc-config: line 632: /etc/env.d/gcc/i686-pc-linux-gnu-3.3.5: No such file or directory gemeldet wird, kann versucht werden /etc/env.d/gcc/config-i686-pc-linux-gnu zu löschen. Anschließend muss
# gcc-config
und
# source /etc/profile

ausgeführt werden.

1.3 Aufräumen

# emerge -aC <sys-devel/gcc-IHRE-NEUE-GCC-VERSION

2. Graphite

2.1 Einleitung

FIXME Was ist graphite?

2.2 Installation

Zunächst

USE="graphite"

setzen und gcc neu kompilieren.

Anschließend müssen

dev-libs/ppl
dev-libs/cloog-ppl
sys-devel/gcc

mit entsprechenden Flags

CFLAGS="-floop-interchange -floop-strip-mine -floop-block"

neu kompiliert werden. Nun sollte der komplette Toolchain sowie wichtige Systembibliotheken mit den neuen CFLAGS kompiliert werden:

# emerge -eav1 @system

Abschließend kann auch @world komplett neu gebaut werden, es kann aber auch sukzessive mit den normales Updates geschehen.

3. LTO

3.1 Einleitung

FIXME Was ist LTO?

  • Seit GCC-4.6 ohne zusätzlichen USE-Flag
  • Mit GCC-4.6 angeblich für „a wide range of programs“ nutzbar
  • GCC-4.5 extrem experimentell

3.2 Installation

CFLAGS="-flto"

und

LDFLAGS="-Wl,-flto"

4. Aktuelles

4.1 GCC 4.6

4.1.1 Allgemeines

  • graphite ist insofern „buggy“, als dass sich bei eingeschalteter graphite-Unterstützung des toolchains keine (oder kaum) Pakte mehr mit der alten Version 4.5 kompilieren lassen. Solange diese als „Backup-Lösung“ genutzt werden soll, dürfen während ihrer Nutzung die entsprechenden CFLAGS nicht aktiviert sein.

4.1.2 Spezielle Pakete

Auf meinem ~amd64-System (Portagetree vom 29.06.2011, overlays: toolchain, gcc-porting, x11, gnome, keruspe)…

nicht kompilierbare Pakete:

  • verifiziert
    • app-office/libreoffice-3.3.2
      • Patch aus Bugzilla
    • net-libs/xulrunner
      • gcc-porting-overlay hat Patches!
    • <net-analyzer/wireshark-1.6.0_rc1
      • unmask 1.6.0_rc1


fehlerhaft kompilierte Pakete:

  • verifiziert
    • app-portage/eix-0.22.8:
      • Speicherzugriffsfehler
      • Workaround: USE=„-strong-optimization“
  • unverifiziert
linux/gentoo-spezifisch/gcc.1327767328.txt.gz · Zuletzt geändert: 09.07.2013 21:32 (Externe Bearbeitung)