2017-03-26
Linux上で、AVR用GCCツールチェインを構築します。
gccは執筆時(2013-07-27)現在、4.8.1が最新ですが、最新のgccではコンパイル中にエラーが出ることがあります。4.5.2はATTINY2313に対応していないそうです。ここでは、問題の無かった4.4系の最終版であるgcc-4.4.7を採用しました。
前述のアーカイブをすべて展開しておきます。
su export PATH=/usr/local/avr/bin:$PATH cd gmp-5.1.2 mkdir build cd build ../configure --prefix=/usr/local --disable-shared make make install cd ../../ cd mpfr-3.1.2 mkdir build cd build ../configure --prefix=/usr/local --disable-shared --with-gmp=/usr/local make make install cd ../../ cd mpc-1.0.1 mkdir build cd build ../configure --prefix=/usr/local --with-gmp=/usr/local --with-mpfr=/usr/local make make install cd ../../ cd binutils-2.23.2 mkdir build cd build ../configure --prefix=/usr/local/avr --target=avr --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --disable-nls make make install cd ../../ cd gcc-4.4.7 mkdir build cd build ../configure --prefix=/usr/local/avr --target=avr --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --enable-languages=c,c++ --enable-long-long --disable-shared --disable-libada --disable-libssp --disable-nls MAKEINFO=missing make make install cd ../../ cd avr-libc-1.8.0 mkdir build cd build ../configure --prefix=/usr/local/avr --host=avr make make install cd ../../
gcc の configure の最後に付いている MAKEINFO=missing ですが、texinfo文書を処理しないことを指定します。無くても成功する場合がありますが、古いgccと新しいmakeinfoの組み合わせでビルドすると、互換性の問題で、次のようなエラーが発生します。
../../gcc/doc/cppopts.texi:772: @itemx must follow @item Makefile:4270: recipe for target 'doc/cpp.info' failed
Debian 8 (Jessie) では gcc のビルドの途中で失敗するようです。 Debian 7 (Wheezy) では成功しました。