Pour développer sur une bi-architecture des fichiers binaires pour
l'autre architecture, vous devez en outre installer les bibliothèques
correspondant à la seconde architecture. Ces paquetages s'appellent
nomrpm-32bit . Vous avez aussi
besoin des fichiers d'en-tête et des bibliothèques correspondants des
paquetages nomrpm-devel et des
bibliothèques de développement pour la seconde architecture que vous
trouverez dans nomrpm-devel-32bit
.
La plupart des programmes Open Source utilisent une procédure de configuration de programme basée sur autoconf. Pour utiliser autoconf pour la configuration d'un programme pour la seconde architecture, vous devez écraser les réglages normaux du compilateur et de l'éditeur de liens de autoconf en appelant les scripts configure avec des variables d'environnement supplémentaires.
L'exemple suivant se base sur un système AMD64 et EM64T avec x86 comme seconde architecture :
Configurez autoconf pour utiliser le compilateur 32-bits :
CC="gcc -m32"
Donnez l'ordre à l'éditeur de liens de traiter les objets 32 bits :
LD="ld -m elf64_i386"
Demandez à l'assembleur de créer des objets 32 bits :
AS="gcc -c -m32"
Faites en sorte que libtool et autres outils
aillent chercher les bibliothèques dans
/usr/lib :
LDFLAGS="-L/usr/lib"
Définissez l'emplacement des bibliothèques comme étant le
sous-répertoire lib :
--libdir=/usr/lib
Indiquez que les bibliothèques de X 32 bits sont utilisées :
--x-libraries=/usr/X11R6/lib/
Ces variables ne sont pas toutes nécessaires pour chaque programme. Adaptez-les aux différents programmes.
CC="gcc -m64" \
LDFLAGS="-L/usr/lib64;" \
.configure \
--prefix=/usr \
--libdir=/usr/lib64
make
make install