Compilação de software em plataformas biarch

Para desenvolver binários para outra arquitetura em uma arquitetura biarch, as respectivas bibliotecas da segunda arquitetura devem ser instaladas adicionalmente. Esses pacotes são chamados de rpmname-32bit. Você também precisará dos respectivos cabeçalhos e bibliotecas dos pacotes rpmname-devel e das bibliotecas de desenvolvimento para a segunda arquitetura de rpmname-devel-32bit.

A maioria dos programas de código-fonte aberto usa uma configuração de programa baseada em autoconf. Para usar o autoconf com o objetivo de configurar um programa para a segunda arquitetura, sobregrave as configurações do compilador normal e do linker de autoconf executando o script configure com variáveis de ambiente adicionais.

O exemplo a seguir refere-se a um sistema x86_64, cuja segunda arquitetura é x86.

  1. Use o compilador de 32 bits:

    CC="gcc -m32"
  2. Instrua o linker a processar objetos de 32 bits (use sempre gcc como o front end do linker):

    LD="gcc -m32"
  3. Defina o assembler para gerar objetos de 32 bits:

    AS="gcc -c -m32"
  4. Especifique flags do linker, como o local das bibliotecas de 32 bits, por exemplo:

    LDFLAGS="-L/usr/lib"
  5. Especifique o local das bibliotecas de código objeto de 32 bits:

    --libdir=/usr/lib
  6. Especifique o local das bibliotecas X de 32 bits:

    --x-libraries=/usr/lib

Nem todas essas variáveis são necessárias para todos os programas. Adapte-as para o respectivo programa.

CC="gcc -m32"
LDFLAGS="-L/usr/lib;"
./configure --prefix=/usr --libdir=/usr/lib --x-libraries=/usr/lib
make
make install