Details on this package are located in Section 10.9.5, “Contenu d'EGLIBC.”
Le paquet EGLIBC contient la bibliothèque C principale. Cette bibliothèque fournit toutes les routines de base pour allouer de la mémoire, rechercher dans des répertoires, ouvrir et fermer des fichiers, les lire et les écrire, gérer les chaînes, faire de la recherche de motifs, faire de l'arithmétique etc.
À la fin de l'installation, le système de construction exécutera un test de propreté pour s'assurer que tout s'est installé correctement. Ce script essaiera de tester la présence d'une bibliothèque utilisée uniquement pour la suite de tests, et elle n'est jamais installée. Empêchez le script de tester la présence de cette bibliothèque avec la commande suivante :
sed -i 's/\(&& $name ne\) "db1"/ & \1 "nss_test1"/' scripts/test-installation.pl
Ce même script effectue ses tests en essayant de compiler des programmes de test contre certaines bibliothèques. Cependant, il ne spécifie pas le ld.so, or notre ensemble d'outils est configuré pour utiliser celui de /tools. L'ensemble de commandes suivant obligera le script à utiliser le chemin complet du nouveau ld.so qu'on vient d'installer :
LINKER=$(readelf -l /tools/bin/bash | sed -n 's@.*interpret.*/tools\(.*\)]$@\1@p')
sed -i "s|libs -o|libs -L/usr/lib32 -Wl,-dynamic-linker=${LINKER} -o|" \
scripts/test-installation.pl
unset LINKER
Le correctif suivant corrige un problème qui peut faire planter ALSA :
patch -Np1 -i ../eglibc-2.15-fixes-1.patch
Le système de construction d'EGLIBC est autosuffisant et s'installe
parfaitement, même si notre fichier specs pour le compilateur et
l'éditeur de liens pointent toujours vers /tools. Les specs et l'éditeur de liens ne
peuvent pas être ajustés avant l'installation de la EGLIBC parce
que les tests d'autoconf d'EGLIBC donneraient alors des résultats
faussés, défaussant ainsi notre but d'achever une construction
propre.
MIPS is not supported in the main EGLIBC tree, so we need the
eglibc-ports tarball. Unpack eglibc-ports-2.15-r21467:
tar -xvf ../eglibc-ports-2.15-r21467.tar.xz
The following will cause EGLIBC to use an absolute path to the ldd-rewrite-script instead of a relative path:
cp -v config.make.in{,.orig}
sed '/ldd-rewrite-script/s:@:${objdir}/&:' config.make.in.orig > config.make.in
La documentation d'EGLIBC recommande de construire EGLIBC en dehors du répertoire des sources dans un répertoire de construction dédié :
mkdir -v ../eglibc-build cd ../eglibc-build
Tell EGLIBC to install its 32-bit libraries into /lib32:
echo "slibdir=/lib32" >> configparms
Préparez la compilation d'EGLIBC :
CC="gcc ${BUILDN32}" CXX="g++ ${BUILDN32}" \
../eglibc-2.15/configure --prefix=/usr \
--disable-profile --enable-kernel=2.6.32 \
--libexecdir=/usr/lib32/eglibc --libdir=/usr/lib32
The meaning of the new configure option:
--libexecdir=/usr/lib32/eglibc
This changes the location of the pt_chown program from its
default of /usr/libexec to
/usr/lib32/eglibc.
Compilez le paquet :
make
La suite de tests d'EGLIBC est considérée comme critique. Ne la sautez sous aucun prétexte.
Testez les résultats :
cp -v ../eglibc-2.15/iconvdata/gconv-modules iconvdata make -k check 2>&1 | tee eglibc-check-log; grep Error eglibc-check-log
La suite de tests EGLIBC est très dépendante de certaines fonctions
du système hôte, en particulier du noyau. Normalement, le test
posix/annexc échoue et vous devriez voir Error 1 (ignored) dans la sortie. Excepté cela, la
suite de tests d'EGLIBC devrait toujours passer. Néanmoins, dans
certaines circonstances, certains échecs sont inévitables. Si un
test échoue à cause d'un programme manquant (ou d'un lien
symbolique manquant), ou du fait d'une erreur de segmentation, vous
verrez un code d'erreur supérieur à 127 et les détails seront dans
le journal. De manière plus générale, les tests échoueront avec
Error 2 - pour eux le contenu du
fichier .out, comme posix/annexc.out peut vous donner des
informations. Voici une liste des problèmes les plus
fréquents :
Les tests math échouent quelque fois. Certaines optimisations sont connues pour être une cause de cela.
Si vous avez monté la partition CLFS avec l'option noatime, le test atime échouera. Comme mentionné
dans Section 2.4,
“Monter la nouvelle partition”, n'utilisez
pas l'option noatime
lors de la construction de CLFS.
Lors d'une exécution sur un matériel ancien et lent, quelques tests peuvent échouer à cause de délais dépassés.
Installez le paquet :
make install
Details on this package are located in Section 10.9.5, “Contenu d'EGLIBC.”