SH/Tiny用GCCクロスコンパイラのコンパイル
SH/Tinyの内蔵FLASHは最大128kbyteであり,ルネサス純正のコンパイラを制限なく利用できるためWindows環境であればわざわざgccを使うメリットはないと思われる.
しかし,Linuxにおいては何らかのコンパイラを準備する必要がある.
コンパイラとしてGCCを選択し,ネット上の情報をもとにコンパイルを試みた.
ここで示す方法,特にオプションについては精査していないため必ずしも適切でない点に注意が必要である.
GCCコンパイラにおける必要物
ネットーサーフィンしていると下記3点セットが必要だという情報が複数出てくる.
- binutils・・・アセンブラなど
- gcc・・・コンパイラ
- newlib・・・ライブラリ
ホストマシン
コンパイルは私が普段使用しているlinux mint 17.1上で行った.
私の環境下では下記パッケージをインストールしておく必要があった.
- libgmp-dev
- libmpfr-dev
- libmpc-dev
コンパイルコマンド
わかる人にしかわからないと思うが,コンパイルは下記のように行った.
おおよそのメモ書きであって,正確にこのとおり実行したわけではない.
生成されるファイル一式は620MBほどあり,明らかに不要なものが含まれていると思われる.
$ cd
$ tar jxvf binutils-2.25.tar.bz2
$ cd binutils-2.25
$ ./configure --prefix=$HOME/bin/sh-gcc --target=sh-elf
$ make -j5
$ make install
$ PATH=$HOME/bin/sh-gcc/bin:$PATH
$ tar zxvf newlib-2.2.0-1.tar.gz
$ tar jxvf gcc-4.9.2.tar.bz2
$ cd
$ cd gcc-4.9.2
$ ln -s ../newlib-2.2.0-1/ .
$ mkdir build
$ cd build
$ ./configure --prefix=$HOME/bin/sh-gcc --target=sh-elf --enable-languages="c,c++" --with-newlib
--with-headers=../newlib-2.2.0-1/newlib/libc/include --disable-libssp
$ make
$ make install
$ cd
$ cd newlib-2.2.0-1
$ ./configure --prefix=$HOME/bin/sh-gcc --target=sh-elf
$ make -j5
$ make install