zmaten z gcc, glibc...

Milan Kerslager milan.kerslager na spsselib.hiedu.cz
Pondělí Srpen 27 22:54:37 CEST 2001


On Mon, 27 Aug 2001 pasky na ji.cz wrote:

> Eh? Prosim? Ted nejak nechapu o cem vlastne mluvite... AFAIK gcc 0.96
> nebyla zadna stable release, ale pouze development verze... rozhodne
> to tedy nebyla 'nova verze kompilatoru' v tom smyslu v jakem to zrejme
> myslite - ten kompilator je vyvojova verze, a to velice BUGGY verze,
> ktera ten kod nepreklada SPRAVNE - ty chyby jsou zname, a v dalsich
> verzich samozrejme fixnute, jen je nesmysl davat neco takoveho
> prakticky neodladeneho (logicky) do release nejake komercni
> distribuce.

GCC 2.96 z CVS bylo podporeno vice jak 80 zaplatami, ktere uvedly
kompilator do provozuschopneho provozu. Vsechny zaplaty byly v dobe vydani
distribuce (az na 1) prijmuty do CVS GCC (ovsem vznikaly v prubehu
posledniho pul roku) a verze byla v CVS nasledne zvysena. To, co bylo tedy
v CVS oznaceno jako 2.96 nebylo to same, co mel RH ve vlastni distribuci.

Cela (opravdu cela) distribuce byla tim kompilatorem prelozena (proces
rebuildu baliku je automaticky, behem sestavovani distribuce se mnohokrat
opakuje). Distributor si tedy byl (po dlohodobem testovani) jist, ze
kompilator preklada spravne (ja jsem byl v testovacim teamu, takze to
vim).

Jadro 2.4-pre, ktere bylo v RH 7.0 (jako testovaci), bylo timto
kompilatorem prelozeno take. Jadra rady 2.2.x se nikdy neprekladaly (a
neprekladaji ani dnes) novymi kompilatory. Duvod je ten, ze optimalizace
dokazou zacvicit s kodem tak, ze nejaka cast jadra neni pak funkcni.
Pokud nekdo posle Alanovi Coxovi patch, ktery umozni prekladat starou radu
2.2.x novymi kompilatory a bude to funkcni (tj. overene), asi to pujde.
Ale uprimne receno - neni to potreba (jadra 2.2.x jsou dnes uz historie,
nove distribuce je nepouzivaji, stare distribuce obsahuji prislusne
komponenty, takze neni potreba to resit).

Vetsina distribuci vydavala v dobe pouzivani jader 2.2.x ve sve distribuci
specialni kompilator pro jadro. Je to proto, ze jadro je opravdu zaklad a
jeho testovani je pomerne obtizne. Proto se na nej pouzivaji overene
kompilatory.

Nemate pravdu, ze kompilator nebyl pro distribuci prinosem. Jak jsem psal:
novy kompilator preklada celou distribuci a to dokonce i na dalsich
platformach, coz je opravdu dulezite (a setri to namahu). Novy kompilator
se testoval hodne dlouho. Duvodem jeho nasazeni byl i prechod na Glibc 2.2
(kdyz uz poruseni binarni kompatibility, tak ne na desetkrat, ale vse
najednou).

Na zaver - podivejte se do jakekoliv distribuce a zjistite, ze obsahuje
velmi mnoho produktu, ktere jsou vyvojove. Pokud je neco vyvojove a
splnuje to svoji funci, neni duvod to nepouzit. Take neni nenormalni srkat
do nejakeho produktu zaplaty - podivejte se treba na jadra. Soucasne
distribuce pouzivaji radove stovky zaplat (starsi proverene jadro se
spoustou oprav z novejsich jader nebo s ruznymi rozsirenimi).

Dalsim prikladem muze byt treba XFree - zaplaty na X servery, nektere
brane primo z CVS, atd...

Kdyz nemate elementarni prehled o tom, jak to *doopravdy* v distribucich
chodi, jak se testuje, vyviji, opravuje a jak je tezke sloubit jadro,
knihovny, aplikace a HW dohromady, tak volte mirnejsi vyrazivo a
postarejte se, abyste mel kritiku podeprenou argumenty (napr. ze v
distribuci s GCC 2.96 neco nefunguje).

BTW: je uplne normalni, ze kazda komponenta v systemu potrebuje jiny
     kopilator nebo zaplaty k tomu, aby sla prelozit s knihovnami X.Y.Z.
     Distributor Vam zajisti, ze cely system je funkcni celek. Pokud v
     systemu chcete pouzivat neco sveho, budete se pravdepodobne muset
     pripravit na reseni problemu. Je lhostejne, kterou distribuci
     pouzijete, protoze problemy budou ruzne a s ruznymi castmi i
     resenimi. Pokud problemy resit neumite, vyberte si distribuci,
     ktera problemy za Vas vyresi. Od toho jich tolik mame.

PS: pokud chcete vedet vice, podivejte se do archivu. Ja osobne jsem
    toho napsal o GCC 2.96 uz mnoho a snazil jsem se vse dolozit (na
    rozdil od vykriku o "BUGGY" kompilatoru a dalsich nepodlozenych
    bombastickych vylevu).

-- 
                        Milan Kerslager
                        E-mail: milan.kerslager na spsselib.hiedu.cz
                        WWW:    http://www.spsselib.hiedu.cz/~kerslage/



Další informace o konferenci Linux