Les détails sur ce paquet sont situés dans Section 6.9.4, « Contenu de Glibc. »
Le paquet Glibc contient la bibliothèque C principale. Cette bibliothèque fournit toutes les routines basiques pour allouer de la mémoire, rechercher des répertoires, ouvrir et fermer des fichiers, les lire et les écrire, gérer les chaînes, faire correspondre des modèles, faire de l'arithmétique et ainsi de suite.
Corrigez un problème potentiel si /etc/ld.so.preload
est utilisé sur le szstème
hôte :
sed -i 's@/etc/ld.so.preload@/tools/etc/ld.so.preload@' elf/rtld.c
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 -v ../glibc-build cd ../glibc-build
Glibc ne supportant plus i386, ses développeurs disent d'utiliser
le commutateur du compilateur -march=i486
lorsqu'on le compile pour
des machines x86. On peut faire cela de plusieurs manières, mais
des tests montrent que la meilleure place pour le commutateur est à
l'intérieur de la variable de compilation « CFLAGS ». Au lieu de remplacer entièrement ce
que le système de compilation interne de Glibc utilise pour CFLAGS,
ajoutez le nouveau commutateur au contenu existant de CFLAGS en
utilisant le fichier spécial configparms
. Le commutateur -mtune=native est
également requis pour réinitialiser une valeur raisonnable pour
-mtune, laquelle est modifiée lors du paramétrage de -march.
echo "CFLAGS += -march=i486 -mtune=native" > configparms
Ensuite, préparez la compilation de Glibc :
../glibc-2.8-20080929/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
Voici la signification des options de configure :
--disable-profile
Ceci construit les bibliothèques sans les informations de profilage. Enlevez cette option si le profilage sur les outils temporaires est nécessaire.
--enable-add-ons
Ceci indique à Glibc d'utiliser le composant NPTL comme bibliothèque de threads.
--enable-kernel=2.6.0
Ceci indique à Glibc de compiler la bibliothèque avec le support des noyaux 2.6.x.
--with-binutils=/tools/bin
Bien que pas nécessaire, ce commutateur nous assure qu'il ne reste aucune erreur provenant des programmes Binutils lors de la construction de Glibc.
--without-gd
Ce commutateur empêche la construction du programme memusagestat, qui insiste pour être lié avec les bibliothèques de l'hôte (libgd, libpng, libz et ainsi de suite)..
--with-headers=/tools/include
Ceci dit à Glibc de se compiler contre les en-têtes qui viennent d'être installés dans le répertoire tools, afin qu'il sache exactement quelles options a le noyau et qu'il puisse s'optimiser en conséquence.
--without-selinux
Lors de la construction à partir d'hôtes qui incluent la fonctionnalité SELinux (par exemple Fedora Core 3), Glibc construira le support pour SELinux. Comme l'environnement d'outils LFS ne contient pas de support pour SELinux, une Glibc compilée avec ce support ne fonctionnera pas correctement.
Lors de cette étape, le message d'avertissement suivant peut apparaître :
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. Ce programme msgfmt fait partie du paquet Gettext que la distribution hôte devrait fournir. Si msgfmt est présent mais semble incompatible, mettez à jour le paquet Gettext du système hôte ou continuez sans et voyez si la suite de tests continue son exécution sans problèmes.
Compilez le paquet :
make
Ce paquet est fourni avec une suite de test, cependant vous ne pouvez pas l'exécuter à ce moment car nous n'avons pas encore de compilateur C++.
L'étape d'installation de Glibc affichera un message
d'avertissement sans conséquence pour l'absence de /tools/etc/ld.so.conf
. Supprimez ce message
avec :
mkdir -v /tools/etc touch /tools/etc/ld.so.conf
Installez le paquet :
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.
Si les suites de tests ne seront pas exécutés dans ce chapitre (suivant ainsi notre recommandation), il y a peu d'intérêts à installer les locales maintenant. Les bonnes locales seront installées dans le chapitre suivant. Néanmoins, pour installer les locales Glibc, utilisez les instructions de la section Section 6.9, « Glibc-2.8-20080929. »
Les détails sur ce paquet sont situés dans Section 6.9.4, « Contenu de Glibc. »