Maintenant que les bibliothèques C temporaires ont été installées,
tous les outils compilés dans le reste de ce chapitre doivent être
liés avec ces bibliothèques. Pour accomplir cela, le fichier specs du
compilateur croisé doit être ajustés pour pointer vers le nouvel
éditeur de liens dynamique dans /tools
.
Cela se fait en mettant le fichier « specs » du compilateur à un endroit où il le
cherchera par défaut. Un simple script sed modifie alors l'éditeur de
liens dynamique que GCC utilisera. Ici, le principe est de trouver
toutes les références au fichier de l'éditeur de liens dynamique que
dans /lib
ou éventuellement
/lib64
si le système hôte est capable
de tourner en 64 bits, et de les ajuster pour qu'ils pointent vers le
nouvel endroit dans /tools
.
Par souci de précision, il est recommandé que la commande ci-dessous soit copiée/collée. Assurez-vous d'inspecter visuellement le fichier specs pour vérifier qu'il a correctement ajusté toutes les références à l'endroit où se trouve l'éditeur de liens dynamique. Reportez-vous si nécessaire à Section 5.2, « Notes techniques sur la chaîne d'outils, » pour le nom par défaut de l'éditeur de liens dynamique.
SPECS=`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/specs $LFS_TGT-gcc -dumpspecs | sed \ -e 's@/lib\(64\)\?/ld@/tools&@g' \ -e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" > $SPECS echo "New specs file is: $SPECS" unset SPECS
Il est impératif à ce moment de s'arrêter et de s'assurer que les fonctions basiques (compilation et édition des liens) du nouvel ensemble d'outils fonctionnent comme attendu. Pour réaliser une vérification de propreté, lancez les commandes suivantes :
echo 'main(){}' > dummy.c $LFS_TGT-gcc -B/tools/lib dummy.c readelf -l a.out | grep ': /tools'
Si tout fonctionne correctement, il ne devrait pas y avoir d'erreurs et la sortie de la dernière commande sera de la forme :
[Requesting program interpreter: /tools/lib/ld-linux.so.2]
Remarquez que /tools/lib
ou
/tools/lib64
pour les machines 64
bits apparaît comme préfixe de l'éditeur de liens dynamique.
Si l'affichage diffère ou s'il n'y a aucun affichage, alors quelque chose ne se passe pas bien. Enquêtez et tracez vos étapes pour trouver où se cache le problème et comment le corriger. Ce problème doit être corrigé avant de continuer. Quelque chose a pu mal se passer avec la correction du fichier specs ci-dessus. Dans ce cas, refaites la modification de ce fichier en vous assurant de copier/coller les commandes.
Une fois que tout va bien, nettoyez les fichiers de test ::
rm -v dummy.c a.out
Construire Binutils dans la prochaine section servira comme vérification supplémentaire de la bonne mise en place de l'outil de construction. Si Binutils échoue à la construction, c'est une indication d'un problème avec les installations precedentes de Binutils, GCC ou Glibc.