7.3. Software-Kompilierung auf Doppelarchitektur-Plattformen

Um bei einer Doppelarchitektur Binärdateien für die jeweils andere Architektur zu entwickeln, müssen die entsprechenden Bibliotheken für die zweite Architektur zusätzlich installiert werden. Diese Pakete heißen rpmname-32bit. Außerdem benötigen Sie die entsprechenden Header und Bibliotheken aus den rpmname-devel-Paketen und die Entwicklungsbibliotheken für die zweite Architektur aus rpmname-devel-32bit.

Die meisten Open Source-Programme verwenden eine autoconf-basierte Programmkonfiguration. Um mit autoconf ein Programm für die zweite Architektur zu konfigurieren, überschreiben Sie die normalen Compiler- und Linker-Einstellungen von autoconf, indem Sie das Skript configure mit zusätzlichen Umgebungsvariablen ausführen.

Das folgende Beispiel bezieht sich auf ein AMD64- bzw. EM64T-System mit x86 als zweiter Architektur:

  1. Legen Sie autoconf für die Verwendung des 32-Bit-Compilers fest:

    CC="gcc -m32"
  2. Weisen Sie den Linker an, 32-Bit-Objekte zu verarbeiten:

    LD="ld -m elf64_i386"
  3. Legen Sie den Assembler für die Erstellung von 32-Bit-Objekten fest:

    AS="gcc -c -m32"
  4. Legen Sie fest, dass die Bibliotheken für libtool usw. aus /usr/lib stammen sollen:

    LDFLAGS="-L/usr/lib"
  5. Legen Sie fest, dass die Bibliotheken im Unterverzeichnis lib gespeichert werden sollen:

    --libdir=/usr/lib
  6. Legen Sie fest, dass die 32-Bit-X-Bibliotheken verwendet werden sollen:

    --x-libraries=/usr/X11R6/lib/

Nicht alle diese Variablen werden für jedes Programm benötigt. Passen Sie sie an das entsprechende Programm an.

CC="gcc -m64"            \
LDFLAGS="-L/usr/lib64;"  \
        .configure       \
          --prefix=/usr  \
          --libdir=/usr/lib64
make
make install