Podrobné informace o tomto balíčku se nacházejí v Section 6.11.4, “Obsah Glibc.”
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ě.
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-selinuxVýznam konfiguračních voleb:
Toto zkompiluje knihovny bez informací o profilech. Vynechte tuto volbu, pokud potřebujete profily na dočasných nástrojích.
Toto říká Glibc, aby použila rozšíření NPTL jako vláknovou knihovnu.
Toto říká Glibc, aby se zkompilovala s podporou pro Linuxová jádra řady 2.6.x
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.
Toto zabraňuje kompilaci programu memusagestat, který trvá na linkování na hostitelských knihovnách libgd, libpng, libz, atd.
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.
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]](../images/note.png)
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.”