SH3向けクロスコンパイラ構築の補足
最新版ディストリビューションでのエラー
前回はcrosstoolによるSH3向けクロスコンパイラ構築による構築について解説しましたが、
最近ではcrosstoolがメンテナンスされていないようなので、
原因は、
- patches/
glibc-2. 3.6
diff -Naur glibc-2.3.6.orig/configure glibc-2.3.6/configure
--- glibc-2.3.6.orig/configure 2005-11-04 09:37:15.000000000 +0900
+++ glibc-2.3.6/configure 2012-01-30 14:01:22.073000003 +0900
@@ -3917,7 +3917,7 @@
ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 2.1[3-9]*)
+ 2.1[3-9]* | 2.2*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
@@ -3978,7 +3978,7 @@
ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 2.1[3-9]*)
+ 2.1[3-9]* | 2.2*)
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
crosstoolその他の補足
crosstoolに必要なソースパッケージに関しては前回に解説しますが、
gdb-6.
5.tar. bz2
→ gdb-6.5a. tar. bz2 linux-2.
6.15. 4.tar. bz2
→ linux-2.6.15. tar. bz2
GNU標準パッケージ
ソースパッケージのコンパイルについて
ソースコードのコンパイルは、
前回ではT-SH7706LSRボード上でgccでセルフコンパイルする環境を整備し、
前回の段階では、
何が必要か?
configureコマンドでコンパイル環境の自動生成をするには以下のパッケージを用意する必要があります。
- make-3.
82 - libtool-2.
4 - automake-1.
11 - autoconf-2.
68 - m4-1.
4.15
ソースパッケージのコンパイルに関しては、
注意しなければいけない点として、
コンパイル作業をするためにGNUの各種ミラーサイトから上記ソースパッケージをダウンロードします。
コンパイル作業の実際
前回、
makeのクロスコンパイル
makeのコンパイルはPC上で行います。
PC上の任意の作業フォルダ上に以下のようにmakeのソースパッケージを展開します。
$ tar xvjf make-3.82.tar.bz2
ソースパッケージを展開したら、
$ cd make-3.82 $ mkdir build $ cd build $ ../configure --prefix=/usr --host=sh3-linux --build=i686-vine-gnu --disable-nls
Makefileが自動生成されたら、
$ make $ make install prefix=~/shlinux
libtoolのクロスコンパイル
libtoolのコンパイルもPC上で行います。
PC上の任意の作業フォルダ上に以下のようにlibtoolのソースパッケージを展開します。
$ tar xvzf libtool-2.4.tar.gz
ソースパッケージを展開したら、
$ cd libtool-2.4 $ mkdir build $ cd build $ ../configure --prefix=/usr --host=sh3-linux --build=i686-vine-gnu
Makefileが自動生成されたら、
$ make $ make install prefix=~/shlinux
libtoolはクロスコンパイル環境に対してもインストールする必要がありますので、
$ rm -rf * $ ../configure --prefix=/ --host=sh3-linux --build=i686-vine-gnu
Makefileが自動生成されたら、
$ make # sudo make install prefix=/usr/sh3-linux/sh3-linux
automakeのクロスコンパイル
automakeのコンパイルもPC上で行います。
PC上の任意の作業フォルダ上に以下のようにautomakeのソースパッケージを展開します。
$ tar xvjf automake-1.11.tar.bz2
ソースパッケージを展開したら、
$ cd automake-1.11 $ mkdir build $ cd build $ ../configure --prefix=/usr --host=sh3-linux --build=i686-vine-gnu
Makefileが自動生成されたら、
$ make $ make install prefix=~/shlinux
automakeはクロスコンパイル環境に対してもインストールする必要がありますので、
$ rm -rf * $ ../configure --prefix=/ --host=sh3-linux --build=i686-vine-gnu
Makefileが自動生成されたら、
$ make # sudo make install prefix=/usr/sh3-linux/sh3-linux
autoconfのクロスコンパイル
autoconfのコンパイル、
PC上の任意の作業フォルダ上に以下のようにautoconfのソースパッケージを展開します。
$ tar xvjf autoconf-2.68.tar.bz2
ソースパッケージを展開したら、
$ cd autoconf-2.68 $ mkdir build $ cd build $ ../configure --prefix=/usr --host=sh3-linux --build=i686-vine-gnu
Makefileが自動生成されたら、
$ make $ make install prefix=~/shlinux
m4のクロスコンパイル
m4のコンパイルもPC上で行います。
PC上の任意の作業フォルダ上に以下のようにm4のソースパッケージを展開します。
$ tar xvjf m4-1.4.15.tar.bz2
ソースパッケージを展開したら、
$ cd m4-1.4.15 $ mkdir build $ cd build $ ../configure --prefix=/usr --host=sh3-linux --build=i686-vine-gnu
Makefileが自動生成されたら、
$ make $ make install prefix=~/shlinux
GNU標準パッケージのセルフコンパイル
セルフコンパイル
libtoolを例に、
T-SH7706LSRボード上でのconfigureコマンド実行やコンパイルは時間がかかるので忍耐強く待ちます。T-SH7706LSRボード上の任意の作業フォルダ上に以下のようにlibtoolのソースパッケージを展開します。
$ tar xvzf libtool-2.4.tar.gz
ソースパッケージを展開したら、
$ cd libtool-2.4 $ mkdir build $ cd build $ ../configure --prefix=/usr
Makefileが自動生成されたら、
$ make $ make install
次回は
次回はT-SH7706LSRボード上にSH3アーキテクチャーのrpmパッケージのインストールについて解説します。