A háttér: A GCC 2.95-ös sorozata egy hivatalos GNU kiadás és a GCC 2.95.3-as verziója a leghibamentesebb ebben a sorozatban. SOha nem tapasztaltunk fordítási problémákat, amik a gcc-2.95.3-ra lettek volna visszavezethetőek. A Red Hat Linux 7.0-tól kezdődően a Red Hat a GCC egy erősen patchelt CVS verzióját tette bele a disztribúciójába, és átnevezte 2.96-ra. A Red Hat azért vette bele ezt a verziót a disztribúciójába, mert a GCC 3.0 még nem volt kész abban az időben és szükségük volt egy fordítóra, ami jól működik a támogatott platformjaikon, beleértve az IA64-et és az s390-et. A Mandrake (most már Mandriva) követte a Red Hat példáját és elkezdte szállítani a GCC 2.96-ot a saját Linux-Mandrake 8.0 sorozatával.
A helyzet: A GCC csapat visszautasított bármiféle kapcsolatot a GCC 2.96-tal és kiadott egy hivatalos választ a GCC 2.96-ra. Sok fejlesztőnek problémái támadtak a GCC 2.96-tal és számos projekt, köztük az avifile, elkezdett más fordítókat javasolni. Érdekes link még a Linux kernel news flash a 2.4.17-es kernelről és a Voy Forum. Az MPlayer is szenvedett időszakos problémákkal, amik mind megoldódtak egy másik GCC verzióra való átállással. Számos projekt elkezdett "megkerüléseket" implementálni a 2.96 néhány hibájára, de mi nem vagyunk hajlandóak mások hibáit javítgatni, különösen mivel a javítások jelentősen rontják a teljesítményt.
A GCC 2.96 nem engedi meg a | (pipe) karaktereket az assembler kommentekben, mert támogatja mind az Intel, mind az AT&T szintaxisát és a | karakter egy szimbólum az Intel variánsban. A probléma az, hogy jelzés nélkül figyelmen kívül hagyja a teljes assembler blokkot. Ezt állítólag már javították, a GCC figyelmeztető üzenetet ír ki a blokk kihagyása helyett.
A jelen: A Red Hat azt mondja, hogy a GCC 2.96-85 és ez utániak javítva lettek. Az ügy közben tovább bonyolódott, még mindig találunk olyan hibajelentéseket a levelezési listáinkon, amik más fordítóval eltűnnek. Mindegy, a továbbiakban ez már nem számít. Remélhetőleg a készülő GCC 3.x megoldja ezt az ügyet. Ha mégis 2.96-tal akarsz fordítani, add meg a --disable-gcc-checking kapcsolót a configure-nak. Emlékezz rá, hogy ezesetben a magad ura vagy és ne jelents semmilyen hibát. Ha mégis ezt teszed, csak kitiltást kaphatsz a levelezési listáról, mert már a soknál is több flame volt a GCC 2.96 miatt. Pihentessük az ügyet.
Ha problémáid vannak a GCC 2.96-tal, letöltheted a 2.96-85 csomagokat a Red Hat ftp szerveréről vagy egyszerűen használd a 3.0.4 csomagokat, amik a 7.2 és későbbi kiadásokban találhatóak. Letöltheted a gcc-3.2.3-37 csomagokat is (nem hivatalos, de jól működő) és telepítheted a már meglévő gcc-2.96 mellé. Az MPlayer meg fogja találni és inkább a 3.2-eset használja a 2.96 helyett. Ha nem akarod vagy nem tudod használni a bináris csomagokat, itt van, hogy tudod lefordítani forrásból a GCC 3-at:
Menj a GCC tükröket tartalmazó oldalára és töltsd le a gcc-core-XXX.tar.gz fájlt, ahol XXX a verzió szám. Ebben benne van a teljes C fordító és elegendő az MPlayerhez. Ha C++, Java vagy valamelyik másik GCC funkció is kell neked, a gcc-XXX.tar.gz jobban megfelel az igényeidnek.
Csomagold ki az archívot a
tar -xvzf gcc-core-XXX.tar.gzparanccsal!
A GCC nem a forrás könyvtárba kerül lefordításra, mint a legtöbb program, hanem kell neki egy kimeneti könyvtár valahol a forráson kívül. Így létre kell hoznod egy könyvtárat a
mkdir gcc-buildparanccsal.
Ezután elvégezheted a gcc konfigurálását a célkönyvtárból, azonban a configure a forrás könyvtárban van:
cd gcc-build ../gcc-3.XXX/configure
Fordítsd le a GCC-t a következő parancs kiadásával a célkönyvtárban:
make bootstrap
Most már telepítheted a GCC-t (mint root) a
make installparancs begépelésével.