クロスコンパイル環境

build, host, target

configureのオプションに環境を指定する--build, --host, --targetというオプションがありまして、クロスコンパイラをビルドする上で大変重要です。
というかクロスコンパイラのために3つもあるんでしょうね。

  • --build

いままさにビルドを実行する環境。要するにconfigureを実行している環境ですね。
だいたいは自動検出されますので、指定する理由はあまりはずなんですが…
今回の場合、i686-pc-mingw32になります。

  • --host

ビルドしてできたコンパイラ等を実行する環境。
今回の場合、x86_64-w64-mingw32になるはず。

  • --target

ビルドしてできたコンパイラ等が出力するコードを実行する環境。
今回の場合、x86_64-w64-mingw32とi686-w64-mingw32の複数対応のコンパイラを作ります。
multilibというやつですね。

Binutils

クロスコンパイラビルドのとおりで、sysroot関連もしっかり使います。

mkdir -p ${HOME}/gccbuild/bldXC/binutils
cd ${HOME}/gccbuild/bldXC/binutils

../../src/binutils-2.21.51/configure --prefix=/mingwXC --with-sysroot=/mingwXC --target=x86_64-w64-mingw32 --enable-targets=x86_64-w64-mingw32,i686-w64-mingw32 >>configure-mingwXC.log 2>&1

make >>make-mingwXC.log 2>&1
make install >>make-mingwXC-install.log 2>&1

ログはっとこうかと思ったけどやり方わかんないや…