Das Paket GCC enthält die GNU-Compiler-Sammlung. Darin sind die C- und C++-Compiler enthalten.
Dieses Paket funktioniert unter Umständen nicht fehlerfrei, wenn die voreingestellten Optionen für Compiler-Optimierungen übergangen werden. (Dazu gehören auch -march und -mcpu.) Daher sollten die entsprechenden Umgebungsvariablen (wie z. B. CFLAGS und CXXFLAGS) für den Kompiliervorgang zurückgesetzt oder entsprechend abgeändert werden.
Vorerst installieren Sie nur den No-Fixincludes-Patch (nicht den Specs-Patch!), den Sie auch im vorigen Kapitel benutzt haben:
patch -Np1 -i ../gcc-3.4.3-no_fixincludes-1.patch
In Kombination mit der neuen Version von Binutils hat GCC Probleme beim Kompilieren einiger Programme, die nicht zur LFS-Installation gehören (z. B. Mozilla und kdegraphics). Mit dem folgenden Patch wird das Problem behoben:
patch -Np1 -i ../gcc-3.4.3-linkonce-1.patch
Wenden Sie nun einen Sed-Befehl an um die Installation von libiberty.a zu verhindern. Wir möchten die von Binutils bereitgestellte Version von libiberty.a verwenden:
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
Die Dokumentation zu GCC empfiehlt, GCC außerhalb des Quellordners zu kompilieren:
mkdir ../gcc-build cd ../gcc-build
Bereiten Sie GCC zum Kompilieren vor:
../gcc-3.4.3/configure --prefix=/usr \ --libexecdir=/usr/lib --enable-shared \ --enable-threads=posix --enable-__cxa_atexit \ --enable-clocale=gnu --enable-languages=c,c++
Kompilieren Sie das Paket:
make
In diesem Abschnitt wird die Testsuite als absolut kritisch betrachtet. Sie sollten diesen Schritt unter keinen Umständen überspringen.
Testen Sie die Ergebnisse, aber halten Sie bei Fehlern nicht an:
make -k check
Einige Fehler sind bekannt und wurden schon im vorigen Kapitel bemerkt. Die Anmerkungen aus Abschnitt 5.11, „GCC-3.4.3 - Durchlauf 2,“ sind hier immer noch gültig. Blättern Sie zurück, wenn nötig.
Installieren Sie das Paket:
make install
Einige Pakete erwarten, dass der C-Präprozessor unter /lib installiert ist. Erstellen Sie daher diesen symbolischen Link:
ln -s ../usr/bin/cpp /lib
Viele Pakete benutzen den Namen cc, um den C-Compiler aufzurufen. Um auch diesen Paketen Rechnung zu tragen, erzeugen Sie einen weiteren symbolischen Link:
ln -s gcc /usr/bin/cc
An dieser Stelle ist es wichtig, den „Gesundheitscheck“, den Sie schon früher durchgeführt haben, erneut laufen zu lassen. Schlagen Sie im Abschnitt 6.12, „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.