6.20. GCC-4.6.2

6.20.1. Abhängigkeiten

Gcc

   Installation hängt ab von:  Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, MPFR, Patch, Perl, Sed, Tar, und Texinfo
   Test Umgebung hängt ab von:  DejaGNU und Expect
   Optionale Abhängigkeiten:  GNAT

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]

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-*

6.20.3. Inhalt des Paketes GCC

Installierte Programme:  c++, cc (link to gcc), cpp, g++, gcc, gccbug und gcov
Installierte Bibliotheken:  libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, libgomp.{a,so}, libmudflap.{a,so}, libmudflapth.{a,so}, libssp.{a,so}, libssp_nonshared.a, libstdc++.{a,so} und libsupc++.a

Kurze Beschreibung

c++

Der C++ Kompiler

cc

Der C Kompiler

cpp

Ein C-Präprozessor. Er wird vom Compiler benutzt, um #include, #define und ähnliche Anweisungen im Quellcode durch ihren endgültigen Code zu ersetzen.

g++

Der C++ Kompiler

gcc

Der C Kompiler

libgcc

Enthält Laufzeitunterstützung für gcc.

libstdc++

Die Standard-C++-Bibliothek.