5.3. GCC-4.4.3 - 1. Durchgang

5.3.1. Installation des Cross GCC

Wie lang dauerte der letzte Vorgang? Der hier soll 22 Mal so lang dauern! Das Paket hat den C und den C++ Compiler. Jetzt also wie vorher:

tar -jxf pakete/gcc-4.4.3.tar.bz2 &&
cd gcc-4.4.3/

Nur braucht GCC noch GMP und MPFR zusätzlich!

tar -jxf ../pakete/mpfr-2.4.2.tar.bz2 &&
mv -v mpfr-2.4.2 mpfr &&
tar -jxf ../pakete/gmp-4.3.2.tar.bz2 &&
mv -v gmp-4.3.2 gmp &&

Auch hier wieder ein extra Build Verzeichnis, auf Empfehlung der GCC-Entwickler:

mkdir -v ../gcc-build &&
cd ../gcc-build

Und jetzt nicht die Geduld verlieren, oder will da wer kopieren? GCC zum kompilieren vorbereiten:

../gcc-4.4.3/configure \
    --target=$MOLLI_TGT --prefix=/tools \
    --disable-nls --disable-shared --disable-multilib \
    --disable-decimal-float --disable-threads \
    --disable-libmudflap --disable-libssp \
    --disable-libgomp --enable-languages=c

Es wird also alles ausgeschaltet, nur nicht:

Die Bedeutung der Parameter für configure:

--prefix=/tools

Dadurch wird das configure-Skript die Binutils-Programme für die Installation nach /tools vorbereiten.

--disable-nls

Deaktiviert die Internationalisierung; i18n wird für die temporären Werkzeuge nicht benötigt.

Nun kompilieren wir GCC:

make

und das Kompilieren ist geschafft. Noch ist wegen des Fehlens von Tcl, Expect und DejaGNU ein Testlauf sinnlos.

So nun installieren:

make install

und das Installieren ist erledigt.

--disable-shared verhindert libgcc_eh.a, weswegen Glibc meckert. Daher machen wir folgendes:

ln -vs libgcc.a `$MOLLI_TGT-gcc -print-libgcc-file-name | \
    sed 's/libgcc/&_eh/'`

und so wird für Glibc eine Verbindung von libgcc.a zu libgcc_eh.a symbolisch geknüpft. So haben wir auch alles, was Glibc so braucht.

Nun wieder raus aus dem Verzeichnis und löschen der selben:

cd .. &&
rm -rf gcc-*