6.20.2. Installation von GCC
Das Paket entpacken und in das neue Verzeichnis wechseln:
tar -xf pakete/gcc-4.6.2.tar.bz2 &&
cd gcc-4.6.2/
Wir wollen vorerst kein libiberty.a, uns genügt das von Binutils:
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
Genauso wie in Abschnitt 5.8,
„GCC-4.6.2 - 2. Durchgang“, muss die Marke
-fomit-frame-pointer
mit einem
sed beim Bau
erzwungen werden, damit das Ding rund läuft, so machen wir das auch
hier:
case `uname -m` in
i?86) sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in ;;
esac
Das Skript fixincludes macht manchmal Probleme, weil es meint
Headerdateien reparieren zu müssen. Da wir aber wissen das alle bis
jetzt installierten Headerdateien in Ordnung sind schalten wir es
ab.
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
Die GCC Jungs empfehlen ein separates Buildverzeichnis:
mkdir -v ../gcc-build &&
cd ../gcc-build
Bereite das Paket zum kompilieren vor:
../gcc-4.6.2/configure --prefix=/usr \
--libexecdir=/usr/lib --enable-shared \
--enable-threads=posix --enable-__cxa_atexit \
--enable-clocale=gnu --enable-languages=c,c++ \
--disable-multilib --disable-bootstrap --with-system-zlib
Das Paket kompilieren:
make
Wichtig
Es ist dringend darauf zu achten, dass jetzt getestet wird.
Und der Test soll nicht wegen ein paar Fehlermeldungen unterbrochen
werden!
Da ja das Ergebnis nun wirklich nicht unwichtig ist, geben wir
folgendes ein:
make -k check
Um Dir die Ergebnisse anzusehen gib folgenden Befehl ein:
../gcc-4.6.2/contrib/test_summary|grep -A7 Summ
Das Resultat kannst Du mit denen hier http://gcc.gnu.org/ml/gcc-testresults/
vergleichen.
Gut, bei |grep -A7 Summ gibt es nicht allzu viel zu lesen, aber das
kann man ja auch weglassen. Und wegen ein paar Fehlern muss keine
Panik hochkommen, an deren Beseitigung wird ja ohnehin schon
gearbeitet -bald. Meist kann man ohnehin weitermachen.
Installiere das Paket:
make install
Ein paar Präprozessoren suchen nach den Bibliotheken in
/lib
, die sollen mit dem folgenden
zufrieden gestellt werden:
ln -sv ../usr/bin/cpp /lib
Und für die, die immer noch nach cc suchen, auch ein
Entgegenkommen:
ln -sv gcc /usr/bin/cc
Wie immer zum Schluss löschen wir die Quellverzeichnisse:
cd .. &&
rm -rf gcc-*