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

biarchアーキテクチャで他のアーキテクチャ向けのバイナリを開発するには、対象のアーキテクチャのそれぞれのライブラリをさらにインストールする必要があります。これらのパッケージは、rpmname-32bitと呼ばれます。さらに、rpmname-develパッケージからの各ヘッダとライブラリ、およびrpmname-devel-32bitからの2番目のアーキテクチャ向けの開発ライブラリも必要です。

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

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

  1. 32ビットコンパイラを使用します。

    CC="gcc -m32"
  2. リンカーに32ビットオブジェクトの処理を指示します(リンカーのフロントエンドには常にgccを使用)。

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

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

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

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

    --x-libraries=/usr/lib/xorg

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

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