Details zu diesem Paket finden Sie in Abschnitt 6.14.2, „Inhalt von GCC“
Das Paket GCC enthält die GNU-Compiler-Sammlung. Darin sind die C- und C++-Compiler enthalten.
Nun benötigt GCC die Pakete GMP und MPFR. Da diese Pakete vermutlich nicht Teil Ihrer Host-Distribution sind, werden sie nun mit Hilfe von GCC erstellt.
tar -jxf ../mpfr-2.3.2.tar.bz2 mv mpfr-2.3.2 mpfr tar -jxf ../gmp-4.2.4.tar.bz2 mv gmp-4.2.4 gmp
Die Dokumentation zu GCC empfiehlt, GCC außerhalb des Quellordners zu kompilieren:
mkdir -v ../gcc-build cd ../gcc-build
Bereiten Sie GCC zum Kompilieren vor:
CC="gcc -B/usr/bin/" ../gcc-4.3.2/configure --prefix=/tools \ --with-local-prefix=/tools --disable-nls --disable-shared --disable-libssp \ --enable-languages=c
Die Bedeutung der configure-Parameter:
CC="gcc
-B/usr/bin/"
Dadurch wird gcc gezwungen, den Linker
des Host-Systems in /usr/bin
zu
bevorzugen. Auf einigen Systemen ist dies notwendig, weil der
neue Linker ld
inkompatibel mit dem gcc des Host-Systems ist.
--with-local-prefix=/tools
Der Sinn dieses Parameters ist es, /usr/local/include
aus dem Suchpfad von
gcc zu
entfernen. Dies ist nicht absolut zwingend erforderlich,
jedoch sollen mögliche Einflüsse aus dem Host-System
vermieden werden, daher ist dieser Parameter hier durchaus
empfehlenswert.
--disable-shared
Mit diesem Parameter wird GCC gezwungen, die internen Bibliotheken statisch zu verlinken. Dies verhindert mögliche Probleme mit dem Host-System.
--disable-libssp
Dieser Parameter beugt einem Konflikt mir älteren Versionen von Glibc vor, der die korrekte Installation verhindern könnte.
--enable-languages=c
Dieser Parameter stellt sicher, dass nur der C-Compiler erzeugt wird. Zum jetzigen Zeitpunkt wird nur dieser benötigt.
Der folgende Befehl kompiliert GCC nicht nur einmal, sondern kompiliert gleich mehrmals. GCC benutzt die im ersten Durchlauf erzeugten Programme, um sich damit im zweiten Durchlauf selbst zu kompilieren. Darauf folgt der dritte Kompiliervorgang. Abschließend werden die Ergebnisse des zweiten und dritten Kompiliervorgangs verglichen, um sicherzustellen, dass GCC sich selbst problemlos kompilieren konnte. Diesen Vorgang nennt man „bootstrapping“. Diese Vorgehensweise zur Installation von GCC stellt sicher, dass alles korrekt kompiliert wurde und wird auch für die veröffentlichten Versionen verwendet. Fahren Sie nun mit dem Kompilieren fort:
make
Der Kompiliervorgang ist nun abgeschlossen. Normalerweise würden Sie nun die Testsuite durchlaufen lassen, aber in diesem frühen Stadium ist die Testsuite-Umgebung (Tcl, Expect und DejaGNU) noch nicht verfügbar. Außerdem macht es wenig Sinn, die Tests nun laufen zu lassen, weil die Programme aus dem ersten Durchlauf sehr bald durch die aus dem zweiten Durchlauf ersetzt werden.
Installieren Sie das Paket:
make install
Die Verwendung des Parameters --disable-shared
verhindert die
Erzeugung und Installation der Datei libgcc_eh.a
. Glibc ist allerdings von dieser
Bibliothek abhängig, weil Glibc -lgcc_eh
innerhalb des
Konfigurationssystems verwendet. Diese Abhängigkeit kann aufgelöst
werden, indem Sie eine symbolische Verknüpfung auf libgcc.a
erstellen, weil sie normalerweise
sowieso die Objekte enthält, die libgcc_eh.a
zur Verfügung stellen würde.
ln -vs libgcc.a `gcc -print-libgcc-file-name | \ sed 's/libgcc/&_eh/'`
Zum Abschluss erstellen Sie noch einen symbolischen Link. Viele Programme rufen cc anstelle von gcc auf. Dadurch werden diese Programme allgemeiner gehalten und sind auch auf anderen Unix-Systemen lauffähig. Nicht jedes System hat den C-Compiler von GNU installiert. Der Aufruf von cc lässt dem Administrator die Wahl, welchen C-Compiler er installieren möchte. Er muss dann nur noch den symbolischen Link auf den richtigen Compiler verweisen lassen:
ln -vs gcc /tools/bin/cc
Details zu diesem Paket finden Sie in Abschnitt 6.14.2, „Inhalt von GCC“