Zum Hintergrund: Die Serie 2.95 des GCC ist der offiziell
GNU-Release, und Version 2.95.3 ist die stabilste und fehlerfreieste
aus dieser Serie. Wir haban niemals Probleme beobachten können, die
auf den GCC 2.95.3 zurückzuführen waren. Beginnend mit RedHat Linux
7.0 begann Red Hat damit, eine stark veränderte CVS-Version des GCC
mitzuliefern. Diese Version nannten sie 2.96. Red Hat hat diese
Version aufgenommen, weil sie einen Compiler brauchten, der auf all
ihren unterstützten Plattformen lief (welche auch IA64 und s390
einschloss), und weil der offizielle GCC 3.0 zu diesem Zeitpunkt noch
nicht fertiggestellt war. Der Linuxdistributor Mandrake folgte bald
darauf Red Hats Beispiel und lieferte ab Linux-Mandrake 8.0 ebenfalls
den GCC 2.96 aus.
Die Aussagen zu dem Thema: Das GCC-Team hat jegliche Verbindung zu der
Version 2.96 bestritten und dazu eine
offizielle Stellungnahme
abgegeben. Viele Entwickler auf
der ganzen Welt trafen auf Probleme mit dem GCC 2.96 und empfahlen
deswegen andere Compilerversionen. Beispiele dafür sind
MySQL,
avifile
und Wine.
Andere interessante Links sind der
Linux kernel news flash über
den Kernel 2.4.17 und das
Voy-Forum. MPlayer war
ebenfalls von vorrübergehenden Problemen betroffen, die sich alle
lösten, sobald eine andere Version des GCC benutzt wurde. Viele
Projekte begannen daraufhin damit, um einige der Probleme mit dem GCC
2.96 herumzuarbeiten, aber wir lehnten es ab, die Probleme zu
beheben, die andere Leute durch vorschnelles Handeln verursacht
hatten. Dazu kommt, dass einige dieser Workarounds zu
Performanceeinbußen führten.
GCC 2.96 erlaubt keine |(Pipezeichen) in
Assemblerkommentaren, weil er sowohl die Intel- als auch die AT&T-
Assemblersyntax unterstützt und das |-Zeichen ein Symbol in der
Intelvariante darstellt. Das Problem lag nun darin, dass der GCC
kommentarlos den kompletten Assemblerblock ignoriert hat. Dieser
Fehler wurde inzwischen angeblich behoben. GCC gibt eine Warnung aus,
anstatt den kompletten Block einfach unter den Tisch fallen zu lassen.
Die Gegenwart: Red Hat behauptet, dass GCC Version 2.96-85 und neuer
keine Fehler mehr enthalten. Das Verhalten dieser Version hat sich
tatsächlich deutlich verbessert. Nichts desto trotz werden auf unseren
Mailinglisten noch immer Probleme berichtet, die verschwinden, sobald
ein anderer Compiler verwendet wird. Sei wie es ist, es ist inzwischen
einfach nicht mehr wichtig. Hoffentlich löst eine gereifter GCC 3.x
all dieses Problem ein für alle mal. Wenn du wirklich mit dem GCC
2.96 kompilieren möchtest, dann benutze die Option
--disable-gcc-checking bei configure. Denk aber daran, dass du
dann auf dich allein gestellt bist. Schick keine Fehlerberichte!
Solltest du das doch tun, so wirst du nur von der Mailingliste
verbannt, weil wir wirklich mehr Flamewars wegen des GCC 2.96 erlebt
haben als nötig wär. Lass dieses Thema bitte ruhen.
Wenn du Probleme mit dem GCC 2.96 hast, so kannst du Pakete für die
Version 2.96-85 auf Red Hats FTP- Server
finden. Andererseits kannst du auch einfach die Pakete für die Version
3.0.4 benutzen, die Red Hat für Red Hat Linux 7.2 und neuer anbietet.
Eine weitere Möglichkeit besteht darin, Pakete für
gcc-3.2-10
herunterzuladen (inoffiziell, aber sie funktionieren trotzdem
einwandfrei). Sie lassen sich neben dem GCC 2.96 installieren, den du
bereits hast. MPlayer wird automatisch Version 3.2-10 finden und
diesen GCC anstelle der Version 2.96 benutzen. Wenn du aus
irgendeinem Grund die binären Pakete für den GCC nicht benutzen
kannst oder willst, dann folgt hier eine kleine Anleitung, wie du den
neuesten GCC kompilieren kannst:
-
Lade dir gcc-core-XXX.tar.gz von einem der
GCC-Mirrorseiten
herunter, wobei XXX die
Versionsnummer darstellt. Dieses Paket beinhaltet den kompletten
C-Compiler und reicht für MPlayer aus. Wenn du darüber hinaus
Unterstützung für C++, Java oder andere Features des GCC
benötigst, dann ist gcc- XXX.tar.gz besser
für dich geeignet.
-
Entpacke das Archiv:
tar -xvzf gcc-core-XXX.tar.gz
-
Anders als die meisten Programme wird der GCC nicht innerhalb des
Quelltextverzeichnisses gebaut, sondern er benötigt dafür ein
spezielles Buildverzeichnis außerhalb des Quelltextbaumes.
Erstell solch ein Verzeichnis mit
mkdir gcc-build
-
Jetzt kannst du den GCC im Buildverzeichnis konfigurieren lassen
aber das configure-Script liegt natürlich im
Quelltextverzeichnis:
cd gcc-build
../gcc-XXX/configure
-
Kompiliere GCC mit dem folgenden Kommando im
Buildverzeichnis:
make bootstrap
-
Jetzt kannst du (wenn du root bist) den GCC mit diesem Kommando
installieren:
make install
|