Debian でクロスコンパイルを行うために必要な binutils, libc, gcc のパッケージを、 DebianCrossCompilerHowto のページの説明に従って作成する。 ここでは、玄箱で動くプログラムを PC 上でコンパイルすることを目的に、
という組み合わせを対象として説明する。
/etc/apt/sources.list の以下のような deb-src の行のコメントを外す。
#deb-src http://…/ stable main contrib non-free
パッケージのリストを更新。
# aptitude update
binutils と gcc のビルドに必要なパッケージをインストール *1。
# apt-get build-dep binutils gcc-3.3
作業に必要なその他のパッケージをインストール。
# aptitude install fakeroot # aptitude install dpkg-cross
以下のコマンドを実行し、binutils のソースパッケージをダウンロード。
$ apt-get source binutils
クロスコンパイル用のパッケージのビルドに対応させるために、 Debian Bug report logs - #231707 のページから以下のパッチをダウンロード *2。
以下のコマンドを実行し、パッチを適用。
$ patch -p0 < binutils-cross-2.15-6.patch.20050707
以下のコマンドを実行し、クロスコンパイル用 binutils のパッケージをビルド。
$ cd binutils-2.15 $ TARGET=powerpc-linux fakeroot debian/rules binary-cross
以下のコマンドを実行し、ビルドしたパッケージをインストール。
# dpkg -i ../binutils-powerpc-linux_2.15-6_i386.deb
Debian のミラーサイトから以下のパッケージをダウンロード。 一応、http://ftp.jp.debian.org/ にあるファイルにリンクしておく。
PowerPC 用のパッケージをクロスコンパイル用に変換。
$ dpkg-cross -b -apowerpc \ > libc6_2.3.2.ds1-22sarge4_powerpc.deb \ > libc6-dev_2.3.2.ds1-22sarge4_powerpc.deb \ > libdb1-compat_2.1.3-7_powerpc.deb \ > linux-kernel-headers_2.5.999-test7-bk-17_powerpc.deb
以下のコマンドを実行し、変換したパッケージをインストール。
# dpkg -i libc6-powerpc-cross_2.3.2.ds1-22sarge4_all.deb \ > libc6-dev-powerpc-cross_2.3.2.ds1-22sarge4_all.deb \ > libdb1-compat-powerpc-cross_2.1.3-7_all.deb \ > linux-kernel-headers-powerpc-cross_2.5.999-test7-bk-17_all.deb
以下のコマンドを実行し、gcc のソースパッケージをダウンロード。
$ apt-get source gcc-3.3
以下のコマンドを実行し、クロスコンパイル用 gcc のパッケージをビルド。
$ cd gcc-3.3-3.3.5 $ export GCC_TARGET=powerpc $ debian/rules control $ dpkg-buildpackage -rfakeroot -us -uc -b
作成した以下のパッケージを、別の場所に保存。