クロス・コンパイル環境(on openSUSE11.3)

玄箱カーネルコンパイルすると1日以上かかってしまい、時間ばかりかかって大変なので、openSUSE11.3に玄箱HGのクロス・コンパイル環境を構築します。

今回は、/usr/local/ppc-linuxの中に、コンパイル環境を構築します。

準備

  1. openSUSE11.3がインストールされているPC
  2. debian Lennyがインストールされている玄箱HG
  3. binutils-2.20.1a.tar.bz2
  4. gcc-core-4.4.3.tar.gz

手順

ライブラリの取得

玄箱HGからコンパイルに必要なライブラリをコピーする。

1.玄箱HGにライブラリ用のパッケージをインストールする。

# apt-get install libc6-dev

2.玄箱HGから/lib、/usr/lib、/usr/includeのファイルをコピーする。

$ su -
# mkdir kuro_lib
# cd kuro_lib
# cp -RL /lib ./
# cp -RL /usr/lib/* lib
# cp -RL /usr/include ./
# cd ..
# tar zcvf kuro_lib.tar.gz kuro_lib
# exit

3. 玄箱で作ったkuro_lib.tar.gzをopenSUSEで展開する。
kuro_lib.tar.gzは、ホームディレクトリに保存しておく。
そこから、 /usr/local/ppc-linux/kurobox以下に展開する。

$su
#mkdir -p /usr/local/ppc-linux/kurobox
#cd /usr/local/ppc-linux/kurobox
#cp ~/kuro_lib.tar.gz .
#tar zvxf kuro_lib.tar.gz
#exit

玄箱HGを使うのはここまで。

binutilsのインストール

まず、binutils-2.20.1a.tar.bz2をダウンロードします。
その後、適当なディレクトリに展開し、/usr/local/ppc-linux
binutilsをインストールします。

$tar jxvf binutils-2.20.1a.tar.bz2
$cd binutils-2.20
$./configure --target=ppc-linux \
--enable-shared \
--prefix=/usr/local/ppc-linux
$make
#su
#make install
#exit

注意)./configureでエラーが出た場合、gcc、make等が入っていることを確認する。

gccのインストール

まず、gcc-core-4.4.3.tar.gzをダウンロードします。

その後、適当なディレクトリに展開をします。
gccコンパイルする際の注意で、ディレクトリ作成し、その中でビルドを行わないと、ビルドエラーが発生します。
また、rootで実行する必要がある。

$ tar zxvf gcc-core-4.4.3.tar.gz
$ cd gcc-4.4.3
$ mkdir ppc-linux
$ cd ppc-linux
$ su
# export PATH=/usr/local/ppc-linux/bin/:$PATH
# ../configure \
> --prefix=/usr/local/ppc-linux \
> --target=ppc-linux \
> --enable-shared --disable-nls \
> --with-as=/usr/local/ppc-linux/bin/ppc-linux-as \
> --with-ld=/usr/local/ppc-linux/bin/ppc-linux-ld \
> --with-headers=/usr/local/ppc-linux/kurobox/include \
> --with-libs=/usr/local/ppc-linux/kurobox/lib
# make
# make install
# exit

パスを通す

gccのインストールまで終わると、『/usr/local/ppc-linux/bin』に
ppc-linux-gcc』と言う玄箱HG用のコンパイラが出来る。これが使えるようにパスの設定を行う。
常用する場合は、使用しているシェルの設定ファイルにPATHを追加する。

export PATH=/usr/local/ppc-linux/bin