Subversion Repositories svn LFS-FR

Rev

Rev 1347 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
475 gleu 1
<?xml version="1.0" encoding="ISO-8859-1"?>
591 gleu 2
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
475 gleu 4
  <!ENTITY % general-entities SYSTEM "../general.ent">
5
  %general-entities;
6
]>
591 gleu 7
 
524 gleu 8
<sect1 id="ch-system-binutils" role="wrap">
591 gleu 9
  <?dbhtml filename="binutils.html"?>
475 gleu 10
 
602 texou 11
  <sect1info condition="script">
12
    <productname>binutils</productname>
13
    <productnumber>&binutils-version;</productnumber>
14
    <address>&binutils-url;</address>
15
  </sect1info>
16
 
591 gleu 17
  <title>Binutils-&binutils-version;</title>
475 gleu 18
 
591 gleu 19
  <indexterm zone="ch-system-binutils">
20
    <primary sortas="a-Binutils">Binutils</primary>
21
  </indexterm>
475 gleu 22
 
591 gleu 23
  <sect2 role="package">
24
    <title/>
475 gleu 25
 
591 gleu 26
    <para>Le paquet Binutils contient un éditeur de liens, un assembleur
27
    et d'autres outils pour gérer des fichiers objets.</para>
475 gleu 28
 
591 gleu 29
    <segmentedlist>
30
      <segtitle>&buildtime;</segtitle>
31
      <segtitle>&diskspace;</segtitle>
475 gleu 32
 
591 gleu 33
      <seglistitem>
34
        <seg>&binutils-ch6-sbu;</seg>
35
        <seg>&binutils-ch6-du;</seg>
36
      </seglistitem>
37
    </segmentedlist>
475 gleu 38
 
591 gleu 39
  </sect2>
475 gleu 40
 
591 gleu 41
  <sect2 role="installation">
42
    <title>Installation de Binutils</title>
43
 
44
    <para>Vérifiez que les pseudo-terminaux (PTY) fonctionnent
780 texou 45
    correctement dans l'environnement en effectuant un simple test&nbsp;:</para>
591 gleu 46
 
602 texou 47
<screen><userinput remap="test">expect -c "spawn ls"</userinput></screen>
475 gleu 48
 
780 texou 49
    <para>Cette commande devrait afficher ce qui suit&nbsp;:</para>
50
 
51
<screen><computeroutput>spawn ls</computeroutput></screen>
475 gleu 52
 
780 texou 53
    <para>Si, à la place, la sortie affiche le message ci-dessous, c'est que
54
    l'environnement n'est pas paramétré pour la bonne opération PTY. Vous
55
    devez résoudre ce problème avant de lancer les suites de test de Binutils
56
    et de GCC&nbsp;:</para>
57
 
591 gleu 58
<screen><computeroutput>The system has no more ptys.
524 gleu 59
Ask your system administrator to create more.</computeroutput></screen>
475 gleu 60
 
696 texou 61
    <para>Supprimez l'installation d'un fichier obsolète
62
    <filename>standards.info</filename> puisqu'un plus récent est installe plus
63
    tard dans les instructions pour Autoconf&nbsp;:</para>
64
 
65
<screen><userinput remap="pre">rm -fv etc/standards.info
66
sed -i.bak '/^INFO/s/standards.info //' etc/Makefile.in</userinput></screen>
67
 
1398 jmengual 68
    <para>Ajoutez le support des en-têtes d'exécutables PT PaX à Binutils&nbsp;:</para>
69
 
70
<screen><userinput remap="pre">patch -Np1 -i ../&binutils-pt_pax-patch;</userinput></screen>
71
 
591 gleu 72
    <para>La documentation de Binutils recommande de construire Binutils
73
    à l'extérieur du répertoire des sources dans un répertoire
74
    dédié&nbsp;:</para>
475 gleu 75
 
602 texou 76
<screen><userinput remap="pre">mkdir -v ../binutils-build
475 gleu 77
cd ../binutils-build</userinput></screen>
78
 
591 gleu 79
    <para>Préparez la compilation de Binutils&nbsp;:</para>
475 gleu 80
 
602 texou 81
<screen><userinput remap="configure">../binutils-&binutils-version;/configure --prefix=/usr \
1398 jmengual 82
    --enable-shared --disable-werror</userinput></screen>
475 gleu 83
 
591 gleu 84
    <para>Compilez le paquet&nbsp;:</para>
475 gleu 85
 
602 texou 86
<screen><userinput remap="make">make tooldir=/usr</userinput></screen>
475 gleu 87
 
591 gleu 88
    <variablelist>
89
      <title>Voici la signification des options de configure&nbsp;:</title>
475 gleu 90
 
591 gleu 91
      <varlistentry>
92
        <term><parameter>tooldir=/usr</parameter></term>
93
        <listitem>
94
          <para>Normalement, le répertoire
95
          <filename class="directory">tooldir</filename> (celui où seront
96
          placés les exécutables) est configuré avec
475 gleu 97
 
591 gleu 98
          <filename class="directory">$(exec_prefix)/$(target_alias)</filename>.
475 gleu 99
 
667 texou 100
          Par exemple, les
730 texou 101
          machines x86_64 l'étendront en
102
          <filename class="directory">/usr/x86_64-unknown-linux-gnu</filename>.
591 gleu 103
          Comme il s'agit d'un système personnalisé, nous n'avons pas
104
          besoin d'un répertoire spécifique à notre cible dans
105
 
106
          <filename class="directory">/usr</filename>.
107
 
108
          <filename class="directory">$(exec_prefix)/$(target_alias)</filename>
109
 
110
          serait utilisée si le système avait pour but une cross-compilation (par exemple, compiler un paquet
111
          sur une machine Intel qui génère du code pouvant être exécuté sur des machines
112
          PowerPC).</para>
113
        </listitem>
114
      </varlistentry>
115
 
116
    </variablelist>
117
 
1398 jmengual 118
    <para>On sait que la suite de tests échoue à cause des en-têtes du programme
119
    PT PaX. Il faut corriger la suite de tests.</para>
120
 
121
<!--
591 gleu 122
    <important>
123
      <para>La suite de tests de Binutils dans cette section est
124
      considérée comme critique. Ne la sautez sous aucun prétexte.</para>
125
    </important>
126
 
127
    <para>Testez les résultats&nbsp;:</para>
128
 
1347 jmengual 129
<screen><userinput remap="test">make CC="gcc -O2 -fno-stack-protector -nopie -fno-PIE -no-warn-shared-textrel" \
130
    CXX="g++ -O2 -fno-stack-protector -nopie -fno-PIE -no-warn-shared-textrel" check</userinput></screen>
1398 jmengual 131
-->
475 gleu 132
 
591 gleu 133
    <para>Installez le paquet&nbsp;:</para>
475 gleu 134
 
602 texou 135
<screen><userinput remap="install">make tooldir=/usr install</userinput></screen>
475 gleu 136
 
591 gleu 137
    <para>Installez le fichier d'en-tête
475 gleu 138
 
591 gleu 139
     <filename class="headerfile">libiberty</filename> requis par
140
     certains paquets&nbsp;:</para>
602 texou 141
<screen><userinput remap="install">cp -v ../binutils-&binutils-version;/include/libiberty.h /usr/include</userinput></screen>
475 gleu 142
 
591 gleu 143
  </sect2>
475 gleu 144
 
145
 
591 gleu 146
  <sect2 id="contents-binutils" role="content">
147
    <title>Contenu de Binutils</title>
475 gleu 148
 
591 gleu 149
    <segmentedlist>
150
      <segtitle>Programmes installés</segtitle>
151
      <segtitle>Bibliothèques installées</segtitle>
1162 jmengual 152
      <segtitle>Répertoire installé</segtitle>
475 gleu 153
 
591 gleu 154
      <seglistitem>
155
        <seg>addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump,
156
        ranlib, readelf, size, strings et strip</seg>
157
        <seg>libiberty.a, libbfd.{a,so} et libopcodes.{a,so}</seg>
1162 jmengual 158
        <seg>/usr/lib/ldscripts</seg>
591 gleu 159
      </seglistitem>
160
    </segmentedlist>
475 gleu 161
 
591 gleu 162
    <variablelist>
163
      <bridgehead renderas="sect3">Descriptions courtes</bridgehead>
164
      <?dbfo list-presentation="list"?>
165
 
166
      <?dbhtml list-presentation="table"?>
475 gleu 167
 
591 gleu 168
      <varlistentry id="addr2line">
169
        <term><command>addr2line</command></term>
170
        <listitem>
171
          <para>Traduit les adresses de programme en noms de fichier et numéros de
172
          ligne&nbsp;; suivant une adresse et le nom d'un exécutable, il utilise les
173
          informations de débogage disponibles dans l'exécutable pour déterminer le
174
          fichier source et le numéro de ligne associé à cette adresse</para>
175
          <indexterm zone="ch-system-binutils addr2line">
176
            <primary sortas="b-addr2line">addr2line</primary>
177
          </indexterm>
178
        </listitem>
179
      </varlistentry>
475 gleu 180
 
591 gleu 181
      <varlistentry id="ar">
182
        <term><command>ar</command></term>
183
        <listitem>
184
          <para>Crée, modifie et extrait à partir d'archives</para>
185
          <indexterm zone="ch-system-binutils ar">
186
            <primary sortas="b-ar">ar</primary>
187
          </indexterm>
188
        </listitem>
189
      </varlistentry>
475 gleu 190
 
591 gleu 191
      <varlistentry id="as">
192
        <term><command>as</command></term>
193
        <listitem>
194
          <para>Un assembleur qui assemble la sortie de <command>gcc</command>
195
          en un fichier objet</para>
196
          <indexterm zone="ch-system-binutils as">
197
            <primary sortas="b-as">as</primary>
198
          </indexterm>
199
        </listitem>
200
      </varlistentry>
475 gleu 201
 
591 gleu 202
      <varlistentry id="c-filt">
203
        <term><command>c++filt</command></term>
204
        <listitem>
641 texou 205
          <para>Utilisé par l'éditeur de liens pour récupérer les symboles C++
206
          et Java, et pour empêcher les fonctions surchargées d'arrêter
207
          brutalement le programme</para>
591 gleu 208
          <indexterm zone="ch-system-binutils c-filt">
209
            <primary sortas="b-c++filt">c++filt</primary>
210
          </indexterm>
211
        </listitem>
212
      </varlistentry>
475 gleu 213
 
591 gleu 214
      <varlistentry id="gprof">
215
        <term><command>gprof</command></term>
216
        <listitem>
619 texou 217
          <para>Affiche les données de profilage d'appels dans un graphe</para>
591 gleu 218
          <indexterm zone="ch-system-binutils gprof">
219
            <primary sortas="b-gprof">gprof</primary>
220
          </indexterm>
221
        </listitem>
222
      </varlistentry>
475 gleu 223
 
591 gleu 224
      <varlistentry id="ld">
225
        <term><command>ld</command></term>
226
        <listitem>
227
          <para>Un éditeur de liens combinant un certain nombre d'objets et de fichiers
228
          archives en un seul fichier, en déplaçant leur données et en regroupant les
229
          références de symboles</para>
230
          <indexterm zone="ch-system-binutils ld">
231
            <primary sortas="b-ld">ld</primary>
232
          </indexterm>
233
        </listitem>
234
      </varlistentry>
475 gleu 235
 
591 gleu 236
      <varlistentry id="nm">
237
        <term><command>nm</command></term>
238
        <listitem>
239
          <para>Liste les symboles disponibles dans un fichier objet</para>
240
          <indexterm zone="ch-system-binutils nm">
241
            <primary sortas="b-nm">nm</primary>
242
          </indexterm>
243
        </listitem>
244
      </varlistentry>
475 gleu 245
 
591 gleu 246
      <varlistentry id="objcopy">
247
        <term><command>objcopy</command></term>
248
        <listitem>
249
          <para>Traduit un type de fichier objet en un autre</para>
250
          <indexterm zone="ch-system-binutils objcopy">
251
            <primary sortas="b-objcopy">objcopy</primary>
252
          </indexterm>
253
        </listitem>
254
      </varlistentry>
475 gleu 255
 
591 gleu 256
      <varlistentry id="objdump">
257
        <term><command>objdump</command></term>
258
        <listitem>
259
          <para>Affiche des informations sur le fichier objet donné, les options
260
          contrôlant les informations à afficher&nbsp;; l'information affichée est
261
          surtout utile aux programmeurs qui travaillent sur les outils de compilation
262
          </para>
263
          <indexterm zone="ch-system-binutils objdump">
264
            <primary sortas="b-objdump">objdump</primary>
265
          </indexterm>
266
        </listitem>
267
      </varlistentry>
475 gleu 268
 
591 gleu 269
      <varlistentry id="ranlib">
270
        <term><command>ranlib</command></term>
271
        <listitem>
619 texou 272
          <para>Génère un index du contenu d'une  archive et le stocke dans l'archive&nbsp;;
591 gleu 273
          l'index liste tous les symboles définis par les membres de l'archive qui sont
274
          des fichiers objet déplaçables</para>
275
          <indexterm zone="ch-system-binutils ranlib">
276
            <primary sortas="b-ranlib">ranlib</primary>
277
          </indexterm>
278
        </listitem>
279
      </varlistentry>
475 gleu 280
 
591 gleu 281
      <varlistentry id="readelf">
282
        <term><command>readelf</command></term>
283
        <listitem>
284
          <para>Affiche des informations sur les binaires du type ELF</para>
285
          <indexterm zone="ch-system-binutils readelf">
286
            <primary sortas="b-readelf">readelf</primary>
287
          </indexterm>
288
        </listitem>
289
      </varlistentry>
475 gleu 290
 
591 gleu 291
      <varlistentry id="size">
292
        <term><command>size</command></term>
293
        <listitem>
294
          <para>Liste les tailles des sections et la taille totale pour les fichiers
295
          objets donnés</para>
296
          <indexterm zone="ch-system-binutils size">
297
            <primary sortas="b-size">size</primary>
298
          </indexterm>
299
        </listitem>
300
      </varlistentry>
475 gleu 301
 
591 gleu 302
      <varlistentry id="strings">
303
        <term><command>strings</command></term>
304
        <listitem>
305
          <para>Affiche, pour chaque fichier donné, la séquence de caractères affichables
306
          qui sont d'au moins la taille spécifiée (par défaut, 4)&nbsp;; pour les fichiers
307
          objets, il affiche, par défaut, seulement les chaînes des sections
308
          d'initialisation et de chargement alors que pour les autres types de fichiers,
309
          il parcourt le fichier entier</para>
310
          <indexterm zone="ch-system-binutils strings">
311
            <primary sortas="b-strings">strings</primary>
312
          </indexterm>
313
        </listitem>
314
      </varlistentry>
475 gleu 315
 
591 gleu 316
      <varlistentry id="strip">
317
        <term><command>strip</command></term>
318
        <listitem>
319
          <para>Supprime les symboles des fichiers objets</para>
320
          <indexterm zone="ch-system-binutils strip">
321
            <primary sortas="b-strip">strip</primary>
322
          </indexterm>
323
        </listitem>
324
      </varlistentry>
475 gleu 325
 
591 gleu 326
      <varlistentry id="libiberty">
327
        <term><filename class="libraryfile">libiberty</filename></term>
328
        <listitem>
329
          <para>Contient des routines utilisées par différents programmes GNU comme
330
          <command>getopt</command>, <command>obstack</command>,
331
          <command>strerror</command>, <command>strtol</command>, et
332
          <command>strtoul</command></para>
333
          <indexterm zone="ch-system-binutils libiberty">
334
            <primary sortas="c-libiberty">libiberty</primary>
335
          </indexterm>
336
        </listitem>
337
      </varlistentry>
475 gleu 338
 
591 gleu 339
      <varlistentry id="libbfd">
340
        <term><filename class="libraryfile">libbfd</filename></term>
341
        <listitem>
342
          <para>Bibliothèque des descripteurs de fichiers binaires
343
          (<foreignphrase>Binary File Descriptor</foreignphrase>)</para>
344
          <indexterm zone="ch-system-binutils libbfd">
345
            <primary sortas="c-libbfd">libbfd</primary>
346
          </indexterm>
347
        </listitem>
348
      </varlistentry>
349
 
350
      <varlistentry id="libopcodes">
351
        <term><filename class="libraryfile">libopcodes</filename></term>
352
        <listitem>
353
          <para>Une bibliothèque de gestion des opcodes&mdash;la <quote>version
354
          lisible</quote> des instructions du processeur&nbsp;; elle est utilisée pour
355
          construire des outils comme
356
          <command>objdump</command>.</para>
357
          <indexterm zone="ch-system-binutils libopcodes">
358
            <primary sortas="c-libopcodes">libopcodes</primary>
359
          </indexterm>
360
        </listitem>
361
      </varlistentry>
362
 
363
    </variablelist>
364
 
365
  </sect2>
366
 
475 gleu 367
</sect1>