En una doble arquitectura, para poder desarrollar binarios para la otra arquitectura es necesario instalar adicionalmente las respectivas bibliotecas para la segunda arquitectura. Estos paquetes se denominan rpmname-32bit. También es necesario disponer de los respectivos encabezados y bibliotecas procedentes de los paquetes rpmname-devel y de las bibliotecas de desarrollo para la segunda arquitectura procedentes de rpmname-devel-32bit.
La mayoría de los programas de código abierto utilizan una configuración basada en el comando autoconf. Para utilizar autoconf para configurar un programa para la segunda arquitectura, sobrescriba el compilador normal y los ajustes de enlazador de autoconf ejecutando el guión configure con variables de entorno adicionales.
El ejemplo que sigue hace referencia a un sistema AMD64 o EM64T con x86 como segunda arquitectura:
Defina autoconf para utilizar el compilador de 32 bits:
CC="gcc -m32"
Ordene al enlazador que procese objetos de 32 bits:
LD="ld -m elf64_i386"
Defina el ensamblador para que genere objetos de 32 bits:
AS="gcc -c -m32"
Indique que las bibliotecas para libtool etc. provienen de /usr/lib:
LDFLAGS="-L/usr/lib"
Indique que las bibliotecas se almacenen en el directorio lib:
--libdir=/usr/lib
Indique que se utilicen las bibliotecas X de 32 bits:
--x-libraries=/usr/X11R6/lib/
No todos los programas necesitan todas estas variables. Adáptelas al programa en cuestión.
CC="gcc -m64" \
LDFLAGS="-L/usr/lib64;" \
.configure \
--prefix=/usr \
--libdir=/usr/lib64
make
make install