Kompilace glibc
Tomas Macek
macek na fortech.cz
Čtvrtek Duben 21 09:47:47 CEST 2011
Kdysi, když jsem se o podobné šílenosti z čistě výzkumných důvodů
pokoušel taky a dospěl jsem postupně k názoru, že různé verze gcc se na
různých verzích
glibc chovají různě. Tenkrát jsem kompiloval glibc 2.2.1 až 2.2.5, verze
2.3 už se mi pak později nedařily vůbec. Byl to chaos a zřejmě přetrval
dodnes.
Pomáhaly různé
kombinace verze gcc/parametry kompilátoru/verze glibc, pomáhal výrazně
google s nakopírovanými chybovými hláškami kompilátoru. Přesto jsem
některé kombinace dohromady nedal. Osobně obdivuju
každýho, kdo je schopen pro distribuci glibc zkompilovat a pokud jste se
rozhodl zakomentovávat řádky, tak snad velmi dobře víte, co děláte...
T. Macek
On Thu, 21 Apr 2011, Ladislav Vaiz wrote:
> Ahoj,
> snažím se na Debianu Lenny zkompilovat glibc ze zdrojáků z gnu.org. Pro
> stejnou architekturu, configure zadávám jen --prefix. Překvapilo mě, že i
> když jsem zkoušel různé verze (nejvíc 2.3.6), tak kompilace vždy skončí na
> chybu, že funkce (strtol, atoi, gnu_dev_major) jsou definované vícekrát.
> Zpravidla jako inline v .h a pak jako klasické v .c. Na některé pomůže export
> CFLAGS="-Os -D__NO_STRING_INLINES -D__NO_MATH_INLINES", ale některé inline
> kolem sebe žádné #ifdef nemají a je třeba komentovat. I tak ale při linkování
> dl-allobjs.os vyběhne spousta "multiple definifion of...", které jsem zatím
> neměl chuť řešit.
>
> Nemůžu se zbavit dojmu, že něco musím dělat špatně, protože glibc snad
> kompiluje kdekdo a fóra by musela být plná tohoto problému. Ve FAQ jsem také
> nic nenašel. Netušíte někdo, co dělám špatně?
>
> Hlavním účelem je kompilace programu tak, aby běžel i na starších
> distribucích a dal se kompilovat na novější. Statická kompilace je možná, ale
> nefunguje pak třeba SDL nebo Alsa. Pravděpodobně počítají jen s dynamickým
> linkováním svých modulů (X11, pulse...).
>
> Díky Láďa
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux
>
Další informace o konferenci Linux