debian wheezy 上でのクロスコンパイラのビルド

debian 上でクロスコンパイル環境を作るには,以前は

debian にクロスコンパイラをインストールするには apt-line に emdebian を追加して aptitude でインストール

というのが定番でしたが,最近は emdebian の活動が怪しく,パッケージデータベースが更新されていないようです.

というわけで,「debian 上で emdebian に頼らずに自前でクロスコンパイラをビルドしよう」という話です.

対象アーキテクチャ

今回は armel (ARM EABI, little endian, soft float) を出力する toolchain を作成します. 他のアーキテクチャの場合は,「armel」と書いてある部分を適宜読み替えてください.

debian ソースパッケージ

実は,既に debian のソースパッケージ側でクロスコンパイラのビルドに対応していたりします. というわけで,その道筋に沿って deb パッケージをビルドすることになります.

xapt コマンドのインストール

xapt コマンドは

  • ホストアーキテクチャと異なるアーキテクチャのライブラリの deb パッケージをダウンロードして
  • クロス環境用の deb パッケージに変換して
  • インストールする

コマンドです.

何はともあれ,インストールしましょう. xapt パッケージ自体は普通の deb パッケージなので

# apt-get install xapt

で,オンラインインストールできます.

binutils

まずは as, ld などのコマンドを含む binutils のビルドから.

# apt-get source binutils                   # binutils のソースパッケージをダウンロード・展開
# apt-get build-dep binutils                # binutils パッケージのビルドに必要なパッケージをインストール
# cd binutils-x.yy                          # binutils のソースが展開されているディレクトリに移動
# TARGET=armel dpkg-buildpackage -b -uc -us # armel ターゲットの binutils パッケージをビルド
# cd ..
# dpkg -i binutils-arm-linux-gnueabi_*_i386.deb # deb パッケージのインストール

GCC

次は,GCC をビルドします.

# apt-get source gcc-4.7     # gcc-4.7 ソースパッケージのダウンロード・展開
# apt-get build-dep gcc-4.7  # gcc-4.7 パッケージのビルドに必要なパッケージをインストール
# xapt -a armel -m libc6-dev         # armel アーキテクチャの libc6-dev パッケージと,それに依存するパッケージのインストール
# apt-get install binutils-multiarch # binutils-multiarch パッケージのインストール
# cd gcc-4.7-*                       # gcc のソースコードが展開されているディレクトリに移動
# GCC_TARGET=armel dpkg-buildpackage -b -uc -us # gcc-4.7 パッケージをビルド
# cd ..
# dpkg -i *.deb                      # deb パッケージのインストール

gdb

gdb もビルドしてみましょう.

# apt-get source gdb     # ソースパッケージのダウンロード・展開
# apt-get build-dep gdb  # ビルドに必要なパッケージをインストール
# cd gdb-*

ここで debian/rules ファイルの以下の行を修正します.

(誤)sed -i "/Package: gdb64/,\$ d" -i "/Package: gdb-multiarch/,\$ d" debian/control
↓
(正)sed -i -e "/Package: gdb64/,\$ d" -e "/Package: gdb-multiarch/,\$ d" debian/control

ビルド作業に戻ります.

# TARGET=armel dpkg-buildpackage -b -uc -us # パッケージのビルド
# cd ..
# dpkg -i *.deb # deb パッケージのインストール

修正を入れたソースパッケージをビルドしておいても良いでしょう.

参考資料


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-03-28 (金) 19:54:00 (3706d)