6.3. Compilation de logiciels sur des plateformes bi-architecture

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 :

  1. Configurez autoconf pour utiliser le compilateur 32-bits :

    CC="gcc -m32"
  2. Donnez l'ordre à l'éditeur de liens de traiter les objets 32 bits :

    LD="ld -m elf64_i386"
  3. Demandez à l'assembleur de créer des objets 32 bits :

    AS="gcc -c -m32"
  4. Faites en sorte que libtool et autres outils aillent chercher les bibliothèques dans /usr/lib :

    LDFLAGS="-L/usr/lib"
  5. Définissez l'emplacement des bibliothèques comme étant le sous-répertoire lib :

    --libdir=/usr/lib
  6. 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        

SUSE LINUX Guide de l'administrateur 9.2