Installieren von GCC-3.3.1

Geschätzte Kompilierzeit:              11.7 SBU
Ungefähr benötigter Festplattenplatz:  294 MB

Inhalt von GCC

Das Paket GCC enthält die Gnu Compiler Sammlung, inklusive dem C und C++ Compiler.

Installierte Programme: c++, cc (Link auf gcc), cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, und gcov

Installierte Bibliotheken: libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] und libsupc++.a

GCC Installationsabhängigkeiten

GCC ist abhängig von: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

Installation von GCC

Anmerkung: Die Test-suite für GCC in diesem Abschnitt wird als kritisch betrachtet. Unser Rat ist, sie unter keinen Umständen zu überspringen.

Es ist bekannt, das dieses Paket nicht sauber funktioniert wenn die standard Optimierungseinstellungen (inklusive der -march und -mcpu Optionen) verändert wurden. Deshalb sollten sie event. gesetzte Umgebungsvariablen die die Standard Optimierung überschreiben - zum Beispiel CFLAGS und CXXFLAGS - für den Kompiliervorgang von GCC zurücksetzen oder entsprechend abändern.

Dieses mal werden wir sowohl den C als auch den C++ Compiler erzeugen, sie müssen also die GCC-core und GCC-g++ Tar-Archive entpacken -- sie entpacken sich automatisch in das selbe Verzeichnis. Genauso sollten sie auch das GCC-testsuite Archiv entpacken. Das vollständige GCC Paket enthält noch mehr Compiler. Eine Anleitung wie sie diese bauen können finden sie unter http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html.

patch -Np1 -i ../gcc-3.3.1-no_fixincludes-2.patch
patch -Np1 -i ../gcc-3.3.1-suppress-libiberty.patch

Der zweite Patch verhindert die Installation von libiberty von GCC, weil wir stattdessen die Version von Binutils verwenden. Geben sie acht das sie hier nicht den GCC specs Patch aus Kapitel 5 anwenden.

Die GCC Dokumentation empfiehlt, GCC nicht im Quellenverzeichnis sondern in einem dedizierten Kompilierverzeichnis zu kompilieren:

mkdir ../gcc-build
cd ../gcc-build

Bereiten sie nun GCC zum kompilieren vor:

../gcc-3.3.1/configure --prefix=/usr \
    --enable-shared --enable-threads=posix \
    --enable-__cxa_atexit --enable-clocale=gnu \
    --enable-languages=c,c++

Kompilieren sie das Paket:

make

Testen sie das Ergebnis, aber halten sie bei Fehlern nicht an (sie erinnern sich an die paar bekannten):

make -k check

Die Test-suite Anmerkungen aus dem Abschnitt namens Installieren von GCC-3.3.1 - Durchlauf 2 in Kapitel 5 gelten auch hier noch. Schlagen sie dort nach falls sie irgendwelche Zweifel haben.

Und installieren sie das Paket:

make install

Einige Pakete erwarten das der C PreProzessor im /lib Verzeichnis installiert ist. Um diesen Paketen Rechnung zu tragen erzeugen sie diesen symbolischen Link:

ln -s ../usr/bin/cpp /lib

Viele Pakete benutzen den Namen cc um den C Compiler aufzurufen. Um diese Pakete zufriedenzustellen erzeugen wir einen weiteren symbolischen Link:

ln -s gcc /usr/bin/cc

Anmerkung: An dieser Stelle ist es wichtig, den "Gesundheitscheck" den wir schon früher durchgeführt haben, erneut laufen zu lassen. Schlagen sie im Abschnitt namens Erneutes anpassen der toolchain nach und wiederholen sie den Test. Wenn das Ergebnis negativ ist haben sie möglichweise versehentlich den GCC Specs Patch aus Kapitel 5 angewendet.