Subversion Repositories svn LFS-FR

Rev

Rev 1398 | 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-glibc" role="wrap">
  <?dbhtml filename="glibc.html"?>

  <sect1info condition="script">
    <productname>glibc</productname>
    <productnumber>&glibc-version;</productnumber>
    <address>&glibc-url;</address>
  </sect1info>

  <title>Glibc-&glibc-version;</title>

  <indexterm zone="ch-system-glibc">
    <primary sortas="a-Glibc">Glibc</primary>
  </indexterm>

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

    <para>Le paquet Glibc contient la bibliothèque C principale. Cette bibliothèque
    fournit toutes les routines basiques pour allouer de la mémoire, rechercher des
    répertoires, ouvrir et fermer des fichiers, les lire et les écrire, gérer
    les chaînes, faire correspondre des modèles, faire de l'arithmétique et
    ainsi de suite.</para>

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

      <seglistitem>
        <seg>&glibc-ch6-sbu;</seg>
        <seg>&glibc-ch6-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">
    <title>Installation de Glibc</title>

    <note>
      <para>Certains paquets non compris dans LFS suggèrent d'installer GNU
      libiconv pour traduire les données d'un codage en un autre. La page d'accueil
      du projet (<ulink url="http://www.gnu.org/software/libiconv/"/>) précise
      <quote>Cette bibliothèque fournit une implémentation de <function>iconv()</function>
      à utiliser sur les systèmes qui n'en disposent
      pas ou dont l'implémentation ne convertit pas l'Unicode.</quote> Glibc fournit
      une implémentation d'<function>iconv()</function> et peut convertir de
      l'Unicode, du coup libiconv n'est pas requis sur un système LFS.</para>
    </note>

<!--
   <para>Sous la locale vi_VN.TCVN, <command>bash</command> entre dans une boucle
   infinie au lancement. On ne sait pas s'il s'agit d'un bogue <command>bash</command>
   ou d'un problème de Glibc. Désactivez l'installation de cette locale afin
   d'éviter le problème&nbsp;:</para>

<screen><userinput remap="pre">sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED</userinput></screen>
-->

    <para>Lors de l'exécution de <command>make install</command>, un script appelé
    <filename>test-installation.pl</filename> opère un test de propreté sur notre
    Glibc récemment installée. Cependant, notre chaîne d'outils pointant
    encore vers le répertoire
    <filename class="directory">/tools</filename>, le test de propreté pourrait
    se fier au mauvais Glibc. Nous pouvons forcer le script à tester la Glibc que
    nous venons d'installer en lançant ceci&nbsp;:</para>

<screen><userinput remap="pre">DL=$(readelf -l /bin/sh | sed -n 's@.*interpret.*/tools\(.*\)]$@\1@p')
sed -i &quot;s|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=$DL -o|&quot; \
        scripts/test-installation.pl
unset DL</userinput></screen>

    <para>Le script shell <command>ldd</command> contient la syntaxe spécifique à
    Bash. Changez son programme interpréteur par défaut en
    <command>/bin/bash</command> si <command>/bin/sh</command> n'est pas installé
    comme décrit dans le chapitre
    <ulink url="&blfs-root;view/svn/postlfs/shells.html">Shells</ulink>
    du livre BLFS&nbsp;:</para>

<screen><userinput remap="pre">sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in</userinput></screen>
 
    <para>Corrigez un déséquilibre de pile qui survient dans certaines
    conditions&nbsp;:</para>

<screen><userinput remap="pre">sed -i '195,213 s/PRIVATE_FUTEX/FUTEX_CLOCK_REALTIME/' \
        nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timed{rd,wr}lock.S</userinput></screen>

    <para>Utilisez <filename class="devicefile">/dev/erandom</filename> avec
    <option>-fstack-protector-all</option>&nbsp;:</para>

<screen><userinput remap="pre">sed -i 's@/dev/urandom@/dev/erandom@' ./sysdeps/unix/sysv/linux/dl-osinfo.h</userinput></screen>

    <para>Ajoutez le support de PaX à Glibc&nbsp;:</para>

<screen><userinput remap="pre">patch -Np1 -i ../&glibc-pt_pax-patch;
patch -Np1 -i ../&glibc-dl_execstack-patch;
patch -Np1 -i ../&glibc-localedef_trampoline-patch;</userinput></screen>

    <para>Ajoutez les fonctions de bibliothèque <option>strlcpy</option> et
    <option>strlcat</option> à Glibc&nbsp;:</para>

<screen><userinput remap="pre">patch -Np1 -i ../&glibc-strlcpy_strlcat-patch;</userinput></screen>

    <para>La documentation de Glibc recommande de construire Glibc en dehors du
    répertoire des sources dans un répertoire de construction dédié&nbsp;:</para>

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

    <para>Comme au chapitre 5, ajoutez à nouveau à CFLAGS les commutateurs du compilateur requis pour les machines x86. Ici, l'optimisation
    de la bibliothèque est également réglée pour le compilateur gcc pour gérer la vitesse de compilation (-pipe) et la performance des
    paquets (-O3).</para>
   
<screen><userinput remap="configure">case `uname -m` in
  i?86) echo "CFLAGS += -march=i486 -mtune=native -O3 -pipe" &gt; configparms ;;
esac</userinput></screen>


 
    <para>Configurez le fichier the <filename>configparms</filename> pour
    construire les bibliothèques de Glibc en désactivant les  durcissements&nbsp;:</para>

<screen><userinput remap="configure">cat &gt;&gt; configparms &lt;&lt; "EOF"
build-programs=no
CC += -fPIC -fno-stack-protector -U_FORTIFY_SOURCE -nonow -nopie
CXX += -fPIC -fno-stack-protector -U_FORTIFY_SOURCE -nonow -nopie
EOF</userinput></screen>

    <para>Préparez la compilation de Glibc&nbsp;:</para>

<screen><userinput remap="configure">../glibc-&glibc-version;/configure --prefix=/usr \
    --disable-profile --enable-add-ons \
    --enable-kernel=2.6.22.5 --libexecdir=/usr/lib/glibc\
    --enable-bind-now --enable-stackguard-randomization</userinput></screen>

    <variablelist>
      <title>Voici la signification des options de configure&nbsp;:</title>

      <varlistentry>
        <term><parameter>--libexecdir=/usr/lib/glibc</parameter></term>
        <listitem>
          <para>Ceci modifie l'emplacement du programme
          <command>pt_chown</command>, par défaut
          <filename class="directory">/usr/libexec</filename>, par
          <filename class="directory">/usr/lib/glibc</filename>.</para>
        </listitem>
      </varlistentry>
 
      <varlistentry>
        <term><parameter>--enable-bind-now</parameter></term>
        <listitem>
          <para>Ceci configure Glibc pour utiliser l'option <option>-z now</option>
          de l'éditeur de liens.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>--enable-stackguard-randomization</parameter></term>
        <listitem>
          <para>Ceci configure Glibc pour utiliser <filename>/dev/urandom</filename>
          avec <option>-fstack-protector</option>.</para>
        </listitem>
      </varlistentry>

    </variablelist>

    <para>Compilez les bibliothèques&nbsp;:</para>

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

    <para>Préparez le fichier <filename>configparms</filename> pour construire
    les programmes de Glibc&nbsp;:</para>

<screen><userinput remap="configure">cat &gt; configparms &lt;&lt; "EOF"
<literal>CC += -fPIE -fstack-protector-all -D_FORTIFY_SOURCE=2
CXX += -fPIE -fstack-protector-all -D_FORTIFY_SOURCE=2
CFLAGS-sln.c += -fno-PIC -fno-PIE
+link = $(CC) -pie -Wl,-O1 -nostdlib -nostartfiles -o $@ \
    $(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
    $(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
    -Wl,-z,now -Wl,--warn-shared-textrel,--fatal-warnings \
    $(addprefix $(csu-objpfx),S$(start-installed-name)) \
    $(+preinit) $(+prectorS) \
    $(filter-out $(addprefix $(csu-objpfx),start.o \
    S$(start-installed-name))\
    $(+preinit) $(link-extra-libs) \
    $(common-objpfx)libc% $(+postinit),$^) \
    $(link-extra-libs) $(link-libc) $(+postctorS) $(+postinit)</literal>
EOF
case `uname -m` in
  i?86) echo "CFLAGS += -march=i486 -mtune=native" &gt;&gt; configparms ;;
esac</userinput></screen>

    <para>Compilez les programmes&nbsp;:</para>

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

    <important>
      <para>Dans cette section, la suite de tests de Glibc est considérée
      comme critique. Ne la sautez sous aucun prétexte.</para>
    </important>
 
    <para>Pour tester les résultats, créez d'abord un nouveau fichier
    <filename>configparms</filename> pour désactiver la plupart des options de
    durcissement&nbsp;:</para>

<screen><userinput remap="configure">cat &gt; configparms &lt;&lt; "EOF"
CC += -fPIC -fno-stack-protector -U_FORTIFY_SOURCE -nonow -nopie -norelro -no-fatal-warnings
CXX += -fPIC -fno-stack-protector -U_FORTIFY_SOURCE -nonow -nopie -norelro -no-fatal-warnings
EOF
case `uname -m` in
  i?86) echo "CFLAGS += -march=i486 -mtune=native" &gt;&gt; configparms ;;
esac</userinput></screen>

   <para>Avant de lancer les tests, copiez un fichier de l'arborescence du code
   source dans l'arborescence de notre construction pour empêcher deux échecs
   de test, puis testez les résultats&nbsp;:</para>

<screen><userinput remap="test">cp -v ../glibc-&glibc-version;/iconvdata/gconv-modules iconvdata
make -k check 2&gt;&amp;1 | tee glibc-check-log
grep Error glibc-check-log</userinput></screen>

    <para>Vous verrez probablement un échec attendu (ignoré) lors des tests de
    <emphasis>posix/annexc</emphasis>. En outre, La suite de tests Glibc est
    quelque peu dépendante du système hôte. Voici une liste des problèmes les
    plus fréquents&nbsp;:</para>

    <itemizedlist>
      <!-- Check again after updating from gcc-4.1.x -->
      <listitem>
        <para>Le test <emphasis>nptl/tst-cancel1</emphasis> échouera si vous
        utilisez les séries 4.1 de GCC.</para>
      </listitem>
      <listitem>
        <para>Les tests <emphasis>nptl/tst-clock2</emphasis>,
        <emphasis>nptl/tst-attr3</emphasis> et <emphasis>rt/tst-cpuclock2</emphasis> échouent souvent. On n'a pas encore
        totalement compris la raison, mais des indications laissent penser que
        des problèmes mineurs de temps peuvent être à l'origine de ces échecs.</para>
      </listitem>
      <listitem>
        <para>Les tests <emphasis>math</emphasis> échouent quelque fois lors de
        leur exécution sur des systèmes où le processeur n'est pas un Intel ou un AMD
        authentique.</para>
      </listitem>
      <listitem>
        <para>Si vous avez monté la partition LFS avec l'option
        <parameter>noatime</parameter>, le test <emphasis>atime</emphasis>
        échouera. Comme mentionné dans <xref linkend="space-mounting"/>,
        n'utilisez pas l'option <parameter>noatime</parameter> lors de la construction de LFS.</para>
      </listitem>
      <listitem>
        <para>Lors d'une exécution sur un matériel ancien et lent, quelques
        tests peuvent échouer à cause de délais de test dépassés. La modification
        de la commande make check pour paramétrer un TIMEOUTFACTOR a été signalée comme
        aidant à éliminer ces erreurs (par exemple <command>TIMEOUTFACTOR=16
        make -k check</command>).</para>
      </listitem>
    </itemizedlist>

    <para>Bien que ce ne soit qu'un simple message, l'étape d'installation de
    Glibc se plaindra de l'absence de <filename>/etc/ld.so.conf</filename>.
    Supprimez ce message d'avertissement avec&nbsp;:</para>

<screen><userinput remap="install">touch /etc/ld.so.conf</userinput></screen>

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

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

    <para>Installez la page de man de strlcpy&nbsp;:</para>

<screen><userinput remap="install">cp -v ../glibc-&glibc-version;/manual/strlcpy.3 /usr/share/man/man3</userinput></screen>

    <para>Les locales qui permettent à votre système de répondre en une langue
    différente n'ont pas été installées avec la commande ci-dessus. Aucune
    n'est indispensable, mais si certaines sont absentes, les suites de test
    des futurs paquets peuvent sauter des situations de test importantes.</para>

    <para>Vous pouvez installer les locales individuelles en utilisant le
    programme <command>localedef</command> Par exemple, la première commande
    <command>localedef</command> ci-dessous combine la définition
    de la locale du codage indépendant
    <filename>/usr/share/i18n/locales/cs_CZ</filename> avec la définition
    de la page de codes
    <filename>/usr/share/i18n/charmaps/UTF-8.gz</filename> et envoie le
    résultat vers le fichier
    <filename>/usr/lib/locale/locale-archive</filename>.
    Les instructions suivantes installeront les paramètres minimums des locales
    nécessaires pour le déroulement optimal des tests&nbsp;:</para>

<screen role="nodump"><userinput remap="locale-test">mkdir -pv /usr/lib/locale
localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
localedef -i de_DE -f UTF-8 de_DE.UTF-8
localedef -i en_HK -f ISO-8859-1 en_HK
localedef -i en_PH -f ISO-8859-1 en_PH
localedef -i en_US -f ISO-8859-1 en_US
localedef -i en_US -f UTF-8 en_US.UTF-8
localedef -i es_MX -f ISO-8859-1 es_MX
localedef -i fa_IR -f UTF-8 fa_IR
localedef -i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i ja_JP -f EUC-JP ja_JP
localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
localedef -i zh_CN -f GB18030 zh_CN.GB18030</userinput></screen>

    <para>En outre, installez la locale de votre pays, de votre langue et de votre
    codage.</para>

    <para>Vous pouvez alternativement installer les locales listées dans le fichier
    <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> (il inclut
    toutes les locales citées ci-dessus et d'autres) en une fois avec la commande
    suivante qui prend beaucoup de temps&nbsp;:</para>

<screen><userinput remap="locale-full">make localedata/install-locales</userinput></screen>

    <para>Puis utilisez la commande <command>localedef</command> pour créer
    et installer les locales non listées dans le fichier
    <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> dans le cas
    peu probable où vous en auriez besoin.</para>
    <!-- The Live CD patches the localedata/SUPPORTED file instead of
   running localedef, the results are equivalent -->

  </sect2>

  <sect2 id="conf-glibc" role="configuration">
    <title>Configurer Glibc</title>

    <indexterm zone="conf-glibc">
      <primary sortas="e-/etc/nsswitch.conf">/etc/nsswitch.conf</primary>
    </indexterm>

    <indexterm zone="conf-glibc">
      <primary sortas="e-/etc/localtime">/etc/localtime</primary>
    </indexterm>

    <para>Le fichier <filename>/etc/nsswitch.conf</filename> doit être créé
    parce que, bien que Glibc en fournisse un par défaut lorsque ce fichier est
    manquant ou corrompu, les valeurs par défaut de Glibc ne fonctionnent pas bien
    dans un environnement en réseau. De plus, le fuseau horaire a besoin d'être
    configuré.</para>

    <para>Créez un nouveau fichier <filename>/etc/nsswitch.conf</filename> en
    lançant ce qui suit&nbsp;:</para>

<screen><userinput>cat &gt; /etc/nsswitch.conf &lt;&lt; "EOF"
<literal># Begin /etc/nsswitch.conf

passwd: files
group: files
shadow: files

hosts: files dns
networks: files

protocols: files
services: files
ethers: files
rpc: files

# End /etc/nsswitch.conf</literal>
EOF</userinput></screen>

    <para>Pour déterminer dans quel fuseau horaire vous vous situez, lancez le
    script suivant&nbsp;:</para>

<screen role="nodump"><userinput>tzselect</userinput></screen>

    <para>Après avoir répondu à quelques questions sur votre emplacement, le
    script affichera le nom du fuseau horaire (quelque chose comme
    <emphasis>America/Edmonton</emphasis>). Il y a aussi d'autres fuseaux
    horaires listés dans
    <filename class='directory'>/usr/share/zoneinfo</filename> comme
    <emphasis>Canada/Eastern</emphasis> ou <emphasis>EST5EDT</emphasis> qui ne
    sont pas identifiés par le script mais qui peuvent être utilisés.</para>

    <para>Puis créez le fichier <filename>/etc/localtime</filename> en lançant&nbsp;:</para>

<screen><userinput>cp -v --remove-destination /usr/share/zoneinfo/<replaceable>&lt;xxx&gt;</replaceable> \
    /etc/localtime</userinput></screen>

    <para>Remplacez <replaceable>&lt;xxx&gt;</replaceable> par le nom du fuseau horaire
    sélectionné (par exemple Canada/Eastern).</para>

    <variablelist>
      <title>Voici la signification de l'option de cp&nbsp;:</title>

      <varlistentry>
        <term><parameter>--remove-destination</parameter></term>
        <listitem>
          <para>Ceci est nécessaire pour forcer la suppression du lien
          symbolique déjà existant. La raison pour laquelle nous copions plutôt que de
          simplement créer un lien symbolique est de se couvrir de la situation où
          <filename class="directory">/usr</filename>
          serait une partition séparée. Ceci
          pourrait arriver, par exemple, en démarrant en mode
          utilisateur unique.</para>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

  <sect2 id="conf-ld" role="configuration">
    <title>Configurer le chargeur dynamique</title>

    <indexterm zone="conf-ld">
      <primary sortas="e-/etc/ld.so.conf">/etc/ld.so.conf</primary>
    </indexterm>

    <para>Par défaut, le chargeur dynamique
    (<filename class="libraryfile">/lib/ld-linux.so.2</filename>) cherche dans
    <filename class="directory">/lib</filename> et
    <filename class="directory">/usr/lib</filename> les bibliothèques
    partagées nécessaires aux programmes lors de leur exécution. Néanmoins, s'il existe des bibliothèques
    dans d'autres répertoires que
    <filename class="directory">/lib</filename> et
    <filename class="directory">/usr/lib</filename>, leur emplacement doit être
    ajouté dans le fichier <filename>/etc/ld.so.conf</filename> pour que le
    chargeur dynamique les trouve.
    <filename class="directory">/usr/local/lib</filename> et
    <filename class="directory">/opt/lib</filename> sont deux répertoires connus pour
    contenir des bibliothèques supplémentaires, donc ajoutez ces deux
    répertoires au chemin de recherche du chargeur dynamique.</para>

    <para>Créez un nouveau fichier <filename>/etc/ld.so.conf</filename>
    en lançant ce qui suit&nbsp;:</para>

<screen><userinput>cat &gt; /etc/ld.so.conf &lt;&lt; "EOF"
<literal># Begin /etc/ld.so.conf

/usr/local/lib
/opt/lib

# End /etc/ld.so.conf</literal>
EOF</userinput></screen>

  </sect2>

  <sect2 id="contents-glibc" role="content">
    <title>Contenu de Glibc</title>

    <segmentedlist>
      <segtitle>Programmes installés</segtitle>
      <segtitle>Bibliothèques installées</segtitle>
      <segtitle>Répertoires installés</segtitle>

      <seglistitem>
        <seg>catchsegv, gencat, getconf, getent, iconv, iconvconfig, ldconfig,
        ldd, lddlibc4, locale, localedef, mtrace, nscd, pcprofiledump,
        pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace,
        zdump et zic</seg>
        <seg>ld.so, libBrokenLocale.{a,so}, libSegFault.so, libanl.{a,so},
        libbsd-compat.a, libc.{a,so}, libc_nonshared.a, libcidn.so,
        libcrypt.{a,so}, libdl.{a,so}, libg.a, libieee.a, libm.{a,so},
        libmcheck.a, libmemusage.so, libnsl.{a,so}, libnss_compat.so,
        libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so,
        libnss_nisplus.so, libpcprofile.so, libpthread.{a,so},
        libpthread_nonshared.a, libresolv.{a,so}, librpcsvc.a, librt.{a,so},
        libthread_db.so et libutil.{a,so}</seg>
        <seg>/usr/include/arpa, /usr/include/bits, /usr/include/gnu,
        /usr/include/net, /usr/include/netash, /usr/include/netatalk,
        /usr/include/netax25, /usr/include/neteconet, /usr/include/netinet,
        /usr/include/netipx, /usr/include/netiucv, /usr/include/netpacket,
        /usr/include/netrom, /usr/include/netrose, /usr/include/nfs,
        /usr/include/protocols, /usr/include/rpc, /usr/include/rpcsvc,
        /usr/include/sys, /usr/lib/gconv, /usr/lib/glibc, /usr/lib/locale,
        /usr/share/i18n, /usr/share/zoneinfo</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Descriptions courtes</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="catchsegv">
        <term><command>catchsegv</command></term>
        <listitem>
          <para>Peut être utilisé pour créer une trace de la pile lorsqu'un programme
          s'arrête avec une erreur de segmentation</para>
          <indexterm zone="ch-system-glibc catchsegv">
            <primary sortas="b-catchsegv">catchsegv</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gencat">
        <term><command>gencat</command></term>
        <listitem>
          <para>Génère des catalogues de messages</para>
          <indexterm zone="ch-system-glibc gencat">
            <primary sortas="b-gencat">gencat</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="getconf">
        <term><command>getconf</command></term>
        <listitem>
          <para>Affiche les valeurs de configuration du système pour les variables
          spécifiques du système de fichiers</para>
          <indexterm zone="ch-system-glibc getconf">
            <primary sortas="b-getconf">getconf</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="getent">
        <term><command>getent</command></term>
        <listitem>
          <para>Récupère les entrées à partir d'une base de données administrative</para>
          <indexterm zone="ch-system-glibc getent">
            <primary sortas="b-getent">getent</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="iconv">
        <term><command>iconv</command></term>
        <listitem>
          <para>Réalise une conversion de l'ensemble des caractères</para>
          <indexterm zone="ch-system-glibc iconv">
            <primary sortas="b-iconv">iconv</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="iconvconfig">
        <term><command>iconvconfig</command></term>
        <listitem>
          <para>Crée des fichiers de configuration pour le module <command>iconv</command></para>
          <indexterm zone="ch-system-glibc iconvconfig">
            <primary sortas="b-iconvconfig">iconvconfig</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="ldconfig">
        <term><command>ldconfig</command></term>
        <listitem>
          <para>Configure les liens du chargeur dynamique</para>
          <indexterm zone="ch-system-glibc ldconfig">
            <primary sortas="b-ldconfig">ldconfig</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="ldd">
        <term><command>ldd</command></term>
        <listitem>
          <para>Indique les bibliothèques partagées requises pour chaque programme ou
          bibliothèque partagée</para>
          <indexterm zone="ch-system-glibc ldd">
            <primary sortas="b-ldd">ldd</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="lddlibc4">
        <term><command>lddlibc4</command></term>
        <listitem>
          <para>Assiste <command>ldd</command> avec des fichiers objets</para>
          <indexterm zone="ch-system-glibc lddlibc4">
            <primary sortas="b-lddlibc4">lddlibc4</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="locale">
        <term><command>locale</command></term>
        <listitem>
          <para>Affiche diverses informations sur la locale courante</para>
          <indexterm zone="ch-system-glibc locale">
            <primary sortas="b-locale">locale</primary>
          </indexterm>
        </listitem>
      </varlistentry>
     
      <varlistentry id="localedef">
        <term><command>localedef</command></term>
        <listitem>
           <para>Compile les spécifications de locale</para>
          <indexterm zone="ch-system-glibc localedef">
            <primary sortas="b-localedef">localedef</primary>
          </indexterm>
        </listitem>
      </varlistentry>
     
      <varlistentry id="mtrace">
        <term><command>mtrace</command></term>
        <listitem>
          <para>Lit et interprète un fichier de trace mémoire et affiche un
          résumé dans un format lisible par un humain</para>
          <indexterm zone="ch-system-glibc mtrace">
            <primary sortas="b-mtrace">mtrace</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="nscd">
        <term><command>nscd</command></term>
        <listitem>
          <para>Un démon pour les services de noms fournissant un cache pour les
          requêtes les plus communes</para>
          <indexterm zone="ch-system-glibc nscd">
            <primary sortas="b-nscd">nscd</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pcprofiledump">
        <term><command>pcprofiledump</command></term>
        <listitem>
          <para>Affiche des informations générées par un profilage du PC</para>
          <indexterm zone="ch-system-glibc pcprofiledump">
            <primary sortas="b-pcprofiledump">pcprofiledump</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pt_chown">
        <term><command>pt_chown</command></term>
        <listitem>
          <para>Un programme d'aide pour que <command>grantpt</command>
          initialise les droits des propriétaires, groupes et autres d'un
          pseudo-terminal esclave</para>
          <indexterm zone="ch-system-glibc pt_chown">
            <primary sortas="b-pt_chown">pt_chown</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="rpcgen">
        <term><command>rpcgen</command></term>
        <listitem>
          <para>Génère du code C pour implémenter le protocole RPC (<foreignphrase>Remote
          Procedure Call</foreignphrase>)</para>
          <indexterm zone="ch-system-glibc rpcgen">
            <primary sortas="b-rpcgen">rpcgen</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="rpcinfo">
        <term><command>rpcinfo</command></term>
        <listitem>
          <para>Fait un appel RPC à un serveur RPC</para>
          <indexterm zone="ch-system-glibc rpcinfo">
            <primary sortas="b-rpcinfo">rpcinfo</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="sln">
        <term><command>sln</command></term>
        <listitem>
          <para>Un programme <command>ln</command> lié statiquement</para>
          <indexterm zone="ch-system-glibc sln">
            <primary sortas="b-sln">sln</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="sprof">
        <term><command>sprof</command></term>
        <listitem>
          <para>Lit et affiche les données de profilage des objets partagés</para>
          <indexterm zone="ch-system-glibc sprof">
            <primary sortas="b-sprof">sprof</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="tzselect">
        <term><command>tzselect</command></term>
        <listitem>
          <para>Demande à l'utilisateur l'emplacement géographique du système et
          donne la description du fuseau horaire correspondante</para>
          <indexterm zone="ch-system-glibc tzselect">
            <primary sortas="b-tzselect">tzselect</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="xtrace">
        <term><command>xtrace</command></term>
        <listitem>
          <para>Trace l'exécution d'un programme en affichant la fonction en cours
          d'exécution</para>
          <indexterm zone="ch-system-glibc xtrace">
            <primary sortas="b-xtrace">xtrace</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zdump">
        <term><command>zdump</command></term>
        <listitem>
          <para>Afficheur de fuseau horaire</para>
          <indexterm zone="ch-system-glibc zdump">
            <primary sortas="b-zdump">zdump</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="zic">
        <term><command>zic</command></term>
        <listitem>
          <para>Compilateur de fuseau horaire</para>
          <indexterm zone="ch-system-glibc zic">
            <primary sortas="b-zic">zic</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="ld.so">
        <term><filename class="libraryfile">ld.so</filename></term>
        <listitem>
          <para>Le programme d'aide des bibliothèques partagées exécutables</para>
          <indexterm zone="ch-system-glibc ld.so">
            <primary sortas="c-ld.so">ld.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libBrokenLocale">
        <term><filename class="libraryfile">libBrokenLocale</filename></term>
        <listitem>
          <para>Utilisé en interne par Glibc comme une arme grossière pour
          résoudre les locales cassées (comme certaines applications Motif).
          Voir les commentaires dans
          <filename>glibc-&glibc-version;/locale/broken_cur_max.c</filename>
          pour plus d'informations</para>
          <indexterm zone="ch-system-glibc libBrokenLocale">
            <primary sortas="c-libBrokenLocale">libBrokenLocale</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libSegFault">
        <term><filename class="libraryfile">libSegFault</filename></term>
        <listitem>
          <para>Un gestionnaire de signaux d'erreurs de segmentation, utilisé
          par <command>catchsegv</command></para>
          <indexterm zone="ch-system-glibc libSegFault">
            <primary sortas="c-libSegFault">libSegFault</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libanl">
        <term><filename class="libraryfile">libanl</filename></term>
        <listitem>
          <para>Une bibliothèque asynchrone de recherche de noms</para>
          <indexterm zone="ch-system-glibc libanl">
            <primary sortas="c-libanl">libanl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libbsd-compat">
        <term><filename class="libraryfile">libbsd-compat</filename></term>
        <listitem>
          <para>Fournit la portabilité nécessaire pour faire fonctionner certains
          programmes BSD (Berkeley Software Distribution) sous Linux</para>
          <indexterm zone="ch-system-glibc libbsd-compat">
            <primary sortas="c-libbsd-compat">libbsd-compat</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libc">
        <term><filename class="libraryfile">libc</filename></term>
        <listitem>
          <para>La principale bibliothèque C</para>
          <indexterm zone="ch-system-glibc libc">
            <primary sortas="c-libc">libc</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libcidn">
        <term><filename class="libraryfile">libcidn</filename></term>
        <listitem>
          <para>Utilisé en interne par Glibc pour la gestion des noms de
          domaine internationalisés dans la fonction
          <function>getaddrinfo()</function></para>
          <indexterm zone="ch-system-glibc libcidn">
            <primary sortas="c-libcidn">libcidn</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libcrypt">
        <term><filename class="libraryfile">libcrypt</filename></term>
        <listitem>
          <para>La bibliothèque de chiffrement</para>
          <indexterm zone="ch-system-glibc libcrypt">
            <primary sortas="c-libcrypt">libcrypt</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libdl">
        <term><filename class="libraryfile">libdl</filename></term>
        <listitem>
          <para>La bibliothèque de l'interface du chargeur dynamique</para>
          <indexterm zone="ch-system-glibc libdl">
            <primary sortas="c-libdl">libdl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libg">
        <term><filename class="libraryfile">libg</filename></term>
        <listitem>
          <para>Bibliothèque factice ne contenant aucune fonction.
          C'était auparavant une bibliothèque d'exécution pour
          <command>g++</command></para>
          <indexterm zone="ch-system-glibc libg">
            <primary sortas="c-libg">libg</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libieee">
        <term><filename class="libraryfile">libieee</filename></term>
        <listitem>
          <para>Un lien vers ce module provoque volontairement des règles de
          gestion d'erreur pour les fonctions math telles que définies par les
          <foreignphrase>Institute of Electrical and Electronic
          Engineers</foreignphrase> (IEEE). Le paramètre par défaut est la gestion de l'erreur
          POSIX.1</para>
          <indexterm zone="ch-system-glibc libieee">
            <primary sortas="c-libieee">libieee</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libm">
        <term><filename class="libraryfile">libm</filename></term>
        <listitem>
          <para>La bibliothèque mathématique</para>
          <indexterm zone="ch-system-glibc libm">
            <primary sortas="c-libm">libm</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libmcheck">
        <term><filename class="libraryfile">libmcheck</filename></term>
        <listitem>
          <para>Active le test d'allocation de mémoire lorsqu'on y relie
          quelque chose</para>
          <indexterm zone="ch-system-glibc libmcheck">
            <primary sortas="c-libmcheck">libmcheck</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libmemusage">
        <term><filename class="libraryfile">libmemusage</filename></term>
        <listitem>
          <para>Utilisé par <command>memusage</command> pour aider à la récupération
          d'informations sur l'utilisation de la mémoire par un programme</para>
          <indexterm zone="ch-system-glibc libmemusage">
            <primary sortas="c-libmemusage">libmemusage</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libnsl">
        <term><filename class="libraryfile">libnsl</filename></term>
        <listitem>
          <para>La bibliothèque de services réseau</para>
          <indexterm zone="ch-system-glibc libnsl">
            <primary sortas="c-libnsl">libnsl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libnss">
        <term><filename class="libraryfile">libnss</filename></term>
        <listitem>
          <para>Les bibliothèques <quote>Name Service Switch</quote>, contenant
          des fonctions de résolution de noms d'hôtes, de noms d'utilisateurs,
          de noms de groupes, d'alias, de services, de protocoles et ainsi de
          suite</para>
          <indexterm zone="ch-system-glibc libnss">
            <primary sortas="c-libnss">libnss</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libpcprofile">
        <term><filename class="libraryfile">libpcprofile</filename></term>
        <listitem>
          <para>Contient des fonctions de profilage utilisées pour tracer le temps CPU
          dépensé sur les lignes de code source</para>
          <indexterm zone="ch-system-glibc libpcprofile">
            <primary sortas="c-libpcprofile">libpcprofile</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libpthread">
        <term><filename class="libraryfile">libpthread</filename></term>
        <listitem>
          <para>La bibliothèque threads POSIX</para>
          <indexterm zone="ch-system-glibc libpthread">
            <primary sortas="c-libpthread">libpthread</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libresolv">
        <term><filename class="libraryfile">libresolv</filename></term>
        <listitem>
          <para>Contient des fonctions de création, d'envoi et d'interprétation
          de paquets pour les serveurs de noms de domaine Internet</para>
          <indexterm zone="ch-system-glibc libresolv">
            <primary sortas="c-libresolv">libresolv</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="librpcsvc">
        <term><filename class="libraryfile">librpcsvc</filename></term>
        <listitem>
          <para>Contient des fonctions apportant différents services RPC</para>
          <indexterm zone="ch-system-glibc librpcsvc">
            <primary sortas="c-librpcsvc">librpcsvc</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="librt">
        <term><filename class="libraryfile">librt</filename></term>
        <listitem>
          <para>Contient des fonctions fournissant la plupart des interfaces spécifiées
          par l'extension temps réel de POSIX.1b</para>
          <indexterm zone="ch-system-glibc librt">
            <primary sortas="c-librt">librt</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libthread_db">
        <term><filename class="libraryfile">libthread_db</filename></term>
        <listitem>
          <para>Contient des fonctions utiles pour construire des débogueurs de
          programmes multi-threads</para>
          <indexterm zone="ch-system-glibc libthread_db">
            <primary sortas="c-libthread_db">libthread_db</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libutil">
        <term><filename class="libraryfile">libutil</filename></term>
        <listitem>
          <para>Contient du code pour les fonctions <quote>standard</quote>
          utilisées par de nombreux outils Unix</para>
          <indexterm zone="ch-system-glibc libutil">
            <primary sortas="c-libutil">libutil</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>