7.3 biarchプラットフォームでのソフトウェアのコンパイル

biarchアーキテクチャで他のアーキテクチャ向けのバイナリを開発するには、対象のアーキテクチャのそれぞれのライブラリをさらにインストールする必要があります。これらのパッケージには、 rpmname-32bitという名前が付けられています。さらに、rpmname-develパッケージからそれぞれのヘッダとライブラリ、また、rpmname-devel-32bitから対象のアーキテクチャ向けの開発ライブラリも必要です。

ほとんどのオープンソースプログラムでは、autoconfベースのプログラム設定が使用されています。対象のアーキテクチャ向けプログラムの設定にautoconfを使用するには、autoconfの標準のコンパイラとリンカーの設定に上書きするために、さらに環境変数を指定してconfigureスクリプトを実行します。

次の例は、対象のアーキテクチャとしてを採用しているAMD64またはEM64Tのシステムを示しています。

  1. 32ビットコンパイラを使用するためにautoconfを設定します。

    CC="gcc -m32"
  2. 32ビットオブジェクトを処理するようにリンカーに指示します。

    LD="ld -m elf64_i386"
  3. 32ビットオブジェクトを生成するためにアセンブラを設定します。

    CC="gcc -m32"
  4. libtoolなどのライブラリが/usr/libから得られたか確認します。

    LDFLAGS="-L/usr/lib"
  5. ライブラリがlibサブディレクトリに格納されているか確認します。

    --libdir=/usr/lib
  6. 32ビットXライブラリが使用されているか確認します。

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

こうした変数のすべてがどのプログラムにも必要なわけではありません。それぞれのプログラムに合わせて使用してください。

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