E.1. GCC 2.96
Předcházející | Příloha E. Nářky vývojářů | Další

## E.1. GCC 2.96

Pozadí: GCC řady 2.95 je oficiální GNU vydání a GCC verze 2.95.3 je nejméně chybovou verzí v sérii. Nikdy jsme nezaznamenali kompilační problémy, které bychom vystopovali až ke gcc-2.95.3. Počínaje Red Hat Linuxem 7.0, Red Hat zařadil silně patchovanou CVS verzi GCC do své distribuce a pojmenoval ji 2.96. Red Hat tuto verzi zařadil do distribuce, protože GCC 3.0 v té době nebylo dokončeno a potřebovali kompilátor, který by dobře fungoval na všech jimi podporovaných platformách, včetně IA64 a s390. Linuxový distributor Mandrake (nyní Mandriva) rovněž následoval příkladu Red Hatu a začal zařazovat GCC 2.96 do jejich řady Linux-Mandrake 8.0.

Bilance: GCC tým odmítl jakoukoli spojitost s GCC 2.96 a vydal officiální vyjádření ke GCC 2.96. Mnoho vývojářů na světě začalo mít problémy s GCC 2.96 a několik projektů, mezi nimi i avifile, začalo doporučovat jiné kompilátory. Další zajímavé odkazy jsou Linux kernel news flash about kernel 2.4.17 a Voy Forum. Rovněž MPlayer trpěl občasnými problémy, které byly všechny vyřešeny přechodem na jinou verzi GCC. Několik projektů začalo implementovat "obchvaty" některých sporných míst 2.96, ale my jsme odmítli opravovat chyby jiných lidí, zvlášť když některé obchvaty mohou způsobit snížení výkonu.

GCC 2.96 neumožňuje znaky `|` (roura) v assemblerových komentářích, jelikož podporuje jak syntaxi Intel, tak AT&T a znak `|` je ve variantě Intel symbolem. Problém je, že tiše ignoruje celý blok assembleru. To je snad již opraveno, GCC vypíše varování místo přeskočení bloku.

Současnost: Red Hat říká, že GCC 2.96-85 a výš je opravený. Situace se mezi tím zlepšila. Stále vidíme problémy v našich konferencích, které zmizí s jiným kompilátorem. V mnoha případech na tom vůbec nezáleží. Doufáme, že dospívající GCC 3.x odstraní tyto problémy nadobro. Pokud chcete kompilovat s 2.96 zadejte volbu `--disable-gcc-checking` do `configure`. Pamatujte však, že jste v tom sami, nehlaste tedy žádné chyby. Pokud to uděláte, budete vyločeni z naší konference, jelikož již máme dost dohadování se (flame vars) ohledně GCC 2.96. Nechte to již prosíme být.

Pokud máte problémy s GCC 2.96, můžete si opatřit balíčky 2.96-85 z ftp servru Red Hatu, nebo použít balíčky 3.0.4 nabízené od verze 7.2 a pozdějších. Rovněž si můžete opatřit balíčky gcc-3.2.3-37 (neofficiální, ale dobře fungující) a můžete je nainstalovat paralelně ke gcc-2.96, kterou již máte. MPlayer to zdetekuje a použije 3.2 místo 2.96. Pokud nechcete, nebo nemůžete použít binární balíčky, takto můžete zkompilovat GCC 3 ze zdrojových kódů:

1. Běžte na stránku zrcadel GCC a stáhněte si `gcc-core-`XXX`.tar.gz`, kde `XXX` je číslo verze. Archiv obsahuje úplný kompilátor C a pro MPlayer je dostatečný. Pokud chcete i C++, Javu nebo některou jinou pokročilou vlastnost GCC, `gcc-`XXX`.tar.gz` vám bude vyhovovat lépe.

2. Rozbalte archiv příkazem

       tar -xvzf gcc-core-XXX.tar.gz

3. GCC není sestavováno do adresáře se zdrojovými kódy jako většina jiných programů, ale vyžaduje adresář mimo adresáře s kódy. Proto musíte tento adresář vytvořit pomocí

       mkdir gcc-build

4. Pak můžete přistoupit ke konfiguraci gcc v sestavovacím adresáři, ale potřebujete configure ze zdrojového adresáře:

       cd gcc-build
       ../gcc-3.XXX/configure

5. Zkompilujte GCC spuštěním tohoto příkazu v sestavovacím adresáři:

       make bootstrap

6. Nyní můžete nainstalovat GCC (jako root) zadáním

       make install

Předcházející | Nahoru | Další
Příloha E. Nářky vývojářů | Domů | E.2. Binární distribuce