wiki:AVR-GCC

Version 5 (modified by sgk, 11 years ago) (diff)

--

AVR用GCCを自分でビルドしてみる

AVRをいじっている皆さんの「出身」はどの方面でしょうか? ウィンドウズ方面?マック方面?僕はUnix/Linux方面です。 たぶん、Unix/Linux方面から来たせいだと思いますが、GUIで開発するのは得意じゃなくて、どうしてもコマンドラインで仕事したくなります。 そんなわけで、AVR用のGCCを自分でビルドしてみます。 ちょっと古いバージョンなら、普段使っているUbuntuにパッケージがあるのでインストールしておしまいなのですが、やっぱり最新版が欲しくなります。 なぜなら、AT90USB162とか、新しめのチップをいじりたいからです。

概要

目新しいことはありません。 AVR Libcのサイトにある、GCC等のビルド方法の解説ページに従ってビルドします。 最終的に、/usr/local/avr以下にすべてのファイルをインストールすることにします。

準備

ディレクトリを作成します。 スーパーユーザでmake installを行うと悲しいことが起きる可能性があるので、あらかじめchownで自分の物にしておきます。

% sudo mkdir /usr/local/avr
% sudo chown 自分 /usr/local/avr
% cd /usr/local/avr
% mkdir src

binutils

パッチを当てないと、アセンブラが最近のチップで導入された命令を知らないため、GCCのビルドでエラーになります。

% tar xvzf binutils-2.18.tar.gz
% cd binutils-2.18
% patch -p0 < パッチファイル
% mkdir build
% cd build
% ../configure --prefix=/usr/local/avr --target=avr --disable-nls

ここでちょっと修正が必要でした。 config.statusを開き、「/usr/local/avr/src//missing makeinfo」となっている部分を「makeinfo」に変更します。 makeinfoをちゃんと入れてあるのに、なぜか認識されていませんでした。環境によって異なると思います。

% vi config.status
% ./config.status

あとは通常通り。

% make
% make install

パスを通しておきましょう。

% export PATH=/usr/local/avr/bin:$PATH

GMPとMPFR

最近のGCCは、GMPとかMPFRとかいうソフトを使用します。 数学系のライブラリです。 もちろん、AVR用のバイナリに組み込まれるのではなくて、コンパイラ自身の実装のために使用しています。 これらがインストールされていない場合、GCCのビルドでエラーになります。 適切なバージョンがOSにインストール済みなら不要です。 ここでは、/usr/local/avrの下ではなく、/usr/localの下に直接インストールしてしまいます。

% tar xvjf gmp-4.2.4.tar.bz2
% cd gmp-4.2.4
% mkdir build
% cd build
% ../configure
% make
% sudo make install
% tar xvjf mpfr-2.3.2.tar.bz2
% cd mpfr-2.3.2
% mkdir build
% cd build
% ../configure
% make
% sudo make install

インストールしたライブラリを検索対象に加えておく必要があります。

% sudo ldconfig

GCC

% tar xvjf gcc-4.3.2.tar.bz2
% cd gcc-4.3.2
% mkdir build
% cd build
% ../configure --prefix=/usr/local/avr --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --with-dwarf2

適切なバージョンのGMPおよびMPFRが入っていないと、ここでエラーになります。 上に戻って、インストールします。

% make
% make install

エラーになった場合は、上記のパスを通すのを忘れていないか、ldconfigを忘れていないか確認します。

AVR Libc

% tar xvjf avr-libc-1.6.2.tar.bz2
% cd avr-libc-1.6.2
% mkdir build
% cd build
%  ../configure --prefix=/usr/local/avr --build=`../config.guess` --host=avr
% make
% make install

後片付け

必要に応じて、もらってきたアーカイブファイル、展開したソースなどを削除します。

最後に、必要に応じて、/usr/local/avrディレクトリ以下をrootの持ち物に変更します。

% sudo chown -R root.root /usr/local/avr

(2008/10/3 - sgk)