<!doctype linuxdoc system>

<article>

<title>HOWTO Glibc 2
<author>Eric Green, <tt/ejg3@cornell.edu/
<date>v1.5, 8 février 1998
<abstract>
<nidx>Bibliothèque C  GNU (voir glibc)</nidx> <nidx>glibc</nidx> (Maintenance
de la version française par  Géraud Canet, <tt/canet@labri.u-bordeaux.fr/) Le
HOWTO Glibc 2 couvre l'installation et l'utilisation de la bibliothèque C GNU
version 2 (libc 6) sur les systèmes Linux.
</abstract>

<toc>


<sect>Introduction
<p>

<sect1>Note du traducteur
<p>

Ce document  a été  traduit  et maintenu jusqu'à  la  version 1.4 par Olivier
Tharan, dont je ne fais que reprendre modestement le travail. 
		    
Le document est  truffé  de signes  "cabalistiques"  comme des dièse et   des
pourcent,   dont    la    représentation    en     SGML   est  respectivement
<tt>&amp;num;</tt> et <tt>&amp;percnt;</tt> ;  le source LaTeX généré par les
outils  de conversion SGML introduit le  signe antislash devant ces signes et
reste dans la  version PostScript de ce document.  Les données d'exemple sont
donc erronées, mais vous pouvez vous rapporter  à la version HTML du document
qui n'a pas ces erreurs. La version d'origine connait les mêmes problèmes.

<sect1>À propos de glibc 2
<p>
<nidx>glibc!vue d'ensemble</nidx>

Glibc 2 est la toute dernière version de la bibliothèque C du
GNU. Elle fonctionne pour l'instant sans modifications sur les
systèmes GNU Hurd, et les systèmes Linux sur architectures i386, m68k
et alpha. Les adaptations pour Linux PowerPC, MIPS, Sparc, Sparc 64 et
ARM seront dans la version 2.1. À l'avenir, d'autres architectures et
systèmes d'exploitation seront supportés.

Sur Linux, glibc 2 est utilisée comme libc avec un numéro majeur de
version égal à 6, le successeur de la libc 5 pour Linux. Elle est
destinée par les développeurs de la libc Linux à remplacer en fin de
compte la libc 5. À l'heure de la version 2.0.6, on considère que
glibc est de qualité suffisante pour être utilisée en production. La
version 2.1 (à venir dans un futur proche) sera prête pour une
utilisation normale avec l'ajout de plus de portages et de
possibilités.

Il y a trois extensions disponibles en option sur la glibc 2 :

<descrip>
<tag/Crypt/Le paquetage UFC-crypt pour le cryptage des données. Il est
disponible séparément à cause de restrictions à l'exportation.
<tag/LinuxThreads/Une mise en oeuvre de l'interface Posix 1003.1c &dquot;pthread&dquot;.
<tag/Locale data/Contient les données nécessaires à la construction
des fichiers de données locale pour utiliser les possibilités
d'internationalisation de la glibc.
</descrip>

Les extensions crypt et LinuxThreads sont fortement recommandées... Ne
pas les utiliser risque de les rendre incompatibles avec les
bibliothèques d'autres systèmes. (Si vous ne voulez pas les utiliser,
vous devez ajouter l'option --disable-sanity-checks quand vous lancez
configure.)

<sect1>À propos de ce document
<p>

Ce HOWTO couvre l'installation de la bibliothèque glibc 2 sur un
système Linux existant. Il est fait pour les utilisateurs de systèmes
à base de processeurs Intel qui utilisent pour l'instant la libc 5,
mais les utilisateurs d'autres systèmes et de bibliothèques similaires
(comme la glibc 1) devraient pouvoir utiliser ces informations en
substituant les noms de fichiers et d'architecture adéquats aux
endroits appropriés.

La copie la plus récente de ce HOWTO fait partie du <url
url="http://sunsite.unc.edu/LDP" name="Linux Documentation Project">,
ou bien vous en trouverez une version à <url
url="http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.html">.

<sect1>Changements récents dans ce document
<p>

Différences entre la version 1.5 et 1.4 :

<itemize>
<item>Indexage ajouté par Ed Bailey.
<item>Changement de mon adresse électronique.
</itemize>

Différences entre la version 1.4 et 1.3 :

<itemize>
<item>Changé l'état courant d'expérimental à production.
<item>Mis à jour la liste des portages en développement.
<item>Mis à jour la dernière version en 2.0.6.
</itemize>

<sect>Choix de la méthode d'installation
<p>
<nidx>glibc!installation</nidx>

Il y a plusieurs manières d'installer glibc. Vous pouvez installer les
bibliothèques   pour  les    tester,  en  continuant   d'utiliser  les
bibliothèques existantes par défaut, tout en vous permettant d'essayer
les nouvelles bibliothèques  par l'utilisation d'options différentes à
la   compilation de votre programme.  L'installation  de cette manière
facilite aussi la désinstallation  de glibc dans le  futur (cependant,
tout programme  lié avec  la glibc  ne fonctionnera  plus une fois que
vous aurez enlevé les bibliothèques). L'utilisation de glibc comme une
bibliothèque de test demande  que  vous compiliez les  bibliothèques à
partir des   sources.  Il  n'y  a pas  de  distribution   binaire pour
l'installation de cette  manière. Cette installation  est décrite dans
la       section    <ref  id="test-install"   name="installation comme
bibliothèque de test">.

L'autre manière  de   l'installer,   décrite dans ce     document, est
d'utiliser  glibc  comme bibliothèque  principale.  Tous les  nouveaux
programmes que vous compilerez sur   votre système utiliseront  glibc,
bien que  vous puissiez toujours lier des  programmes  à vos anciennes
bibliothèques par des options de compilation différentes. Vous pouvez,
soit installer les bibliothèques  à partir de binaires,  soit compiler
la  bibliothèque vous-même.    Si vous  voulez  changer les    options
d'optimisation   ou de configuration,  ou  utiliser  une extension qui
n'est  pas distribuée  en  paquetage binaire,  vous devrez obtenir  la
distribution  de sources    et  compiler  vous-même.  Cette  procédure
d'installation est décrite dans  la section <ref  id="primary-install"
name="installation comme bibliothèque C principale">.

Frodo Looijaard décrit encore une autre  manière d'installer glibc. Sa
méthode implique l'installation de glibc comme bibliothèque secondaire
et la mise en place d'un compilateur croisé (<it/cross-compiler/) pour
compiler  en   utilisant  glibc.  Pour   cette   méthode, la procédure
d'installation est plus   compliquée que  l'installation en tant   que
bibliothèque de  test  décrite dans  ce   document, mais facilite   la
compilation  et l'édition   de  liens avec glibc.    Cette méthode est
décrite            dans       son            document             <url
url="http://huizen.dds.nl/~frodol/glibc/" name="Installer  glibc-2 sur
Linux"> (en anglais).

Si vous utilisez en  ce moment un système Debian  1.3 et ne voulez pas
le mettre à   jour en installant la   version instable de Debian  pour
utiliser             glibc,                    le                 <url
url="http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html"
name="HOWTO libc5 vers libc6 Debian"> décrit la manière d'utiliser les
paquetages Debian pour mettre votre système à jour.

Si vous installez glibc 2 sur un  système important, vous voudrez sans
doute utiliser l'installation de test. Même  s'il n'y a pas de bogues,
certains programmes devront être modifiés avant compilation à cause de
changements dans les prototypes de fonctions et les types de données.


<sect>Obtenir la bibliothèque<label id="getting">
<p>
<nidx>glibc!obtention</nidx>

La glibc 2 contient le paquetage glibc et trois paquetages
supplémentaires optionnels, LinuxThreads, Locale et Crypt. Vous pouvez
trouver les sources à 

<itemize>
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.6.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-linuxthreads-2.0.6.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-localedata-2.0.6.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.6.tar.gz">
</itemize>

Il vous faudra à peu près 150 Mo d'espace disque pour la compilation
complète et l'installation. L'installation binaire de base du
paquetage de la bibliothèque prend aux alentours de 50 Mo.

Les paquetages binaires pour la version 2.0.6 ne sont pas
disponibles. Les paquetages binaires pour la version 2.0.4 sont
disponibles pour i386 et m68k, et la version 2.0.1 pour les alpha,
vous les trouverez à

<itemize>
<item>Intel x86:
<itemize>
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4.bin.i386.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4.bin.i386.tar.gz">
</itemize>
<item>Alpha:
<itemize>
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.1.bin.alpha-linux.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.1.bin.alpha-linux.tar.gz">
</itemize>
<item>m68k:
<itemize>
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4-m68k-linux.bin.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4-m68k-linux.bin.tar.gz">
</itemize>
</itemize>

Il y a des restrictions à l'exportation de l'extension crypt. Les
utilisateurs non-ressortissants des États-Unis devraient l'obtenir à
<url url="ftp://ftp.ifi.uio.no/pub/gnu">.

Si vous utilisez une distribution Red Hat, vous pouvez obtenir les
RPMs pour la glibc 2 à <url
url="ftp://ftp.redhat.com/pub/redhat/">. La glibc 2 est la
bibliothèque C principale de la nouvelle distribution Red Hat 5.0.

Si vous utilisez une distribution Debian, vous pouvez obtenir les
paquetages pour glibc 2 à <url
url="ftp://ftp.debian.org/debian/dists/unstable/main/">. Les
fichiers sont nommés libc6. Glibc 2 fait maintenant partie du
paquetage de base de la version hamm de Debian, et sera la libc
principale quand Debian 2.0 sortira.


<sect>Installation comme bibliothèque de test<label id="test-install">
<p>
<nidx>glibc!test</nidx>

Cette section couvre l'installation de glibc 2 comme bibliothèque de
test. Tout ce que vous compilerez sera lié à vos bibliothèques
existantes sauf si vous donnez des paramètres supplémentaires pour les
lier aux nouvelles bibliothèques. Il semble que les chemins d'accès
soient compilés dans un certain nombre de fichiers, et vous devrez
probablement installer la bibliothèque à partir des sources.

<sect1>Compilation et installation
<p>

<sect2>Éléments requis
<p>
<nidx>glibc!test!éléments requis</nidx>

<itemize>
<item>À peu pres 150 Mo d'espace disque libre
<item>GNU make 3.75
<item>gcc &gt;= 2.7.2 (ou mieux, 2.7.2.1)
<item>binutils 2.8.1 (pour les alpha vous devez utiliser une mise à
jour temporaire ou <it/snapshot/)
<item>bash 2.0
<item>autoconf 2.12 (si vous changez configure.in)
<item>texinfo 3.11
</itemize>

Sur un i586 à 133 MHz avec 64 Mo de RAM, il faut environ trois heures
pour compiler les bibliothèques complètes avec les extensions. Sur un
i686 à 200 MHz chargé, il faut environ une demi-heure.

<sect2>Extraction des sources
<p>
<nidx>glibc!test!sources, extraction</nidx>

Vous devez extraire les sources des archives pour pouvoir les
compiler. La meilleure façon de procéder est de faire ainsi :

 <tscreen><verb>
 tar xzf glibc-2.0.6.tar.gz
 cd glibc-2.0.6
 tar xzf ../glibc-linuxthreads-2.0.6.tar.gz
 tar xzf ../glibc-crypt-2.0.6.tar.gz
 tar xzf ../glibc-localedata-2.0.6.tar.gz
 </verb></tscreen>

Ceci mettra les répertoires linuxthreads, crypt et localedate dans le
répertoire glibc-2.0.6 où configure pourra trouver ces extensions.

<sect2>Configuration
<p>
<nidx>glibc!test!configuration</nidx>

Dans le répertoire glibc-2.0.6, créez un répertoire appelé compile, et
déplacez-vous dedans.  Tout  le travail  doit   être effectué dans  ce
répertoire,  ce qui simplifiera le  nettoyage  (les développeurs ne se
sont pas très occupés de rendre 'make clean' parfait pour l'instant).

 <tscreen><verb>
 mkdir compile
 cd compile
 </verb></tscreen>

Lancez <tt>../configure</tt>. Pour utiliser les paquetages
d'extension, vous devez les spécifier avec --enable-add-ons, comme
--enable-add-ons=linuxthreads,crypt,localedata. Vous devez aussi
choisir un répertoire de destination pour
l'installation. /usr/i486-linuxglibc2 est un bon choix. La ligne de
commande de configure pour ceci serait :

 <tscreen><verb>
 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr/i486-linuxglibc2
 </verb></tscreen>

<sect2>Compilation et installation
<p>
<nidx>glibc!test!compilation</nidx>
<nidx>glibc!test!installation</nidx>

Pour compiler et vérifier, lancez :

 <tscreen><verb>
 make
 make check
 </verb></tscreen>

Si le 'make check' réussit, installez la bibliothèque :

 <tscreen><verb>
 make install
 </verb></tscreen>

<sect1>Mise à jour du chargeur de liens dynamique
<p>
<nidx>glibc!test!chargeur de liens dynamique, mise à jour</nidx>
<nidx>glibc!test!ld.so.conf, mise à jour</nidx>

<enum>
<item>Créez un lien à partir du nouvel <tt>ld.so</tt> vers <tt>/lib/ld-linux.so.2</tt> :
 <tscreen><verb>
 ln -s /usr/i486-linuxglibc2/lib/ld-linux.so.2 /lib/ld-linux.so.2
 </verb></tscreen>

C'est la seule bibliothèque dont l'emplacement est fixé une fois qu'un
programme est lié, et l'utilisation d'un lien dans <tt>/lib</tt> facilitera le
passage à glibc en tant que bibliothèque C principale quand la version
stable sortira.

<item>Éditez <tt>/etc/ld.so.conf</tt>. Vous devez ajouter le chemin vers le
répertoire lib dans lequel se trouvent les nouvelles bibliothèques à
la fin du fichier, qui sera <tt>&lt;préfixe&gt;/lib</tt>, comme
<tt>/usr/i486-linuxglibc2/lib</tt> dans l'exemple ci-dessus. Après avoir
modifié <tt>/etc/ld.so.conf</tt>, lancez

 <tscreen><verb>
 ldconfig -v
 </verb></tscreen>
</enum>

<sect1>Configuration pour gcc
<p>
<nidx>glibc!test!configuration de gcc</nidx>

La dernière étape de l'installation est la mise à jour de
<tt>/usr/lib/gcc-lib</tt> pour que gcc sache comment utiliser les nouvelles
bibliothèques. D'abord vous devez dupliquer la configuration
existante. Pour savoir quelle est la configuration en cours, utilisez
l'option -v de gcc :

 <tscreen><verb>
 &percnt; gcc -v
 Reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
 gcc version 2.7.2.2
 </verb></tscreen>

Dans ce cas, i486-unknown-linux est le système, et 2.7.2.2 est la
version. Vous devez copier <tt>/usr/lib/gcc-lib/&lt;système&gt;</tt>
vers le nouveau répertoire système de test :

 <tscreen><verb>
 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxglibc2
 </verb></tscreen>

Allez dans le nouveau répertoire système de test et dans le répertoire
version

 <tscreen><verb>
 cd /usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2
 </verb></tscreen>

et éditez le fichier <tt>specs</tt> se trouvant dans ce
répertoire. Dans ce fichier, changez <tt>/lib/ld-linux.so.1</tt> en
<tt>/lib/ld-linux.so.2</tt>. Vous devrez aussi enlever toutes les
expressions <tt/&percnt;{...:-lgmon}/ du fichier, puisque glibc
n'utilise pas la bibliothèque gmon pour les optimisations. Vous
trouverez un fichier specs d'exemple dans la section <ref id="specs"
name="Fichiers specs d'exemple">.

<sect1>Mise à jour des liens des fichiers d'en-tête
<p>
<nidx>glibc!test!fichiers d'en-tête, mise à jour</nidx>

Vous devez créer des liens dans votre nouveau répertoire d'en-têtes
vers d'autres répertoires d'en-têtes :

 <tscreen><verb>
 cd /usr/i486-linuxglibc2/include
 ln -s /usr/src/linux/include/linux
 ln -s /usr/src/linux/include/asm
 ln -s /usr/X11R6/include/X11
 </verb></tscreen>

Vous avez peut-être d'autres bibliothèques comme ncurses qui
nécessitent d'avoir leurs fichiers d'en-têtes dans ce répertoire. Vous
devriez copier ou faire un lien vers ces fichiers depuis
<tt>/usr/include</tt>. (Certaines bibliothèques auront besoin d'être
recompilées avec glibc2 pour pouvoir fonctionner avec glibc2. Dans ces
cas, compilez simplement et installez les paquetages dans
<tt>/usr/i486-linuxglibc2</tt>.)

<sect1>Test de l'installation
<p>
<nidx>glibc!test</nidx>

Pour tester l'installation, créez le programme suivant dans un fichier
appelé glibc.c :

 <tscreen><verb>
 &num;include &lt;stdio.h&gt;

 main()
 {
     printf("hello world!\n");
 }
 </verb></tscreen>

et compilez-le avec les options &dquot;-b &lt;répertoire d'installation&gt; -nostdinc -I&lt;répertoire d'installation&gt;/include -I/usr/lib/gcc-lib/&lt;nouveau système&gt/&lt;version de gcc&gt;/include&dquot; :

 <tscreen><verb>
 &percnt; gcc -b i486-linuxglibc2 -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include glibc.c -o glibc
 </verb></tscreen>

Utilisez ldd pour vérifier que le programme a été lié avec glibc2, et
non avec votre ancienne libc :

 <tscreen><verb>
 &percnt; ldd glibc
 libc.so.6 => /usr/i486-linuxglibc2/lib/libc-2.0.6.so (0x4000d000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
 </verb></tscreen>

S'il compile, que les liens sont effectués et qu'il génère
&dquot;hello world!&dquot; quand vous le lancez, l'installation a
fonctionné.


<sect>Installation comme bibliothèque C principale<label id="primary-install">
<p>
<nidx>glibc!installation</nidx>

Cette section couvre l'installation de glibc2 comme bibliothèque C
principale. Tous les nouveaux programmes que vous compilerez seront
liés avec cette bibliothèque, sauf si vous utilisez des options de
compilation spéciales pour le lier avec une autre version.

Si  vous utilisez Redhat ou Debian  et avez chargé  les fichier rpm ou
deb  adéquats, voyez    les  instructions  d'installation   Redhat  ou
Debian. Vous pouvez alors sauter cette section.


<sect1>Construction de la bibliothèque à partir des sources<label id="compiling">
<p>
<nidx>glibc!installation!compilation</nidx>

Cette section explique comment compiler glibc 2 et ses extensions à
partir des sources. Vous devez compiler la bibliothèque si vous voulez
changer les options d'optimisation ou de configuration ou utiliser un
paquetage pour lequel vous n'avez pas de binaire.

<sect2>Éléments requis
<p>
<nidx>glibc!installation!éléments requis</nidx>

<itemize>
<item>Environ 150 Mo d'espace disque libre
<item>GNU make 3.75
<item>gcc &gt;= 2.7.2 (ou mieux, 2.7.2.1)
<item>binutils 2.8.1 (pour les alpha vous aurez besoin d'une version 'snapshot')
<item>bash 2.0
<item>autoconf 2.12 (si vous changez configure.in)
<item>texinfo 3.11
</itemize>

Sur un i586 à 133 MHz avec 64 Mo de RAM, il faut environ trois heures
pour compiler toutes les bibliothèques avec les extensions. Sur un
i686 à 200 MHz chargé, il faut environ une demi-heure.


<sect2>Extraction des sources
<p>
<nidx>glibc!installation!sources, extraction</nidx>

Vous devez extraire les sources des archives pour compiler. La
meilleure façon de le faire est ainsi :

 <tscreen><verb>
 tar xzf glibc-2.0.6.tar.gz
 cd glibc-2.0.6
 tar xzf ../glibc-linuxthreads-2.0.6.tar.gz
 tar xzf ../glibc-crypt-2.0.6.tar.gz
 tar xzf ../glibc-localedata-2.0.6.tar.gz
 </verb></tscreen>

Ceci mettra les répertoires linuxthreads, crypt et localedata dans le
répertoire glibc-2.0.6 où configure pourra trouver ces extensions.

<sect2>Configuration
<p>
<nidx>glibc!installation!configuration</nidx>

Dans   le répertoire <tt>glibc-2.0.6</tt>,  créez  un répertoire nommé
compile, et  allez   dedans.  Tout  le  travail   sera fait   dans  ce
répertoire, ce qui simplifiera le   nettoyage (les développeurs ne  se
sont pas vraiment soucié du 'make clean' pour l'instant).

<tscreen><verb>
mkdir compile
cd compile
</verb></tscreen>

Lancez <tt>../configure</tt>. Pour utiliser les paquetages supplémentaires,
vous devez les spécifier avec --enable-add-ons, comme
--enable-add-ons=linuxthreads,crypt,localedata. Vous devrez aussi
sûrement spécifier les chemins où elle sera installée. Pour coller aux
distributions Linux normales, spécifiez --prefix=/usr. (Quand on
spécifie le préfixe <tt>/usr</tt> sur un système Linux, configure sait ajuster
les autres chemins pour placer libc.so et d'autres bibliothèques
importantes dans <tt>/lib</tt>.) La ligne de commande complète de configure
serait :

<tscreen><verb>
 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr
</verb></tscreen>

<sect2>Compilation
<p>
<nidx>glibc!installation!compilation</nidx>

Pour compiler et vérifier, lancez :

 <tscreen><verb>
 make
 make check
 </verb></tscreen>


<sect1>Préparation à l'installation
<p>
<nidx>glibc!installation!preparation pour</nidx>

Vous devez maintenant déplacer certains fichiers pour vous préparer à
l'arrivée de la nouvelle bibliothèque, que vous l'installiez à partir
des sources ou de binaires. Tous les nouveaux programmes compilés
seront liés à glibc, mais les vieux programmes qui ne sont pas liés en
statique dépendront encore de libc 5, et vous ne pouvez donc pas
écraser l'ancienne version.

<enum>
<item>Créez un nouveau répertoire pour y mettre les anciens fichiers :
 <tscreen><verb>
 mkdir -p /usr/i486-linuxlibc5/lib
 </verb></tscreen>

<item>Les vieux fichiers d'en-tête doivent être évacués de
<tt>/usr/include</tt> :
 <tscreen><verb>
 mv /usr/include /usr/i486-linuxlibc5/include
 </verb></tscreen>

<item>Créez un nouveau répertoire d'en-têtes et activez les liens vers
d'autres en-têtes :
 <tscreen><verb>
 mkdir /usr/include

 ln -s /usr/src/linux/include/linux /usr/include/linux
 ln -s /usr/src/linux/include/asm /usr/include/asm
 ln -s /usr/X11R6/include/X11 /usr/include/X11
 ln -s /usr/lib/g++-include /usr/include/g++
 </verb></tscreen>

Les liens devront être ajustés au besoin selon votre
distribution. Rien que la Slackware installe les en-têtes g++ dans
<tt>/usr/local/g++-include</tt>, alors que Debian met les en-têtes
dans <tt>/usr/include/g++</tt>, et fait un lien de
<tt>/usr/lib/g++-include</tt> vers <tt>/usr/include/g++</tt>. Dans
d'autres cas, vous voudrez sûrement déplacer le répertoire d'en-têtes
g++ d'origine à son ancien emplacement <tt>/usr/include</tt>.

<item>Remettre des fichiers d'en-têtes et des liens
supplémentaires. Certaines bibliothèques non standards comme ncurses
installent des fichiers dans <tt>/usr/include</tt> ou installent un
lien vers leur répertoire d'en-tête dans <tt>/usr/include</tt>. Ces
fichiers et liens doivent être remis en place pour pouvoir utiliser
les bibliothèques supplémentaires correctement.

<item>Ajoutez le nouveau répertoire de bibliothèque (comme
<tt>/usr/i486-linuxlibc5/lib</tt>) <em>en haut</em> de votre fichier
<tt>/etc/ld.so.conf</tt>. Vous devriez avoir ld.so-1.8.8 ou mieux
installé pour éviter d'avoir des messages bizarres une fois que glibc
sera installée.

<item>Déplacez ou copiez toutes les anciennes bibliothèques C dans le
nouveau répertoire.

 <tscreen><verb>
 mv /usr/lib/libbsd.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libc.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libgmon.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libm.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libmcheck.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libc.so /usr/i486-linuxlibc5/lib
 mv /usr/lib/libm.so /usr/i486-linuxlibc5/lib
 cp /lib/libm.so.5.* /usr/i486-linuxlibc5/lib
 cp /lib/libc.so.5.* /usr/i486-linuxlibc5/lib
 </verb></tscreen>

<tt>libm.so.5</tt> et <tt>libc.so.5</tt> doivent être copiées et non
déplacées si <tt>/usr</tt> est une partition différente de <tt>/</tt>,
parce qu'elles sont nécessaires aux programmes utilisés pour démarrer
Linux et doivent être situées sur la partition racine.

<item>Déplacez les fichiers <tt>/usr/lib/*.o</tt> dans le nouveau
répertoire.

 <tscreen><verb>
 mv /usr/lib/crt1.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/crti.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/crtn.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/gcrt1.o /usr/i486-linuxlibc5/lib
 </verb></tscreen>

<item>Mettez à jour votre cache de bibliothèque après avoir déplacé
vos bibliothèques.

 <tscreen><verb>
 ldconfig -v
 </verb></tscreen>
</enum>

<sect1>Installation à partir du paquetage binaire
<p>
<nidx>glibc!installation!binaires pré-compilés</nidx>

Si vous installez glibc à partir de binaires précompilés, vous devez :

 <tscreen><verb>
 cd /
 gzip -dc glibc-2.0.bin.i386.tar.gz | tar tvvf -
 gzip -dc glibc-crypt-2.0.bin.i386.tar.gz | tar tvvf -
 ldconfig -v
 </verb></tscreen>

Si vous avez une architecure ou une version différente, substituez les
noms de fichiers adéquats.

<sect1>Installation à partir des sources
<p>
<nidx>glibc!installation!à partir des sources</nidx>

Pour installer la bibliothèque à partir des sources, lancez :

 <tscreen><verb>
 make install
 ldconfig -v
 </verb></tscreen>

<sect1>Mise à jour des specs gcc
<p>
<nidx>glibc!installation!fichier de specs gcc, mise à jour</nidx>

L'étape finale de l'installation (à la fois pour les installations
binaires et sources) est de mettre à jour le fichier <tt>specs</tt> de
gcc pour que vous puissiez lier vos programmes proprement. Pour
déterminer quel fichier specs est utilisé par gcc, lancez :

 <tscreen><verb>
 &percnt; gcc -v
 reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
 gcc version 2.7.2.2
 </verb></tscreen>

Dans ce cas, i486-unknown-linux est le système, et 2.7.2.2 est la
version. Vous devez copier <tt>/usr/lib/gcc-lib/&lt;système&gt;</tt>
dans l'ancien répertoire système :

 <tscreen><verb>
 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxlibc5
 </verb></tscreen>

Allez dans le répertoire d'origine et dans le répertoire de version

 <tscreen><verb>
 cd /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2
 </verb></tscreen>

et éditez le fichier <tt>specs</tt> que vous y trouverez. Dans ce
fichier, changez <tt>/lib/ld-linux.so.1</tt> en
<tt>/lib/ld-linux.so.2</tt>. Vous devrez aussi enlever toutes les
expressions <tt/&percnt;{...:-lgmon}/ de ce fichier, puisque glibc
n'utilise pas la bibliothèque gmon pour les optimisations. Un fichier
specs d'exemple se trouve dans la section <ref id="specs"
name="fichiers specs d'exemple">.


<sect1>Test de l'installation
<p>
<nidx>glibc!installation!test</nidx>

Pour tester l'installation, créez le programme suivant dans un fichier
appelé glibc.c :

 <tscreen><verb>
 &num;include &lt;stdio.h&gt;

 main()
 {
     printf("hello world!\n");
 }
 </verb></tscreen>

et compilez le programme.

 <tscreen><verb>
 &percnt; gcc glibc.c -o glibc
 </verb></tscreen>

Utilisez ldd pour vérifier que le programme a été lié avec glibc2, et
non avec votre ancienne libc :

 <tscreen><verb>
 &percnt; ldd glibc
 libc.so.6 => /lib/libc.so.6 (0x4000e000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
 </verb></tscreen>

Si ça compile et que ça génère &dquot;hello world!&dquot; quand vous
le lancez, l'installation est réussie.


<sect>Compilation avec la libc non principale
<p>
<nidx>glibc!compilation avec une autre bibliothèque</nidx>

Il y  a des fois où vous  voudrez utiliser une bibliothèque différente
pour compiler vos programmes. Cette section explique comment faire, en
utilisant les noms de  répertoires et d'installation utilisés dans les
exemples des deux  sections précédentes. Souvenez-vous  de changer les
noms pour coller à votre configuration.


<sect1>Avertissement concernant l'utilisation de libcs non principales
<p>
<nidx>glibc!compilation avec une autre bibliothèque!avertissement</nidx>

Avant de compiler un programme utilisé dans le processus de démarrage,
rappelez-vous que   si  le programme est  lié  dynamiquement,   et est
utilisé avant  que  les partitions non-racines  soient montées, toutes
les  bibliothèques liées doivent    être sur la partition racine.   En
suivant  la procédure d'installation   de la  section précédente  pour
installer glibc comme bibliothèque C principale, la vieille libc reste
dans  <tt>/lib</tt>,  qui sera sur  votre  partition racine. Ceci veut
dire  que   tous  vos programmes    fonctionneront   encore lors    du
démarrage.    Cependant,  si  <tt>/usr</tt>   est  sur   une partition
différente et que vous installez glibc comme bibliothèque de test dans
<tt>/usr/i486-linuxglibc2</tt>, tous les  nouveaux programmes que vous
compilerez  avec  glibc ne fonctionneront pas   tant  que la partition
<tt>/usr</tt> ne sera pas montée.

<sect1>Compilation des programmes avec une glibc de test
<p>
<nidx>glibc!compilation avec une autre bibliothèque!glibc</nidx>

Pour compiler un programme avec glibc en installation de test, vous
devez mettre à zéro les chemins d'en-tête pour qu'ils pointent vers
les en-têtes glibc. En spécifiant &dquot;-nostdinc&dquot;, vous
annulerez les chemins normaux, et
&dquot;-I/usr/i486-linuxglibc2/include&dquot; pointera vers les
entêtes de glibc. Vous devrez aussi spécifier les en-têtes gcc, que
l'on trouve dans
<tt>/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include</tt> (en
supposant que vous ayez installé la bibliothèque de test dans
i486-linuxglibc2 avec gcc version 2.7.2.2).

Pour lier un programme à une glibc de test, vous devez spécifier la
configuration gcc. Vous le faites avec l'option &dquot;-b
i486-linuxglibc2&dquot;.

Pour la plupart des programmes, vous pouvez spécifier ces nouvelles
options en les ajoutant aux options de makefile
<tt>&dollar;CFLAGS</tt> et <tt>&dollar;LDFLAGS</tt> :

 <tscreen><verb>
 CFLAGS = -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include -b i486-linuxglibc2
 LDFLAGS = -b i486-linuxglibc2
 </verb></tscreen>

Si vous utilisez un script configure, définissez les variables shell
<tt>&dollar;CFLAGS</tt> et <tt>&dollar;LDFLAGS</tt> (en utilisant
env/setenv pour csh/tcsh ou set/export pour sh/bash/etc) avant de
lancer configure. Les makefiles générés par celui-ci devraient
contenir les variables <tt>&dollar;CFLAGS</tt> et
<tt>&dollar;LDFLAGS</tt> correctes. Tous les scripts configure ne
tiendront pas compte des variables, et par conséquent vous devriez
vérifier après avoir lancé configure et éditer les makefiles à la main
si nécessaire.

Si les programmes que vous compilez n'appellent que gcc (et pas cpp ou
les binutils directement), vous pouvez utiliser le script suivant pour
économiser la spécification des options à chaque fois :

 <tscreen><verb>
 &num;!/bin/bash
 /usr/bin/gcc -b i486-linuxglibc2 -nostdinc \
              -I/usr/i486-linuxglibc2/include \
              -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include "&dollar;@"
 </verb></tscreen>

Vous pourrez alors utiliser ce script à la place de &dquot;gcc&dquot;
pour compiler.

<sect1>Compilation des programmes avec libc 5 quand glibc est la bibliothèque principale
<p>
<nidx>glibc!compilation avec une autre bibliothèque!libc 5</nidx>

Pour compiler un programme avec vos anciennes bibliothèques quand vous
avez installé glibc comme bibliothèque principale, vous devez mettre à
zéro les chemins d'en-têtes vers les anciennes en-têtes. En spécifiant
&dquot;-nostdinc&dquot;, vous annulerez les chemins normaux et
&dquot;-I/usr/i486-linuxlibc5/include&dquot; pointera vers les
en-têtes libc 5. Vous devez aussi indiquer
&dquot;-I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include&dquot; pour
inclure les en-têtes spécifiques à gcc. Rappelez-vous d'ajuster ces
chemins selon la manière dont vous avez nommé les nouveaux répertoires
et selon votre version de gcc.

Pour lier un programme à votre ancienne libc, vous devez spécifier la
configuration de gcc. Vous le faites en utilisant l'option &dquot;-b
i486-linuxlibc5&dquot;.

Pour la plupart des programmes, vous pouvez indiquer ces nouvelles
options en les ajoutant aux options de makefile
<tt>&dollar;CFLAGS</tt> et <tt>&dollar;LDFLAGS</tt> :

 <tscreen><verb>
 CFLAGS = -nostdinc -I/usr/i486-linuxlibc5/include -I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include -b i486-linuxlibc5
 LDFLAGS = -b i486-linuxlibc5
 </verb></tscreen>

Si vous utilisez un script configure, définissez les variables shell
<tt>&dollar;CFLAGS</tt> et <tt>&dollar;LDFLAGS</tt> (en utilisant
env/setenv pour csh/tcsh, ou set/export pour sh/bash/etc) avant de
lancer configure. Les makefiles générés par celui-ci devraient
contenir les variables <tt>&dollar;CFLAGS</tt> et
<tt>&dollar;LDFLAGS</tt> corrects. Tous les scripts configure ne
verront pas les variables, et vous devriez donc vérifier après avoir
lancé configure et éditer les makefiles si nécessaire.

Si les programmes que vous compilez n'appellent que gcc (et pas cpp ou
binutils directement), vous pouvez utiliser le script suivant pour
éviter de devoir indiquer toutes les options à chaque fois :

 <tscreen><verb>
 &num;!/bin/bash
 /usr/bin/gcc -b i486-linuxlibc5 -nostdinc \
              -I/usr/i486-linuxlibc5/include \
              -I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include "&dollar;@"
 </verb></tscreen>

Vous pouvez alors utiliser ce script à la place de &dquot;gcc&dquot;
pour la compilation.


<sect>Compilation des programmes C++
<p>
<nidx>glibc!programmes C++, compilation</nidx>

Libg++ utilise des parties de la bibliothèque mathématique, elle est
donc liée à libm. Puisque votre bibliothèque libg++ existante aura été
compilée avec votre ancienne bibliothèque, vous devrez recompiler
libg++ avec glibc ou obtenir une copie binaire. Les dernières sources
de libg++, en même temps qu'un binaire lié à glibc (pour x86) se
trouvent à <url url="ftp://ftp.yggdrasil.com/private/hjl/">.


<sect1>Installation de libg++ pour une installation glibc de test
<p>
<nidx>glibc!libg++, installation!comme bibliothèque de test</nidx>

Si vous avez installé glibc comme bibliothèque de test, vous devez
installer les fichiers dans le répertoire dans lequel vous avez
installé glibc (comme <tt>/usr/i486-linuxglibc2</tt> pour l'exemple
des sections précédentes). Si vous installez à partir du paquetage
binaire (ce que je recommanderais, puisque je n'ai jamais eu de chance
pour compiler libg++ de cette manière), vous devez extraire les
fichiers dans un répertoire temporaire et déplacer tous les fichiers
<tt>usr/lib/</tt> dans le répertoire <tt>&lt;répertoire
install&gt;/lib/</tt>, les fichiers <tt>usr/include/</tt> dans le
répertoire <tt>&lt;répertoire install&gt;/include/</tt> (rappelez-vous
d'effacer le lien <tt>include/g++</tt> avant !), et les fichiers
<tt>usr/bin/</tt> dans le répertoire <tt>&lt;répertoire
install&gt;/bin/</tt>.

<sect1>Installation de libg++ pour une installation glibc principale
<p>
<nidx>glibc!libg++, installation!comme bibliothèque primaire</nidx>

Si vous avez installé glibc comme bibliothèque principale, vous devez
d'abord déplacer vos anciens fichiers libg++ dans l'ancien répertoire
libc si vous voulez encore pouvoir compiler des programmes g++ avec votre
ancienne libc. La meilleure façon de procéder est probablement
d'installer une nouvelle copie de libg++ compilée avec libc 5 comme
dans la section précédente, et ensuite d'installer la version glibc
normalement.

<sect1>Compilation de programmes C++ avec la libc non principale
<p>
<nidx>glibc!programmes C++, compilation!avec une libc non principale</nidx>

Si vous essayez de compiler un programme C++ avec une libc non
principale, vous devrez inclure le répertoire d'en-têtes g++, qui dans
les exemples ci-dessus serait <tt>/usr/i486-linuxglibc2/include/g++</tt> pour
une installation glibc de test ou <tt>/usr/i486-linuxlibc5/include/g++</tt>
pour une installation glibc principale. On peut faire cela en général
en ajoutant à la variable <tt>&dollar;CXXFLAGS</tt> :

 <tscreen><verb>
 CXXFLAGS = -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include -I/usr/i486-linuxlibc5/include/g++ -b i486-linuxglibc2
 </verb></tscreen>


<sect>Indiquer les bogues
<p>
<nidx>glibc!bogues, indication</nidx>

Si vous pensez que la bibliothèque est vérolée, veuillez d'abord lire
la FAQ. Il se peut que d'autres personnes aient eu ce problème et
qu'il y ait une solution simple. Vous devriez aussi regarder la partie
"Outils recommandés pour l'installation de la bibliothèque C de GNU"
dans le fichier <tt>INSTALL</tt> puisque certains bogues proviennent des
outils et non de glibc.

Une  fois que  vous  avez trouvé   un bug, assurez-vous   que c'en est
vraiment un.  Une bonne manière  de le  faire  est  de regarder si  la
bibliothèque C  GNU se   comporte de  la   même manière  qu'une  autre
bibliothèque  C.  S'il en   est ainsi, vous  vous  êtes  trompé et les
bibliothèques ont raison (mais pas forcément).  Dans le cas contraire,
l'une des bibliothèques a probablement tort.

Ensuite, dirigez-vous vers <url
url="http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl">, et parcourez
la base de données des bugs. Vérifiez bien que le problème n'a pas
déjà été indiqué. Vous devriez aussi jeter un coup d'oeil au fichier
<tt>BUGS</tt> (ditribué avec glibc) pour prendre connaissance des bugs
connus.

Une fois que vous êtes sûr d'avoir trouvé un bug, essayez de le
réduire au plus petit test pratique qui reproduit le problème. Dans le
cas d'une bibliothèque C, vous ne devrez probablement en être réduit
qu'à un appel de fonction de la bibliothèque, si possible. Ceci ne
devrait pas être trop difficile.

L'étape finale une fois que vous avez un exemple simple de test est
d'indiquer le bug. En indiquant un bug, envoyez votre exemple de test,
les résultats que vous avez obtenus, ce que vous pensez être le
problème (si vous avez pensé à quelque chose), le type de votre
système, les versions de la bibliothèque C GNU, du compilateur GNU CC
et des GNU binutils que vous utilisez. Ajoutez aussi les fichiers
<tt>config.status</tt> et <tt>config.mak</tt> créés en lançant
<tt>configure</tt> ; ils seront dans le répertoire qui était le
répertoire courant quand vous avez lancé <tt>configure</tt>.

Vous devez envoyer tous les rapports de bug pour la bibliothèque C GNU
en utilisant le script shell <tt/glibcbug/ livré avec la libc GNU à
<url url="bugs@gnu.org"> (l'ancienne adresse <url
url="bugs@gnu.ai.mit.edu"> fonctionne encore), ou par l'intermédiaire
de l'interface Web de GNATS à <url
url="http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl">.

Les suggestions et les questions doivent être envoyées à la liste de
distribution à <url url="bugs-glibc@prep.ai.mit.edu">. Si vous ne
lisez pas le groupe de gnews gnu.bug.glibc, vous pouvez vous abonner à
la liste en demandant à <url url="bug-glibc-request@prep.ai.mit.edu">.

Veuillez s'il vous plait ne pas envoyer de rapport de bug concernant
la bibliothèque C GNU à &lt;bug-gcc@prep.ai.mit.edu&gt;. Cette liste
s'occupe des rapports de bug de GNU CC. GNU CC et la bibliothèque C
GNU sont des entités distinctes maintenues par des personnes
différentes.


<sect>Fichiers specs d'exemple<label id="specs">
<p>
<nidx>glibc!fichier de specs GCC, exemple</nidx>

Voici ci-inclus un fichier d'exemple <tt>specs</tt> pour glibc 2 que
gcc utilise pour la compilation et la liaison dynamique. On devrait le
trouver dans le répertoire <tt>/usr/lib/gcc-lib/&lt;nouveau
répertoire&gt;/&lt;version gcc&gt;</tt>. Si vous utilisez un système
x86, vous pouvez copier exactement cette section dans le fichier.

 <tscreen><verb>
 *asm:
 &percnt;{V} &percnt;{v:&percnt;{!V:-V}} &percnt;{Qy:} &percnt;{!Qn:-Qy} &percnt;{n} &percnt;{T} &percnt;{Ym,*} &percnt;{Yd,*} &percnt;{Wa,*:&percnt;*}

 *asm_final:
 &percnt;{pipe:-}

 *cpp:
 &percnt;{fPIC:-D__PIC__ -D__pic__} &percnt;{fpic:-D__PIC__ -D__pic__} &percnt;{!m386:-D__i486__} &percnt;{posix:-D_POSIX_SOURCE} &percnt;{pthread:-D_REENTRANT}

 *cc1:
 &percnt;{profile:-p}

 *cc1plus:


 *endfile:
 &percnt;{!shared:crtend.o&percnt;s} &percnt;{shared:crtendS.o&percnt;s} crtn.o&percnt;s

 *link:
 -m elf_i386 &percnt;{shared:-shared}   &percnt;{!shared:     &percnt;{!ibcs:       &percnt;{!static: 	&percnt;{rdynamic:-export-dynamic} 	&percnt;{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} 	&percnt;{static:-static}}}

 *lib:
 &percnt;{!shared: &percnt;{pthread:-lpthread} 	&percnt;{profile:-lc_p} &percnt;{!profile: -lc}}

 *libgcc:
 -lgcc

 *startfile:
 &percnt;{!shared:      &percnt;{pg:gcrt1.o&percnt;s} &percnt;{!pg:&percnt;{p:gcrt1.o&percnt;s} 		       &percnt;{!p:&percnt;{profile:gcrt1.o&percnt;s} 			 &percnt;{!profile:crt1.o&percnt;s}}}}    crti.o&percnt;s &percnt;{!shared:crtbegin.o&percnt;s} &percnt;{shared:crtbeginS.o&percnt;s}

 *switches_need_spaces:


 *signed_char:
 &percnt;{funsigned-char:-D__CHAR_UNSIGNED__}

 *predefines:
 -D__ELF__ -Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)

 *cross_compile:
 0

 *multilib:
 . ;
 </verb></tscreen>

<sect>Divers
<p>
<nidx>glibc!divers</nidx>

<sect1>Informations supplémentaires
<p>
<nidx>glibc!sources d'informations</nidx>

<sect2>Pages Web
<p>
<nidx>glibc!sources d'information!WWW</nidx>

<itemize>
<item><url url="http://www.gnu.org/software/libc/libc.html" name="Page
d'accueil de la bibliothèque C GNU chez FSF">
<item><url url="http://www.imaxx.net/~thrytis/glibc/"
name="Utilisation de GNU Libc 2 avec Linux">
<item><url url="http://huizen.dds.nl/~frodol/glibc/" name="Installer
glibc-2 sur Linux">
<item><url
url="http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html"
name="HOWTO libc5 vers libc6 Debian">
</itemize>

<sect2>Groupes de news
<p>
<nidx>glibc!sources d'informations!groupes de news</nidx>

<itemize>
<item><htmlurl url="news:comp.os.linux.development.system" name="comp.os.linux.development.system">
<item><htmlurl url="news:comp.os.linux.development.apps" name="comp.os.linux.development.apps">
<item><htmlurl url="news:linux.dev.kernel" name="linux.dev.kernel">
<item><htmlurl url="news:gnu.bug.glibc" name="gnu.bugs.glibc">
</itemize>

<sect2>Listes de distribution
<p>
<nidx>glibc!sources d'informations!listes de distribution</nidx>

<descrip>
<tag/Liste de discussion Glibc 2 Linux./
Cette liste est destinée à la discussion entre les utilisateurs Linux
qui ont installé glibc2, la nouvelle bibliothèque C. Les sujets
peuvent comprendre des problèmes de compatibilité et des questions sur
la compilation de code dans un environnement Linux/glibc. Pour
s'abonner, envoyer un courrier à <url
url="mailto:Majordomo@ricardo.ecn.wfu.edu"
name="Majordomo@ricardo.ecn.wfu.edu"> avec dans le corps "subscribe
glibc-linux &lt;votre adresse email&gt;".
</descrip>

<sect1>Remerciements
<p>

J'ai volé une bonne partie de ces informations sur la <url
url="http://www.gnu.org/software/libc/libc.html" name="page web de GNU
Libc"> et de l'annonce de glibc 2 par Ulrich Drepper
&lt;drepper@gnu.ai.mit.edu&gt; et ses commentaires. Andreas Jaeger
&lt;aj@arthur.rhein-neckar.de&gt; a alimenté une partie de la section
sur l'indication des bugs.

Les personnes suivantes ont fourni des informations et un retour sur
ce document :

<itemize>
<item>Allex &lt;allex@ms2.accmail.com.tw&gt;
<item>Mark Brown &lt;M.A.Brown-4@sms.ed.ac.uk&gt;
<item>Ulrich Drepper &lt;drepper@gnu.ai.mit.edu&gt;
<item>Scott K. Ellis &lt;ellis@valueweb.net&gt;
<item>Aron Griffis &lt;agriffis@coat.com&gt;
<item>Andreas Jaeger &lt;aj@arthur.rhein-neckar.de&gt;
<item>Frodo Looijaard &lt;frodol@dds.nl&gt;
<item>Ryan McGuire &lt;rmcguire@freenet.columbus.oh.us&gt;
<item>Shaya Potter &lt;spotter@capaccess.org&gt;
<item>Les Schaffer &lt;godzilla@futuris.net&gt;
<item>Andy Sewell &lt;puck@pookhill.demon.co.uk&gt;
<item>Gary Shea &lt;shea@gtsdesign.com&gt;
<item>Stephane &lt;sr@adb.fr&gt;
<item>Jan Vandenbos &lt;jan@imaxx.net&gt;
</itemize>

Les traductions de ce document sont faites par :

<itemize>
<item>chinois : Allex &lt;allex@ms2.accmail.com.tw&gt;
<item>français : Géraud Canet&lt;canet@labri.u-bordeaux.fr&gt;
<item>japonais : Kazuyuki Okamoto &lt;ikko-@pacific.rim.or.jp&gt;
</itemize>

<sect1>Retour d'informations
<p>

En plus d'écrire ce HOWTO, maintenir la page <url
url="http://www.imaxx.net/~thrytis/glibc" name="glibc 2 pour Linux">,
et l'utiliser sur ma machine, je n'ai rien à voir avec le projet
glibc. Je suis loin d'être un expert dans ce domaine, bien que
j'essaie de résoudre les problèmes qu'on m'envoie par courrier
électronique. J'apprécie tout retour, correction ou suggestion que
vous pourriez me faire. Veuillez les envoyer à <url
url="mailto:ejg3@cornell.edu" name="ejg3@cornell.edu">.

<sect1>Copyright
<p>

Copyright (c) 1997 par Eric Green. Ce document peut être distribué
sous les termes de la licence LDP.

</article>
