Rev 1344 |
Go to most recent revision |
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-system-binutils" role="wrap">
<?dbhtml filename="binutils.html"?>
<sect1info condition="script">
<productname>binutils</productname>
<productnumber>&binutils-version;</productnumber>
<address>&binutils-url;</address>
</sect1info>
<title>Binutils-&binutils-version;</title>
<indexterm zone="ch-system-binutils">
<primary sortas="a-Binutils">Binutils</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Le paquet Binutils contient un éditeur de liens, un assembleur
et d'autres outils pour gérer des fichiers objets.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&binutils-ch6-sbu;</seg>
<seg>&binutils-ch6-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation de Binutils</title>
<para>Vérifiez que les pseudo-terminaux (PTY) fonctionnent
correctement dans l'environnement en effectuant un simple test :</para>
<screen><userinput remap="test">expect -c "spawn ls"</userinput></screen>
<para>Cette commande devrait afficher ce qui suit :</para>
<screen><computeroutput>spawn ls</computeroutput></screen>
<para>Si, à la place, la sortie affiche le message ci-dessous, c'est que
l'environnement n'est pas paramétré pour la bonne opération PTY. Vous
devez résoudre ce problème avant de lancer les suites de test de Binutils
et de GCC :</para>
<screen><computeroutput>The system has no more ptys.
Ask your system administrator to create more.</computeroutput></screen>
<para>Supprimez l'installation d'un fichier obsolète
<filename>standards.info</filename> puisqu'un plus récent est installe plus
tard dans les instructions pour Autoconf :</para>
<screen><userinput remap="pre">rm -fv etc/standards.info
sed -i.bak '/^INFO/s/standards.info //' etc/Makefile.in</userinput></screen>
<para>La documentation de Binutils recommande de construire Binutils
à l'extérieur du répertoire des sources dans un répertoire
dédié :</para>
<screen><userinput remap="pre">mkdir -v ../binutils-build
cd ../binutils-build</userinput></screen>
<para>Préparez la compilation de Binutils :</para>
<screen><userinput remap="configure">../binutils-&binutils-version;/configure --prefix=/usr \
--enable-shared</userinput></screen>
<para>Compilez le paquet :</para>
<screen><userinput remap="make">make tooldir=/usr</userinput></screen>
<variablelist>
<title>Voici la signification des options de configure :</title>
<varlistentry>
<term><parameter>tooldir=/usr</parameter></term>
<listitem>
<para>Normalement, le répertoire
<filename class="directory">tooldir</filename> (celui où seront
placés les exécutables) est configuré avec
<filename class="directory">$(exec_prefix)/$(target_alias)</filename>.
Par exemple, les
machines x86_64 l'étendront en
<filename class="directory">/usr/x86_64-unknown-linux-gnu</filename>.
Comme il s'agit d'un système personnalisé, nous n'avons pas
besoin d'un répertoire spécifique à notre cible dans
<filename class="directory">/usr</filename>.
<filename class="directory">$(exec_prefix)/$(target_alias)</filename>
serait utilisée si le système avait pour but une cross-compilation (par exemple, compiler un paquet
sur une machine Intel qui génère du code pouvant être exécuté sur des machines
PowerPC).</para>
</listitem>
</varlistentry>
</variablelist>
<important>
<para>La suite de tests de Binutils dans cette section est
considérée comme critique. Ne la sautez sous aucun prétexte.</para>
</important>
<para>Testez les résultats :</para>
<screen><userinput remap="test">make CC="gcc -O2 -fno-stack-protector -nopie -fno-PIE -no-warn-shared-textrel" \
CXX="g++ -O2 -fno-stack-protector -nopie -fno-PIE -no-warn-shared-textrel" check</userinput></screen>
<para>Installez le paquet :</para>
<screen><userinput remap="install">make tooldir=/usr install</userinput></screen>
<para>Installez le fichier d'en-tête
<filename class="headerfile">libiberty</filename> requis par
certains paquets :</para>
<screen><userinput remap="install">cp -v ../binutils-&binutils-version;/include/libiberty.h /usr/include</userinput></screen>
</sect2>
<sect2 id="contents-binutils" role="content">
<title>Contenu de Binutils</title>
<segmentedlist>
<segtitle>Programmes installés</segtitle>
<segtitle>Bibliothèques installées</segtitle>
<segtitle>Répertoire installé</segtitle>
<seglistitem>
<seg>addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump,
ranlib, readelf, size, strings et strip</seg>
<seg>libiberty.a, libbfd.{a,so} et libopcodes.{a,so}</seg>
<seg>/usr/lib/ldscripts</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Descriptions courtes</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="addr2line">
<term><command>addr2line</command></term>
<listitem>
<para>Traduit les adresses de programme en noms de fichier et numéros de
ligne ; suivant une adresse et le nom d'un exécutable, il utilise les
informations de débogage disponibles dans l'exécutable pour déterminer le
fichier source et le numéro de ligne associé à cette adresse</para>
<indexterm zone="ch-system-binutils addr2line">
<primary sortas="b-addr2line">addr2line</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ar">
<term><command>ar</command></term>
<listitem>
<para>Crée, modifie et extrait à partir d'archives</para>
<indexterm zone="ch-system-binutils ar">
<primary sortas="b-ar">ar</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="as">
<term><command>as</command></term>
<listitem>
<para>Un assembleur qui assemble la sortie de <command>gcc</command>
en un fichier objet</para>
<indexterm zone="ch-system-binutils as">
<primary sortas="b-as">as</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="c-filt">
<term><command>c++filt</command></term>
<listitem>
<para>Utilisé par l'éditeur de liens pour récupérer les symboles C++
et Java, et pour empêcher les fonctions surchargées d'arrêter
brutalement le programme</para>
<indexterm zone="ch-system-binutils c-filt">
<primary sortas="b-c++filt">c++filt</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gprof">
<term><command>gprof</command></term>
<listitem>
<para>Affiche les données de profilage d'appels dans un graphe</para>
<indexterm zone="ch-system-binutils gprof">
<primary sortas="b-gprof">gprof</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ld">
<term><command>ld</command></term>
<listitem>
<para>Un éditeur de liens combinant un certain nombre d'objets et de fichiers
archives en un seul fichier, en déplaçant leur données et en regroupant les
références de symboles</para>
<indexterm zone="ch-system-binutils ld">
<primary sortas="b-ld">ld</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="nm">
<term><command>nm</command></term>
<listitem>
<para>Liste les symboles disponibles dans un fichier objet</para>
<indexterm zone="ch-system-binutils nm">
<primary sortas="b-nm">nm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="objcopy">
<term><command>objcopy</command></term>
<listitem>
<para>Traduit un type de fichier objet en un autre</para>
<indexterm zone="ch-system-binutils objcopy">
<primary sortas="b-objcopy">objcopy</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="objdump">
<term><command>objdump</command></term>
<listitem>
<para>Affiche des informations sur le fichier objet donné, les options
contrôlant les informations à afficher ; l'information affichée est
surtout utile aux programmeurs qui travaillent sur les outils de compilation
</para>
<indexterm zone="ch-system-binutils objdump">
<primary sortas="b-objdump">objdump</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ranlib">
<term><command>ranlib</command></term>
<listitem>
<para>Génère un index du contenu d'une archive et le stocke dans l'archive ;
l'index liste tous les symboles définis par les membres de l'archive qui sont
des fichiers objet déplaçables</para>
<indexterm zone="ch-system-binutils ranlib">
<primary sortas="b-ranlib">ranlib</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="readelf">
<term><command>readelf</command></term>
<listitem>
<para>Affiche des informations sur les binaires du type ELF</para>
<indexterm zone="ch-system-binutils readelf">
<primary sortas="b-readelf">readelf</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="size">
<term><command>size</command></term>
<listitem>
<para>Liste les tailles des sections et la taille totale pour les fichiers
objets donnés</para>
<indexterm zone="ch-system-binutils size">
<primary sortas="b-size">size</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="strings">
<term><command>strings</command></term>
<listitem>
<para>Affiche, pour chaque fichier donné, la séquence de caractères affichables
qui sont d'au moins la taille spécifiée (par défaut, 4) ; pour les fichiers
objets, il affiche, par défaut, seulement les chaînes des sections
d'initialisation et de chargement alors que pour les autres types de fichiers,
il parcourt le fichier entier</para>
<indexterm zone="ch-system-binutils strings">
<primary sortas="b-strings">strings</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="strip">
<term><command>strip</command></term>
<listitem>
<para>Supprime les symboles des fichiers objets</para>
<indexterm zone="ch-system-binutils strip">
<primary sortas="b-strip">strip</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libiberty">
<term><filename class="libraryfile">libiberty</filename></term>
<listitem>
<para>Contient des routines utilisées par différents programmes GNU comme
<command>getopt</command>, <command>obstack</command>,
<command>strerror</command>, <command>strtol</command>, et
<command>strtoul</command></para>
<indexterm zone="ch-system-binutils libiberty">
<primary sortas="c-libiberty">libiberty</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libbfd">
<term><filename class="libraryfile">libbfd</filename></term>
<listitem>
<para>Bibliothèque des descripteurs de fichiers binaires
(<foreignphrase>Binary File Descriptor</foreignphrase>)</para>
<indexterm zone="ch-system-binutils libbfd">
<primary sortas="c-libbfd">libbfd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libopcodes">
<term><filename class="libraryfile">libopcodes</filename></term>
<listitem>
<para>Une bibliothèque de gestion des opcodes—la <quote>version
lisible</quote> des instructions du processeur ; elle est utilisée pour
construire des outils comme
<command>objdump</command>.</para>
<indexterm zone="ch-system-binutils libopcodes">
<primary sortas="c-libopcodes">libopcodes</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>