Désarchivez glibc-crypt et glibc-linuxthreads dans le répertoire glibc-2.1.3, pas dans le répertoire $LFS/usr/src. N'entrez pas dans les répertoires créés. Désarchivez et laissez les choses comme elles sont.
Il faut changer un petit nombre de paramètres de Glibc, comme le répertoire où les bibliothèques dynamiques sont supposées être installées et le répertoire qui contient les fichiers de configuration système. Pour le faire, vous devez créer le répertoire $LFS/usr/src/glibc-build et entrer dans ce répertoire avec :
mkdir $LFS/usr/src/glibc-build &&
cd $LFS/usr/src/glibc-build
dans ce répertoire vous créez le nouveau fichier configparms en exécutant ce qui suit :
cat > configparms << "EOF"
# Begin configparms
slibdir=/lib
sysconfdir=/etc
# End configparms
EOF
Avant d'installer effectivement Glibc vous devez désarchiver le fichier patch de Glibc
Notez que le script de configuration de Glibc peut protester en disant que certains fichiers du répertoire /usr/include sont trop anciens et seront remplacés, ou que certains liens symboliques ne sont plus supposés exister (comme le lien symbolique /usr/include/scsi qui est présent sur les vieux systèmes Linux). S'il vous demande de déplacer un lien symbolique comme scsi, faites le. S'il vous dit qu'il va remplacer des fichiers anciens par des fichiers Glibc plus récents, vous pouvez ne pas vous en préoccuper. Glibc ne sait pas qu'il finira dans $LFS quand le fichier de configuration aura été exécuté.
Si une version correcte de GCC est installée sur votre système, allez dans le répertoire $LFS/usr/src/glibc-build et installez Glibc en exécutant les commandes suivantes :
cd ../glibc-2.1.3 &&
patch -Np1 -i ../glibc-2.1.3.patch &&
cd $LFS/usr/src/glibc-build &&
../glibc-2.1.3/configure \
--prefix=/usr --enable-add-ons \
--with-headers=$LFS/usr/include \
--libexecdir=/usr/bin &&
make &&
make install_root=$LFS install &&
make install_root=$LFS localedata/install-locales
Si aucune version correcte de GCC n'était installée sur votre système, allez dans le répertoire $LFS/usr/src/glibc-build et installez Glibc, en utilisant gcc-2.95.2 que vous venez d'installer, en exécutant les commandes suivantes :
cd ../glibc-2.1.3 &&
patch -Np1 -i ../glibc-2.1.3.patch &&
cd $LFS/usr/src/glibc-build &&
CC=/usr/local/gcc2952/bin/gcc \
../glibc-2.1.3/configure --prefix=/usr --enable-add-ons \
--with-headers=$LFS/usr/include \
--libexecdir=/usr/bin &&
make &&
make install_root=$LFS install &&
make install_root=$LFS localedata/install-locales
Si votre système Linux normal utilise glibc-2.0, vous devez copier les bibliothèques NSS dans la partition LFS. Certains programmes liés statiquement dépendent des bibliothèques NSS, en particulier les programmes qui doivent interpréter les noms d'utilisateurs (username) , les identificateurs utilisateurs (userid) et les identificateurs de groupe (groupid). Vous pouvez vérifier quelle version de bibliothèque C est utilisée par votre système Linux normal en exécutant :
strings /lib/libc* | grep "release version"
Le résultat de cette commande devrait vous dire quelque chose comme :
GNU C Library stable release version 2.1.3, by Roland McGrath et al.
Si Glibc-2.0.x est installé sur votre distribution de départ, copiez les bibliothèques NSS en exécutant :
cp -av /lib/libnss* $LFS/lib
patch -Np1 -i ../glibc-2.1.3.patch: Ceci applique un patch qui fixe un défaut mineur dans Glibc. Glibc définit quelques noms de variables comportant des caractères interdits. Bash-2.03, ainsi que les versions plus anciennes, ne protestent pas à l'inverse de Bash-2.04 qui ne compile pas Glibc correctement.
--enable-add-ons: Ceci inclut les ajouts que nous installons avec Glibc : linuxthreads et crypt.
--with-headers=$LFS/usr/include: Ceci indique à Glibc d'utiliser les fichiers en-têtes du noyau de notre système LFS, et pas ceux de la distribution de départ, qui peuvent être obsolètes ou modifiés.
make install_root=$LFS: Ceci est la façon de spécifier à Glibc l'équivalent de --prefix=.
Le package Glibc contient la bibliothèque GNU C.
La bibliothèque C est un ensemble de fonctions couramment utilisées dans les programmes. Ainsi, un programmeur n'a pas besoin de créer ses propres fonctions pour chaque tâche de base. Les opérations les plus courantes comme écrire une ligne à l'écran sont déjà présentes et à la disposition du programmeur.
La bibliothèque C (comme, actuellement, presque toutes les bibliothèques) est fournie en deux versions: dynamique et statique. En bref, quand un programme utilise une bibliothèque C statique, le code de la bibliothèque C est copié dans le fichier exécutable. Quand un programme utilise une bibliothèque dynamique, cet exécutable ne contiendra pas le code de la bibliothèque C, mais simplement une routine qui chargera les fonctions depuis la bibliothèque au moment de l'exécution du programme. Cela signifie une réduction significative de la taille du fichier du programme. Si vous ne comprenez pas ce concept, vous feriez mieux de lire la documentation fournie avec la bibliothèque C, car cela est trop compliqué à expliquer ici en une ou deux lignes.
Précédent | Sommaire | Suivant |
Installer le noyau Linux | Niveau supérieur | Installer Grep |