Estimation du temps de construction : 11,8 SBU Estimation de l'espace disque requis : 800 Mo |
(Dernière vérification effectuée auprès de la version 2.3.2.)
Glibc est une bibliothèque C qui apporte les appels système et les fonctions de base telles que open, malloc, printf, etc. La bibliothèque C est utilisée par tous les programmes liés dynamiquement.
Programmes installés : catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump et zic
Bibliothèques installées : ld.so, libBrokenLocale.[a,so], libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so et libutil.[a,so]
Glibc dépend de Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo.
Avant de commencer l'installation de la Glibc, vous devez entrer (cd) dans le répertoire glibc-2.3.2 et déballer Glibc-linuxthreads dans ce répertoire, et non pas dans le répertoire où vous déballez habituellement tous les sources.
Note : Nous allons lancer la suite de tests pour Glibc dans ce chapitre. Néanmoins, il est important de noter que lancer la suite de tests Glibc ici n'est pas considéré comme étant aussi important que dans le chapitre 6.
Ce package est connu pour mal se comporter si vous changez les options d'optimisation par défaut (en incluant les options -march et -mcpu). Donc, si vous avez défini des variables d'environnement qui surchargent les optimisations pas défaut, telles que CFLAGS et CXXFLAGS, nous vous recommandons de supprimer cette initialisation lors de la construction de Glibc.
Basiquement, compiler Glibc de tout autre façon que celle proposée par le livre compromet la stabilité de votre système.
Bien qu'il s'agisse d'un message sans gravité, l'étape d'installation de Glibc se plaindra de l'absence de /tools/etc/ld.so.conf. Corrigez ce petit message ennuyant avec :
mkdir /tools/etc touch /tools/etc/ld.so.conf |
De même, Glibc a un problème subtil s'il est compilé avec GCC 3.3.1. Appliquez le correctif suivant pour corriger ceci :
patch -Np1 -i ../glibc-2.3.2-sscanf-1.patch |
La documentation de Glibc recommande de construire Glibc en dehors du répertoire des sources, c'est-à-dire dans un répertoire dédié :
mkdir ../glibc-build cd ../glibc-build |
Ensuite, préparez la compilation de Glibc :
../glibc-2.3.2/configure --prefix=/tools \ --disable-profile --enable-add-ons \ --with-headers=/tools/include \ --with-binutils=/tools/bin \ --without-gd |
La signification des options de configure est :
--disable-profile : Ceci désactive la construction des bibliothèques avec les informations de profilage. Enlevez cette option si vous pensez faire du profilage.
--enable-add-ons : Ceci active tous les composants supplémentaires (add-ons) installés avec Glibc, dans notre cas Linuxthreads.
--with-binutils=/tools/bin et --with-headers=/tools/include : Ces options ne sont pas réellement nécessaires. Mais elles nous assurent que rien de mauvais ne peut arriver en ce qui concerne les en-têtes du noyau et que les programmes Binutils sont utilisés lors de la construction de Glibc.
--without-gd : Cette option nous assure que le programme memusagestat ne sera pas construit, car de façon assez étrange celui-ci insiste pour être lié avec les bibliothèques de l'hôte (libgd, libpng, libz et ainsi de suite).
Lors de cette étape, vous rencontrerez peut-être le message suivant :
configure: WARNING: *** These auxiliary programs are missing or incompatible versions: msgfmt *** some features will be disabled. *** Check the INSTALL file for required versions.
Le programme msgfmt, manquant ou incompatible, ne pose généralement pas de problème mais certaines personnes pensent qu'il peut poser problème lors de l'exécution de la suite de tests.
Compilez le package :
make |
Lancez la suite de tests :
make check |
La suite de tests de Glibc est grandement dépendante de certaines fonctionnalités de votre système hôte, en particulier du noyau. De plus, dans ce chapitre, certains tests peuvent être affecter durement par les outils existants ainsi que par des problèmes d'environnement sur le système hôte. Bien sûr, ceci ne sera plus un problème lorsque nous lançerons la suite de tests de Glibc dans l'environnement chroot au cours du chapitre 6. En général, la suite de tests de Glibc réussit. Néanmoins, comme mentionné ci-dessus, quelques échecs sont inévitables sous certaines circonstances. Voici une liste des problèmes les plus communs que nous connaissons :
Le test math échoue parfois lorsqu'il est exécuté sur des systèmes où le processeur n'est pas un nouveau Intel ou AMD. Certains paramètrages d'optimisation sont aussi connus pour être la source de ce type de problèmes.
Le test gettext échoue quelque fois à cause de problèmes sur le système hôte. Les raisons exactes ne sont pas encore claires.
Le test atime échoue quelque fois lorsque la partition LFS est montée avec l'option noatime ou à cause d'autres spécificités des autres systèmes de fichiers.
Le test shm pourrait échouer si le système hôte utilise le système de fichiers devfs mais ne dispose pas du système de fichiers tmpfs monté sur /dev/shm à cause d'un manque de support de tmpfs dans le noyau.
En cas d'exécution sur d'anciens matériels (lents), certains tests pourraient échouer à cause de limite de temps dépassée.
En résumé, ne vous inquiétez pas trop si vous voyez des échecs lors des tests de la Glibc dans ce chapitre. La Glibc au chapitre 6 est celle avec qui nous allons rester, donc c'est celle-ci pour qui les tests doivent réussir. Mais gardez en tête, y compris au chapitre 6 que certaines erreurs peuvent arriver, les tests de math par exemple. Si vous essuyez un échec, notez-le puis essayez de relancer make check. La suite de tests devrait reprendre là où elle s'était arrêtée. Vous pouvez passer cette séquence arrêt-relancement en lançant un make -k check. Mais en faisant cela, assurez-vous de sauvegarder la sortie pour que vous puissiez examiner les traces plus tard et savoir ainsi le nombre total d'échecs.
Maintenant, installez le package :
make install |
Différents pays et cultures ont des conventions variables sur la façon de communiquer. Ces conventions vont du très simple, telle que la représentation de la date et de l'heure à du très compliqué, telle que le langage parlé. L'internationalisation des programmes GNU fonctionne en utilisant les locales. Nous installons les locales Glibc maintenant :
make localedata/install-locales |
Une alternative au lancement de la commande précédente est d'installer uniquement les locales dont vous avez besoin ou que vous souhaitez. Ceci est possible en utilisant la commande localedef. Des informations sur cette commande sont disponibles dans le fichier INSTALL des sources glibc-2.3.2. Néanmoins, il existe un certain nombre de locales essentielles pour réussir les tests des futurs packages, en particulier les tests de libstdc++ provenant de GCC. Les instructions suivantes, au lieu de la cible install-locales comme ci-dessus, installent l'ensemble minimum de locales nécessaires à la bonne réussite des tests :
mkdir -p /tools/lib/locale localedef -i de_DE -f ISO-8859-1 de_DE localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro localedef -i en_HK -f ISO-8859-1 en_HK localedef -i en_PH -f ISO-8859-1 en_PH localedef -i en_US -f ISO-8859-1 en_US localedef -i es_MX -f ISO-8859-1 es_MX localedef -i fr_FR -f ISO-8859-1 fr_FR localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro localedef -i it_IT -f ISO-8859-1 it_IT localedef -i ja_JP -f EUC-JP ja_JP |
Précédent | Sommaire | Suivant |
Installer Linux-2.4.22 headers | Niveau supérieur | "Verrouiller" Glibc |