Page suivantePage pr�c�denteTable des mati�res

6. Compilation avec la libc non principale

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.

6.1 Avertissement concernant l'utilisation de libcs non principales

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 /lib, qui sera sur votre partition racine. Ceci veut dire que tous vos programmes fonctionneront encore lors du d�marrage. Cependant, si /usr est sur une partition diff�rente et que vous installez glibc comme biblioth�que de test dans /usr/i486-linuxglibc2, tous les nouveaux programmes que vous compilerez avec glibc ne fonctionneront pas tant que la partition /usr ne sera pas mont�e.

6.2 Compilation des programmes avec une glibc de test

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 "-nostdinc", vous annulerez les chemins normaux, et "-I/usr/i486-linuxglibc2/include" pointera vers les ent�tes de glibc. Vous devrez aussi sp�cifier les en-t�tes gcc, que l'on trouve dans /usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include (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 "-b i486-linuxglibc2".

Pour la plupart des programmes, vous pouvez sp�cifier ces nouvelles options en les ajoutant aux options de makefile $CFLAGS et $LDFLAGS :

 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

Si vous utilisez un script configure, d�finissez les variables shell $CFLAGS et $LDFLAGS (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 $CFLAGS et $LDFLAGS 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 :

 #!/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 "$@"

Vous pourrez alors utiliser ce script � la place de "gcc" pour compiler.

6.3 Compilation des programmes avec libc 5 quand glibc est la biblioth�que principale

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 "-nostdinc", vous annulerez les chemins normaux et "-I/usr/i486-linuxlibc5/include" pointera vers les en-t�tes libc 5. Vous devez aussi indiquer "-I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include" 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 "-b i486-linuxlibc5".

Pour la plupart des programmes, vous pouvez indiquer ces nouvelles options en les ajoutant aux options de makefile $CFLAGS et $LDFLAGS :

 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

Si vous utilisez un script configure, d�finissez les variables shell $CFLAGS et $LDFLAGS (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 $CFLAGS et $LDFLAGS 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 :

 #!/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 "$@"

Vous pouvez alors utiliser ce script � la place de "gcc" pour la compilation.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:14