昔の手順より良い方法があったので手順を変更して再掲します。
どうやらavr-libcのバージョンが異なるのが原因のようです。
- avr-libcのHomePageの最新バージョンはv2.0.0
- Raspberry Piにインストールされているavr-libcバージョンはv1.8
(1)最新化に必要なソフト
せっかくなのでgccも最新化します。
・binutils-2.31.tar.xz
https://www.gnu.org/software/binutils/
・gcc-8.2.0.tar.xz
https://gcc.gnu.org/
・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ですが、スクリプト"download_prerequisites"を実行するとgccをビルドするのに必要なライブラリ(gmp,mpfr,mpc等)を自動的にダウンロードしてくれます。さらにgccのビルド時にダウンロードしたライブラリも一緒にビルドしてくれます。
(2-1)環境設定
$ mkdir $HOME/local $ export PREFIX=$HOME/local $ export PATH=$PREFIX/bin:$PATH
(2-2)GNU Binutilsのビルド
$ mkdir $HOME/src/avr-gcc $ cd $HOME/src/avr-gcc $ wget http://ftp.jaist.ac.jp/pub/GNU/binutils/binutils-2.31.tar.xz $ wget https://gist.github.com/larsimmisch/4190960/archive/16c6b9627f8451eeebd644a4b9a741edfdb0c45e.zip $ unzip 16c6b9627f8451eeebd644a4b9a741edfdb0c45e.zip $ tar xvf binutils-2.31.tar.xz $ cd binutils-2.31/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) gccのコンパイル
$ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.xz $ tar xvf gcc-8.2.0.tar.xz $ cd gcc-8.2.0 $ ./contrib/download_prerequisites $ mkdir obj-avr $ cd obj-avr $ ../configure --prefix=$PREFIX --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --with-dwarf2 $ make -j4 $ make install
(2-4)avr-libcのコンパイル
$ 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
(3)PATH設定
下記を$HOME/.profileに追加する
# set PATH so it includes user's private bin if it exists if [ -d "$HOME/local/bin" ] ; then PATH="$HOME/local/bin:$PATH" fi
0 件のコメント:
コメントを投稿