より良い方法があったのでこちらをご覧ください。
どうやらavr-libcのバージョンが異なるのが原因のようです。
- avr-libcのHomePageの最新バージョンはv2.0.0
- Raspberry Piにインストールされているavr-libcバージョンはv1.8
(1)最新化に必要なソフト
せっかくなのでgccも最新化します。
・binutils-2.29.1.tar.xz
https://www.gnu.org/software/binutils/
・gcc-7.2.0.tar.xz
https://gcc.gnu.org/
・gmp-6.1.2.tar.xz
https://gmplib.org/
・mpfr-3.1.6.tar.xz
http://www.mpfr.org/
・mpc-1.0.3.tar.gz
http://www.multiprecision.org/index.php?prog=mpc
・avr-libc-2.0.0.tar.bz2
http://www.nongnu.org/avr-libc/
・avr-size用パッチ
https://gist.github.com/larsimmisch/4190960
(2)コンパイル手順
avr-libcのHomePageにコンパイル手順の説明があります。基本的にこの手順で実施すればOKです。
(2-1)環境設定
1 2 3 4 5 | $ mkdir ~ /local $ PREFIX=$HOME /local $ export PREFIX $ PATH=$PATH:$PREFIX /bin $ export PATH |
(2-2)GNU Binutilsのコンパイル
1 2 3 4 5 6 7 8 9 10 11 12 13 | $ cd ~ /src/avr $ wget https: //ftp .gnu.org /gnu/binutils/binutils-2 .29.1. tar .xz $ tar xvf binutils-2.29.1. tar .xz $ wget https: //gist .github.com /larsimmisch/4190960/archive/16c6b9627f8451eeebd644a4b9a741edfdb0c45e .zip $ unzip 16c6b9627f8451eeebd644a4b9a741edfdb0c45e.zip $ cd binutils-2.29.1 /binutils $ patch -u < ../.. /4190960-16c6b9627f8451eeebd644a4b9a741edfdb0c45e/avr-binutils-size .patch $ cd .. $ mkdir obj-avr $ cd obj-avr/ $ .. /configure --prefix=$PREFIX --target=avr --disable-nls $ make -j4 $ make install |
(2-3) GNU gmpのコンパイル
gccをコンパイルするためにはgmp, mpfr, mpcが必要なため、先にコンパイルします。
1 2 3 4 5 6 7 8 | $ cd ~ /src/avr $ wget https: //gmplib .org /download/gmp/gmp-6 .1.2. tar .xz $ tar xvf gmp-6.1.2. tar .xz $ cd gmp-6.1.2/ $ . /configure --prefix=$PREFIX $ make -j4 $ make -j4 check $ make install |
(2-4) GNU mpfrのコンパイル
1 2 3 4 5 6 7 8 | $ cd ~ /src/avr $ wget http: //www .mpfr.org /mpfr-current/mpfr-3 .1.6. tar .xz $ tar xvf mpfr-3.1.6. tar .xz $ cd mpfr-3.1.6 $ . /configure --prefix=$PREFIX --with-gmp-build=.. /gmp-6 .1.2 $ make -j4 $ make -j4 check $ make install |
(2-5) GNU mpcのコンパイル
1 2 3 4 5 6 7 8 | $ cd ~ /src/avr $ wget ftp : //ftp .gnu.org /gnu/mpc/mpc-1 .0.3. tar .gz $ tar xvf mpc-1.0.3. tar .gz $ cd mpc-1.0.3 $ . /configure --prefix=$PREFIX --with-gmp=$PREFIX --with-mpfr=$PREFIX $ make -j4 $ make -j4 check $ make install |
(2-6) gccのコンパイル
1 2 3 4 5 6 7 8 9 | $ cd ~ /src/avr $ wget http: //ftp .tsukuba.wide.ad.jp /software/gcc/releases/gcc-7 .2.0 /gcc-7 .2.0. tar .xz $ tar xvf gcc-7.2.0. tar .xz $ cd gcc-7.2.0/ $ mkdir obj-avr $ cd obj-avr $ .. /configure --prefix=$PREFIX --target=avr -- enable -languages=c,c++ --disable-nls --disable-libssp --with-dwarf2 --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX $ make -j4 $ make install |
(2-7)avr-libcのコンパイル
1 2 3 4 5 6 7 | $ cd ~ /src/avr $ wget http: //download .savannah.gnu.org /releases/avr-libc/avr-libc-2 .0.0. tar .bz2 $ tar xvf avr-libc-2.0.0. tar .bz2 $ cd avr-libc-2.0.0/ $ . /configure --prefix=$PREFIX --build=`. /config .guess` --host=avr $ make -j4 $ make install |