5.6. Glibc-2.3.4

Balíček Glib obsahuje hlavní knihovnu C.Tato knihovna navízí základní rutiny pro obsasovaní paměti,hledání adresářů,otevírání a zacírání souborů,čtení a zápis do souborů,náhradu řetezce,pattern matching,aritmetiku a podobně.

Průměrný čas kompilace: 11.8 SBU
Potřebné volné místo: 454 MB
Instalace závisí na: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, and Texinfo

5.6.1. Instalace Glibc

O tomto balíčku je známo, že má problémy, pokud jsou jeho výchozí optimalizační příznaky (včetně -march a -mcpu voleb) změněné. Pokud nějaké proměnné prostředí přepisují tyto výchozí optimalizace jako CFLAGS a CXXFLAGS, odstraňte je při kompilaci Glibc.

je důležité poznamenat, že kompilace Glibc jinak, než je popsáno v této knize může vést k nestabilitě systému.

Glib má dva testy, které způsobí selhání pod jádrem 2.6.11.x. Problém byl identifikován v samotných testech, ani v libc ani v jádře. Pokud chcete spustit testy, aplikujte tento patch:

patch -Np1 -i ../glibc-2.3.4-fix_test-1.patch

Dokumntace Glibc doporučuje kompilaci Glibc mimo zdroje ve oddělené kompilační složce:

mkdir ../glibc-build
cd ../glibc-build

Nyní připravte Glibc na kompilaci:

../glibc-2.3.4/configure --prefix=/tools \
    --disable-profile --enable-add-ons \
    --enable-kernel=2.6.0 --with-binutils=/tools/bin \
    --without-gd --with-headers=/tools/include \
    --without-selinux

Význam konfiguračních voleb:

--disable-profile

Toto zkompiluje knihovny bez informací o profilech. Vynechte tuto volbu, pokud potřebujete profily na dočasných nástrojích.

--enable-add-ons

Toto říká Glibc, aby použila rozšíření NPTL jako vláknovou knihovnu.

--enable-kernel=2.6.0

Toto říká Glibc, aby se zkompilovala s podporou pro Linuxová jádra řady 2.6.x

--with-binutils=/tools/bin

Pokud to není vyžadováno, tento přepínač zajišťuje,že zde nebudou žádné chyby týkající se programů z balíčku Glibc použitých během kompilace Glibc.

--without-gd

Toto zabraňuje kompilaci programu memusagestat, který trvá na linkování na hostitelských knihovnách libgd, libpng, libz, atd.

--with-headers=/tools/include

Toto říká Glibc, aby se kompilovalo přes hlavičky již instalované ve složce s nástroji(tools).Tak bude vědět přesně, které možnosti má jádro a může se podle nich optimalizovat.

--without-selinux

Pokud kompilijete z hostitele, která obsahuje funkcec SELinuxu (např. Fedora Core 3), Glibc se zkompilují z podporou pro SELinux. Protože nástroje LFS, nebudou zahrnovat podporu pro SELinux, Glibc zkompilované stouto podporou nebude dobře fungovat.

Během této fáze se může ukázat toto varování:

configure: WARNING:
*** These auxiliary programs are missing or 
*** incompatible versions: msgfmt
*** some features will be disabled.
*** Check the INSTALL file for required versions.

Chybějcí, nebo nekompatibilní program msgfmt je většinou nedůležitý, ale může někdy způsobit problémy při testech. Tento prohram msgfmt je částí balíčku Gettext, který může obsahovat hostitelská distribuce. Pokud se program msgfmt v hostitelské distribuce nachází, ale je nekompatibilní, upgradujte balíček Gettext na hostitelském systému, nebo pokračujte bez toho a podívejte se, jestli testy i přes to proběhnou správně.

Zkompilujte balíček:

make

Kompilace je nyní kompletní. Jak bylo poznamenáno dříve, spouštění testů pro dočasné nástroje instalované v této kapitole není povinnné. Ke spuštění testů (pokud si to přejete), spusťte následující příkaz:

make check

Pro kontrolu, jestli jsou chybné testy důležité, se podívejte do Section 6.11, “Glibc-2.3.4.”

V této kapitole, mohou být některé testy ovlivněny existujícím nástroji nebo problémy hostitele. Nemusíte se znepokojovat chybami testů GLibc. Glibc instalované v Chapter 6 bude nakonec použito, proto jsou testy důležité až zde. Přesto se i v této kapitola mohou stále vyskutnout nějaké chyby na příklad matematické testy.

Když narazíte na chybu, poznamenejte si to, pak pokračujte znovu spuštěním příkazu make check. Testy bodou pokračovat ad místa, kde skončily. Tato sekvence může být automatozována spuštěním příkazu make -k check. Pokud použijete tuto volbu, ujistětě se, že logujete výstup, abyste mohli chyby prozkoumat později.

Instalace Glibc neškodné může ukázat ne varování o chybějícím souboru /tools/etc/ld.so.conf.Naprav to pomocí:

mkdir /tools/etc
touch /tools/etc/ld.so.conf

Nainstalujte balíček:

make install

Rozdílné národy a kultury mají pro komunikaci různé konvence. Tyto konvence zahrnují od formátu data a času po komplexnější problémy, jako je jazyk. Tato “internacionalizace” programů GNU pracuje pomoco lokalizace.

[Note]

Note

Pokud nebudete spouštět v této kapitole testy (jak je doporučeno), nemusíte nyní instalovat lokalizaci. Odpovídající lokalizace bude instalované v příští kapitole.

Pokud chcete přesto instalovat lokalizaci Glibc, použijte následující příkaz:

make localedata/install-locales

Pokud chcete ušetřit čas, alternativa k předchozímu příkaza (který generuje a instaluje všechny lokalizace, které Glibc obsahuje) je instalace pouze těch lokalizací,které jsou potřebné. Toho můžete dosáhnout pomocí příkazu localedef. Informace o tomto příkazu se nacházejí v souboru INSTALL ve zdrojích Glibc. Jakkoli několik lokalizací je důležitých pro testy dalších balíčků, zvláště testy libstdc++ z GCC. Místo install-locales můžete použít následující příkazy, abyste nainstalovali pro úspěšné testy minimální sadu lokalizací:

mkdir -p /tools/lib/locale
localedef -i de_DE -f ISO-8859-2 de_DE
localedef -i de_DE@euro -f ISO-8859-25 de_DE@euro
localedef -i en_HK -f ISO-8859-2 en_HK
localedef -i en_PH -f ISO-8859-2 en_PH
localedef -i en_US -f ISO-8859-2 en_US
localedef -i es_MX -f ISO-8859-2 es_MX
localedef -i fa_IR -f UTF-8 fa_IR
localedef -i fr_FR -f ISO-8859-2 fr_FR
localedef -i fr_FR@euro -f ISO-8859-25 fr_FR@euro
localedef -i it_IT -f ISO-8859-2 it_IT
localedef -i ja_JP -f EUC-JP ja_JP

Podrobné informace o tomto balíčku se nacházejí v Section 6.11.4, “Obsah Glibc.”