最終更新: 2006-10-28 (土) 15:15:34
このページをDeliciousに追加 このページをはてなブックマークに追加 このページをlivedoor クリップに追加 このページをYahoo!ブックマークに追加

クロスコンパイル用パッケージの作成

目次

作成するパッケージについて

Debian でクロスコンパイルを行うために必要な binutils, libc, gcc のパッケージを、 DebianCrossCompilerHowto のページの説明に従って作成する。 ここでは、玄箱で動くプログラムを PC 上でコンパイルすることを目的に、

ホスト
i386
ターゲット
PowerPC

という組み合わせを対象として説明する。

APT の設定

/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 のパッケージの作成

以下のコマンドを実行し、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

libc のパッケージの作成

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 のパッケージの作成

以下のコマンドを実行し、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

パッケージの保存

作成した以下のパッケージを、別の場所に保存。

  • binutils
    • binutils-powerpc-linux_2.15-6_i386.deb
  • libc
    • libc6-dev-powerpc-cross_2.3.2.ds1-22sarge4_all.deb
    • libc6-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
    • cpp-3.3-powerpc-linux_3.3.5-13_i386.deb
    • g++-3.3-powerpc-linux_3.3.5-13_i386.deb
    • gcc-3.3-powerpc-linux_3.3.5-13_i386.deb
    • libgcc1-powerpc-cross_3.3.5-13_all.deb
    • libstdc++5-3.3-dev-powerpc-cross_3.3.5-13_all.deb
    • libstdc++5-powerpc-cross_3.3.5-13_all.deb
*1 不要と思われるパッケージもインストールされるが、1つ1つパッケージをインストールするよりも楽だし確実。
*2 binutils-2.16.1cvs20060413-1 以降のバージョンでは、パッチは不要。

(Counter:1, Today:1, Yesterday:0)
トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   最終更新のRSS