[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Compilation des sources d'un package deb



Bonjour,


Questions à propos de la compilation des sources d'un .deb.

1) Afin de tirer profit de mon pentium III, j'ai initialisé la variable
CFLAGS dans /etc/profile de la façon suivante :
CFLAGS = -O9 -funroll-loops -ffast-math -malign-double -march=prentiumpro
-mcpu=pentiumpro -fomit-frame-pointer -fno-exceptions (tiré d'un pdf sur la
sécurisation et l'optimisation d'une redhat).
Le problème avec cette méthode est que je suis obligé, avant de compiler, de
vérifier qu'elle ne rentre pas en conflit avec des optimisations déjà
définies. Exemple de conflit : 
gcc -O9 -funroll-loops -ffast-math -malign-double -march=prentiumpro
-mcpu=pentiumpro -fomit-frame-pointer -fno-exceptions -O2 -m486...

J'avais aussi utilisé DEBIAN_BUILDARCH=pentium (quelque chose dans ce genre)
que j'avais trouvé dans le package pentium-builder.
Mais cette variable n'avait pas l'air d'être utilisée.

Or je me suis aperçu que les variables d'environnement suivantes étaient
utilisées:

DEB_BUILD_ARCH=i386
DEB_BUILD_GNU_CPU=i386
DEB_BUILD_GNU_SYSTEM=linux
DEB_BUILD_GNU_TYPE=i386-linux
DEB_HOST_ARCH=i386
DEB_HOST_GNU_CPU=i386
DEB_HOST_GNU_SYSTEM=linux
DEB_HOST_GNU_TYPE=i386-linux

Est ce que je peux utiliser DEB_BUILD_GNU_CPU ou DEB_HOST_GNU_CPU pour
indiquer que je veux compiler pour un i686 afin d'avoir un binaire optimisé
et me passer de la redéfinition de CFLAGS.

Est ce qu'il y a un fichier de config dans lequel je puisse redéfinir des
variables pour la compilation (comme pour les rpms avec .rpmrc et
.rpmacros).

Bien sûr pour pouvoir tirer profit de mon PIII, il faudrait que tous les
.deb soient compilés avec les bons flags. Mais pour l'instant je n'ai pas
assez d'expérience dans compilation des debs pour faire une Débian 2.2
depuis une Linux From Scratch.

Malheureusement une des conséquences de l'optimisation est de ne plus
pouvoir utiliser :
apt-get upgrade ou apt-get dist-upgrade.
D'où ma question suivante : Est il envisagé par Débian de mettre à
disposition des debs pour processeurs récents?
Cette disposition serait sur le web, au contraire de la version CD, qui elle
restait toujours pour les i386. Le passage de 386 à 686 pourrait se faire
par une sorte de apt-get dist-upgrade. 

2) Pour compiler j'utilisais fakeroot dpkg-buildpackage -b. Le problème est
que la variable PATH utilisée est celle de mon user normal et non celle de
root. Exemple : pour la compilation de e2fsprogs ou de util-linux (je ne
sais plus), j'ai eu une erreur m'informant qu'il n'avait pas trouvé
ldconfig. Dans mon path j'ai ajouter /sbin (seulement pour la compilation et
non pas en dur) mais je trouve cela pas très propre.

Existe t-il une différence entre fakeroot dpkg-buildpackage -b et
dpkg-buildpackage -rfakeroot?
Laquelle de ces commandes vaut-il mieux utiliser? Ou est ce les mêmes ?  
fakeroot dpkg-buildpackage -b
dpkg-buildpackage -rfakeroot
fakeroot .debian/rules binary (je ne suis pas sûr que ce soit la syntaxe
exacte car je ne suis pas sur ma machine )

3) Est ce normal que la compilation ne s'arrête pas lorsqu'elle ne peut pas
compiler un des exécutables?
Exemple : pour compiler les sources du package contenant genksyms j'avais
oublié d'installer bison. J'ai eu une erreur m'indiquant que bison n'était
pas installé mais la compilation ne s'est pas arrêtée. 


Merci


Laurent


Laurent Brayard (Syseca)
DSIT EG/RE
Batignolles 2 , 54B



Reply to: