Subversion Repositories svn LFS-FR

Rev

Rev 1344 | 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-binutils-pass1" role="wrap">
  <?dbhtml filename="binutils-pass1.html"?>
 
  <sect1info condition="script">
      <productname>binutils</productname>
      <productnumber>&binutils-version;</productnumber>
      <address>&binutils-url;</address>
  </sect1info>

  <title>Binutils-&binutils-version; - Passe 1</title>

  <indexterm zone="ch-tools-binutils-pass1">
    <primary sortas="a-Binutils">Binutils</primary>
    <secondary>outils, passe 1</secondary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
   href="../chapter06/binutils.xml"
   xpointer="xpointer(/sect1/sect2[1]/para[1])"/>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&binutils-ch5p1-sbu;</seg>
        <seg>&binutils-ch5p1-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">

       <title>Installation de Binutils croisé</title>

    <note><para>Revenez en arrière et relisez les remarques de la section précédente.
     La compréhension des remarques notées importantes vous fera éviter
     beaucoup de problèmes plus tard.</para></note>

    <para>Il est important que Binutils soit le premier paquet compilé
    parce que Glibc et GCC réalisent différents tests sur l'éditeur de
    liens et l'assembleur disponibles pour déterminer leur propres
    fonctionnalités à activer.</para>

    <para>Ajoutez le support des en-têtes d'exécutables PT PaX à Binutils&nbsp;:</para>

<screen><userinput remap="pre">patch -Np1 -i ../&binutils-pt_pax-patch;</userinput></screen>
   
    <para>La documentation de Binutils recommande de construire Binutils
    en dehors du répertoire des sources, c'est-à-dire dans un répertoire
    de construction dédié&nbsp;:</para>

<screen><userinput remap="pre">mkdir -v ../binutils-build
cd ../binutils-build</userinput></screen>

    <note>

       <para>Pour que les valeurs SBU listées dans le reste du livre vous soient
    utiles, mesurez le temps pris pour construire ce paquet, de la configuration
    jusqu'à la première installation. Pour cela, englobez les trois commandes
    dans une commande <command>time</command> de cette façon&nbsp;:

<userinput>time { ./configure ... &amp;&amp; make      
&amp;&amp; make install; }</userinput></para>

    </note>

   <note><para>Les valeurs SBU de construction approximatives et de l'espace disque requis au chapitre 5
   n'incluent pas les données des suites de tests.</para></note>

    <para>Maintenant, préparez la compilation de Binutils&nbsp;:</para>

<screen><userinput remap="configure">../binutils-&binutils-version;/configure \
     --target=$LFS_TGT --prefix=/tools \
     --disable-nls --disable-werror</userinput></screen>
    <variablelist>
      <title>Voici la signification des options de configure&nbsp;:</title>

      <varlistentry>
        <term><envar>--target=$LFS_TGT</envar></term>
        <listitem>
          <para>Vu que la description de la machine dans la variable
          <envar>LFS_TGT</envar> est légèrement différente de la valeur retournée
          par le script config.guess, ce paramètre va dire au script <command>configure</command>
          d'ajuster le système de construction de Binutils pour la construction
          d'un éditeur de lien croisé.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>--prefix=/tools</parameter></term>
        <listitem>
          <para>Ceci indique au script configure de se préparer à installer les
          programmes Binutils dans le répertoire
          <filename class="directory">/tools</filename>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>--disable-nls</parameter></term>
        <listitem>
          <para>Ceci désactive l'internationalisation comme i18n car ce n'est pas
          nécessaire pour des outils temporaires.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>--disable-werror</parameter></term>
        <listitem>
          <para>Ceci empêche la compilation de s'arrêter lorsqu'interviennent des
          événements comme des avertissements du compilateur du système
          hôte.</para>
        </listitem>
      </varlistentry>

    </variablelist>

    <para>Continuez avec la compilation du paquet&nbsp;:</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>La compilation est maintenant terminée. Normalement, la suite
    de tests devrait être lancée mais, à ce moment, l'ensemble de
    travail de la suite de tests (Tcl, Expect et DejaGnu) n'est pas
    encore en place. Les bénéfices à lancer les tests maintenant
    seraient minimes car les programmes de la première passe seront
    bientôt remplacés par ceux de la seconde.</para>
   
    <para>Si vous construisez sur une x86_64, créez un lien symbolique pour assurer la propreté de notre
    chaîne d'outils&nbsp;:</para>

<screen><userinput remap="install">case $(uname -m) in
   x86_64) mkdir -v /tools/lib &amp;&amp; ln -sv lib /tools/lib64 ;;
esac</userinput></screen>

    <para>Installez le paquet&nbsp;:</para>

<screen><userinput remap="install">make install</userinput></screen>

  </sect2>
 
  <sect2 role="content">
    <title/>

    <para>Les détails sur ce paquet sont disponibles dans
    <xref linkend="contents-binutils" role="."/></para>

  </sect2>

</sect1>