newlibベースのgccツールチェインの作成
- インストール先と作業ディレクトリの指定
- gmp,mpfr,mpcのインストール
- binutilsのコンパイル
- gccのコンパイル(1回目)
- newlibのコンパイル
- gccのコンパイル(2回目)
- eabi用のツールチェインをビルドする
インストール先と作業ディレクトリの指定
PREFIX=$HOME/local/arm-tools
WORK=$HOME/build/arm
mkdir -p $WORK
gmp,mpfr,mpcのインストール
gccをコンパイルするにはこれらのライブラリが必要。 ディストリビューション標準のライブラリはバージョンが古いことがあるので、 最新のバージョンをコンパイルする。
cd $WORK
# gmpのインストール
wget ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.2.tar.bz2
tar jxf gmp-5.0.2.tar.bz2
cd gmp-5.0.2
./configure
make
sudo make install
sudo /sbin/ldconfig
cd ../
# mpfrのインストール
wget http://www.mpfr.org/mpfr-current/mpfr-3.1.0.tar.bz2
tar jxf mpfr-3.1.0.tar.bz2
cd mpfr-3.1.0
./configure
make
sudo make install
sudo /sbin/ldconfig
cd ../
# mpcのインストール
wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
tar zxf mpc-0.9.tar.gz
cd mpc-0.9
./configure
make
sudo make install
sudo /sbin/ldconfig
cd ../
binutilsのコンパイル
cd $WORK
wget http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2
tar jxf binutils-2.22.tar.bz2
mkdir build_binutils-2.22_arm
cd build_binutils-2.22_arm
../binutils-2.22/configure --prefix=$PREFIX --program-prefix=arm-elf- --target=arm-elf --enable-lto --enable-interwork --enable-multilib
make
make install
# binutilsがインストールされたディレクトリにパスを通す
export PATH=$PATH:$PREFIX/bin
gccのコンパイル(1回目)
cd $WORK
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.6.2/gcc-4.6.2.tar.bz2
tar jxf gcc-4.6.2.tar.bz2
mkdir build_gcc-4.6.2_arm_stage1
cd build_gcc-4.6.2_arm_stage1
../gcc-4.6.2/configure --prefix=$PREFIX --program-prefix=arm-elf- --target=arm-elf --enable-lto --enable-languages=c --without-headers --with-newlib --enable-interwork --enable-multilib --disable-shared --disable-thread
make all-gcc
make install-gcc
newlibのコンパイル
cd $WORK
wget ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz
tar zxf newlib-1.19.0.tar.gz
mkdir build_newlib-1.19.0_arm
cd build_newlib-1.19.0_arm
../newlib-1.19.0/configure --prefix=$PREFIX --target=arm-elf
make
make install
gccのコンパイル(2回目)
cd $WORK
mkdir build_gcc-4.6.2_arm_stage2
cd build_gcc-4.6.2_arm_stage2
../gcc-4.6.2/configure --prefix=$PREFIX --program-prefix=arm-elf- --target=arm-elf --enable-lto --enable-languages=c,c++ --with-newlib --enable-interwork --enable-multilib --disable-shared --disable-thread
make
make install
eabi用のツールチェインをビルドする
上記の手順でarm-elfとしている部分をarm-eabiに変えればOK