Subversion Repositories svn LFS-FR

Rev

Rev 1342 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-tools-adjusting">
  <?dbhtml filename="adjusting.html"?>

  <title>Ajuster la chaîne d'outils</title>

  <para>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 <filename class="directory">/tools</filename>.</para>
 
  <para>Cela se fait en mettant le fichier <quote>specs</quote> du compilateur à
  un endroit où il le cherchera par défaut. Un simple script <command>sed</command> 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
  <filename class="directory">/lib</filename> ou éventuellement
  <filename class="directory">/lib64</filename> 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 <filename class="directory">/tools</filename>.</para>

  <para>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 à
  <xref linkend="ch-tools-toolchaintechnotes" role=","/> pour le nom par défaut
  de l'éditeur de liens dynamique.</para>

<!-- Ampersands are needed to allow copy and paste -->

<screen><userinput>SPECS=`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/specs
$LFS_TGT-gcc -dumpspecs | sed \
  -e 's@/lib\(64\)\?/ld@/tools&amp;@g' \
  -e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" &gt; $SPECS
echo "New specs file is: $SPECS"
unset SPECS</userinput></screen>
   
  <caution>
    <para>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&nbsp;:</para>

<screen><userinput>echo 'main(){}' &gt; dummy.c
$LFS_TGT-gcc -B/tools/lib dummy.c
readelf -l a.out | grep ': /tools'</userinput></screen>

    <para>Si tout fonctionne correctement, il ne devrait pas y avoir d'erreurs et
    la sortie de la dernière commande sera de la forme&nbsp;:</para>

<screen><computeroutput>[Requesting program interpreter: /tools/lib/ld-linux.so.2]</computeroutput></screen>

    <para>Remarquez que <filename class="directory">/tools/lib</filename> ou
    <filename class="directory">/tools/lib64</filename> pour les machines
    64 bits apparaît comme préfixe de l'éditeur de liens dynamique.</para>

    <para>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.</para>

    <para>Une fois que tout va bien, nettoyez les fichiers de test&nbsp;::</para>

<screen><userinput>rm -v dummy.c a.out</userinput></screen>

  </caution>

  <note><para>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.</para></note>

</sect1>