Changes between Initial Version and Version 1 of AVR-GCC-2012


Ignore:
Timestamp:
Sep 21, 2012 12:35:55 PM (12 years ago)
Author:
sgk
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AVR-GCC-2012

    v1 v1  
     1= AVR用GCCを自分でビルドしてみる =
     2
     3== 概要 ==
     4目新しいことはありません。
     5[http://www.nongnu.org/avr-libc/ AVR Libcのサイト]にある、[http://www.nongnu.org/avr-libc/user-manual/install_tools.html GCC等のビルド方法の解説ページ]に従ってビルドします。
     6最終的に、`/usr/local/avr`以下にすべてのファイルをインストールすることにします。
     7
     8== 準備 ==
     9ディレクトリを作成します。
     10スーパーユーザでmake installを行うと悲しいことが起きる可能性があるので、あらかじめchownで自分の物にしておきます。
     11
     12{{{
     13% sudo mkdir /usr/local/avr
     14% sudo chown 自分 /usr/local/avr
     15% cd /usr/local/avr
     16% mkdir src
     17}}}
     18
     19== binutils ==
     20
     21 * [http://sources.redhat.com/binutils/ このあたりからbinutils-2.18をもらってきます。]
     22 * [http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/avr-binutils/files/patch-newdevices このあたりからパッチファイルをもらってきます。]
     23
     24パッチを当てないと、アセンブラが最近のチップで導入された命令を知らないため、GCCのビルドでエラーになります。
     25
     26{{{
     27% tar xvzf binutils-2.18.tar.gz
     28% cd binutils-2.18
     29% patch -p0 < パッチファイル
     30% mkdir build
     31% cd build
     32% ../configure --prefix=/usr/local/avr --target=avr --disable-nls --disable-werror
     33% make
     34% make install
     35}}}
     36
     37パスを通しておきましょう。
     38
     39{{{
     40% export PATH=/usr/local/avr/bin:$PATH
     41}}}
     42
     43== GMPとMPFR ==
     44
     45最近のGCCは、GMPとかMPFRとかいうソフトを使用します。
     46数学系のライブラリです。
     47もちろん、AVR用のバイナリに組み込まれるのではなくて、コンパイラ自身の実装のために使用しています。
     48これらがインストールされていない場合、GCCのビルドでエラーになります。
     49適切なバージョンがOSにインストール済みなら不要です。
     50ここでは、`/usr/local/avr`の下ではなく、`/usr/local`の下に直接インストールしてしまいます。
     51
     52 * [http://gmplib.org/ このあたりからGMPをもらってきます。]
     53 * [http://www.mpfr.org/ このあたりからMPFRをもらってきます。]
     54
     55{{{
     56% tar xvjf gmp-4.2.4.tar.bz2
     57% cd gmp-4.2.4
     58% mkdir build
     59% cd build
     60% ../configure
     61% make
     62% sudo make install
     63}}}
     64
     65{{{
     66% tar xvjf mpfr-2.3.2.tar.bz2
     67% cd mpfr-2.3.2
     68% mkdir build
     69% cd build
     70% ../configure
     71% make
     72% sudo make install
     73}}}
     74
     75インストールしたライブラリを検索対象に加えておく必要があります。
     76
     77{{{
     78% sudo ldconfig
     79}}}
     80
     81== GCC ==
     82
     83 * [http://gcc.gnu.org/ このあたりからGCCをもらってきます。]
     84
     85{{{
     86% tar xvjf gcc-4.3.2.tar.bz2
     87% cd gcc-4.3.2
     88% mkdir build
     89% cd build
     90% ../configure --prefix=/usr/local/avr --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --with-dwarf2
     91}}}
     92
     93適切なバージョンのGMPおよびMPFRが入っていないと、ここでエラーになります。
     94上に戻って、インストールします。
     95
     96{{{
     97% make
     98% make install
     99}}}
     100
     101エラーになった場合は、上記のパスを通すのを忘れていないか、`ldconfig`を忘れていないか確認します。
     102
     103== AVR Libc ==
     104
     105 * [http://download.savannah.gnu.org/releases/avr-libc/ このあたりからAVR Libcをもらってきます。]
     106
     107{{{
     108% tar xvjf avr-libc-1.6.2.tar.bz2
     109% cd avr-libc-1.6.2
     110% mkdir build
     111% cd build
     112%  ../configure --prefix=/usr/local/avr --build=`../config.guess` --host=avr
     113% make
     114% make install
     115}}}
     116
     117== 後片付け ==
     118
     119必要に応じて、もらってきたアーカイブファイル、展開したソースなどを削除します。
     120
     121最後に、必要に応じて、`/usr/local/avr`ディレクトリ以下をrootの持ち物に変更します。
     122
     123{{{
     124% sudo chown -R root.root /usr/local/avr
     125}}}
     126
     127''(2008/10/3 - sgk)''