組み込み自作OS-Macにて-Step1-その3

##########GCCのインストールについて(1.1.9)###########
GCC4.5以降のバージョンでは、gmp, mpfr, mpcの三つのライブラリが事前にインストールされており、ビルドするときにそれらを--with-gmp=のようにして指定する必要があるという(AVR-GCC4.5導入編)。よって、まずは、gmp, mpfr, mpcの三つをインストールすることから始める。


##########gmpのインストール(1.1.9)##########
gmp : GMP (The GNU MP Bignum Library) は多倍長計算を非常に高速に行うライブラリ(GMPの使い方より)。gccに必要のようである。

cd ~/12step/build/
tar jxvf gmp-5.0.5.tar.bz2
cd gmp-5.0.5

./configure --prefix=$HOME/12step/tools/gmp

make
make check

make install

###########mpfrのインストール(1.1.9)###################
cd ~/12step/build
tar zxvf mpfr-3.1.1.tar.gz
cd mpfr-3.1.1

./configure --prefix=$HOME/12step/tools/mpfr --with-gmp=$HOME/12step/tools/gmp

make
make check

make install

###########mpcのインストール(1.1.9)###################
cd ~/12step/build/
tar zxvf mpc-0.9.tar.gz 
cd mpc-0.9

./configure --prefix=$HOME/12step/tools/mpc --with-gmp=$HOME/12step/tools/gmp --with-mpfr=$HOME/12step/tools/mpfr

make
make check
make install



###########gccのインストール(1.1.9)###################
はまった。参考にさせていただいていたサイトのgccのビルドの項目のうち、./configureの--with-mpcの記述を変更したら、うまくいった。おそらく、--with-mpc=/usr/local/mpcではなくて、--with-mpc=$HOME/12step/tools/mpcであろう。

cd ~/12step/build/
tar zxvf gcc-4.7.1.tar.gz 
cd gcc-4.7.1

./configure --target=h8300-elf -disable-nls --disable-threads --disable-shared --disable-werror --enable-languages=c --prefix=$HOME/12step/tools --with-gmp=$HOME/12step/tools/gmp --with-mpfr=$HOME/12step/tools/mpfr --with-mpc=$HOME/12step/tools/mpc

make
ここで、またはまった。libgcc.mvars: No such file or directoryというエラーが出る。このエラーはすでにネット上で多く報告されている。gcc-4.3.x以降ではビルドの際に,ビルドディレクトリと ソースディレクトリを別にしないと「libgcc.mvarsが無い」というエラーになって しまうとのこと。ここにもここには、「v4.3以降は、ソースディレクトのトップ以外のディレクトリでビルドしないと以下のエラーになる仕様だそうです」とわざわざ書いてある。
そこで、GCCのディレクトリを消去して

cd ~/12step/build/
tar zxvf gcc-4.7.1.tar.gz 
cd gcc-4.7.1
mkdir build
cd build

../configure --target=h8300-elf -disable-nls --disable-threads --disable-shared --disable-werror --enable-languages=c --prefix=$HOME/12step/tools --with-gmp=$HOME/12step/tools/gmp --with-mpfr=$HOME/12step/tools/mpfr --with-mpc=$HOME/12step/tools/mpc

make
としてみた。すると、今度はlibssp/ssp.cに関連するエラーが出て、止まってしまった。
--disable-libssp
がはいっていた。そこで、

cd ~/12step/build/
tar zxvf gcc-4.7.1.tar.gz 
cd gcc-4.7.1
mkdir build
cd build

../configure --target=h8300-elf -disable-nls --disable-threads --disable-shared --disable-werror --enable-languages=c --prefix=$HOME/12step/tools --with-gmp=$HOME/12step/tools/gmp --with-mpfr=$HOME/12step/tools/mpfr --with-mpc=$HOME/12step/tools/mpc --disable-libssp

make

としてみた。どうやらこれでうまくいくようだ。
あとはインストール
make install

###############確認###################
tree ~/12step




##############パスを通す(注意)######################
後々判明したが、わざわざパスを通さなくてもMakefileに~/12step/tools/binに読み込むように記述を行うため、このパートはスキップすればよい。メモのために一応残しておくが。
ls ~/12step/tools/bin








# $HOME/12step/tools/binにはパスを通しておく。とよい。
vim ~/.bash_profile

#前

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

#後
#export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH=$HOME/12step/tools/bin:/opt/local/bin:/opt/local/sbin:$PATH

設定ファイルの変更を反映させる
source ~/.bash_profile

これで、例えば、h8と打ちかけてTabキーを押すと以下のようになる。







【参考文献】
坂井 弘亮『12ステップで作る組込みOS自作入門』カットシステム 2010