chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

AVR用の最新版gccを構築する。。が、沈没。。浮上

debianの.debパッケージで配布されるavr用gccは少し古くて、tiny45がサポートされていない。
自分の環境は以下

debian 4.0
kernel 2.6.188-6-686
gcc-avr Version 4.1.0


そこで、クロス開発用のgccコンパイルして作ることに。

libgccのライブラリを作る段階で、本来AVRでは使えないコードが吐かれている?ためエラーでMakeが中断


NEEDED -Dinhibit_libc -I. -I. -I../../.././gcc -I../../../../libgcc -I../../../../libgcc/. -I../../../../libgcc/../gcc -I../../../../libgcc/../include -o _mulsi3.o -MT _mulsi3.o -MD -MP -MF _mulsi3.dep -DL_mulsi3 -xassembler-with-cpp \
-c ../../../../libgcc/../gcc/config/avr/libgcc.S
../../../../libgcc/../gcc/config/avr/libgcc.S: Assembler messages:
../../../../libgcc/../gcc/config/avr/libgcc.S:281: Error: illegal opcode movw for mcu avr3
../../../../libgcc/../gcc/config/avr/libgcc.S:283: Error: illegal opcode movw for mcu avr3
make[4]: *** [_mulsi3.o] エラー 1
make[4]: ディレクトリ `/home/sumi/src/gcc-4.3.2/work/avr/avr35/libgcc' から出ま す

ぐぐると、パッチを当てないといけないらしい。。
http://sourceware.org/ml/binutils/2008-01/msg00037.html

一旦休憩。。>>再開。。

binutils-2.18用のパッチをとってきて当てる。


patch -p0 < 50-9-binutils-2.18-avr35.patch

すると、一ヶ所当たらないところがあり、手で当てる。

再度実行して、binutilsコンパイル成功

avr用のlibを作る。最初、avr-libc-1.6.2でコンパイルを始めたが、
途中でエラーになったため、ひとつ古いバージョンでトライ。
コンパイルしている途中で、実はdebパッケージのavr-gccコンパイル
されようとしていることがわかり、debパッケージのavrバイナリーは
一旦全て消去。

すみません。最終的にはできましたが、どうやったか、整理して書き直します。。