書籍サポートページ で配布しているアセンブラ出力環境の,gccバージョン4対応版です. (2013/03/24初版公開,現時点での最新版は2013/08/26版)
gccなどのツール類に2013/03/24時点での最新版を利用しており,gccもバージョン4系 になっているので,実用的に利用することも可能だと思います.
サンプルをmake済みの状態で配布しているので,ダウンロードしてとりあえず展開 すれば,各アーキテクチャのアセンブラを見ることだけならそのままできます. (sampleディレクトリを参照してください.*.dが各アーキテクチャのアセンブラ出力 です)
※ 書籍で利用している標準のアセンブラ出力環境はgccバージョン3であり, 出力内容が異なります.書籍の内容を試したい場合には, 標準のアセンブラ出力環境 を利用してください.
フリーソフトウェアですので,当然ながら無保証です. 各自の責任の下で利用してください.
利用できるアーキテクチャは以下です.
※ いくつかのアーキテクチャが新たに使えるようになりましたが,
逆に使えなくなったアーキテクチャもいくつかあります.
(前回から引続き利用可能なアーキテクチャ)
alpha arm arm16 avr avr8 cris frv h8300 h8300h hppa i386 m32r m68k mips mips16 mips64 mn10300 pdp11 powerpc sh sh64 sparc strongarm v850 xscale xstormy16 xtensa
(新規に追加されたアーキテクチャ)
bfin cr16 m32c microblaze moxie rl78 rx spu tic6x
(Hello Worldのサンプルプログラムを実行可能なアーキテクチャ)
arm arm16 avr bfin cr16 cris frv h8300 i386 m32c m32r microblaze mips mips16 mn10300 powerpc rl78 rx sh sh64 sparc v850 ※ i386はネイティブ実行,それ以外はGDBのシミュレータ利用で実行. ※ ただしシミュレータで動作確認できますよくらいの手抜きのものなので,i386以外は実機とかで動かすのはたぶん無理.
(newlibによりprintf()でのHello Worldが実行可能なアーキテクチャ)
arm bfin cr16 cris i386 m32r microblaze mips mn10300 powerpc rx sh sparc v850
利用にはbinutils,gcc,gdbが必要です.またgcc4のビルドにはgmp,mpfr,mpcといった ライブラリのインストールがあらかじめ必要です.(gmp,mpfr,mpcのビルドと インストールにも対応していますので,環境構築はとても楽です)
これらのツール類は2013/03/24時点での最新版を利用しています.
※ ただしnewlibのみ,最新版のnewlib-2.0.0でなく旧版のnewlib-1.20.0を利用して
います.これはnewlib-1.20.0で検証を進めていたのと,メジャーバージョンが
上がって大きく違いがあるといやだなあという理由のためで,newlib-2.0.0で
とくに不具合とかあったからというわけではないです.ていうかnewlib-2.0.0を
試していないです.
binutils,gcc,gdb,gmp,mpfr,mpcはGNUのサイト からダウンロードできます. newlib はRedHatのサイト からダウンロードできます. いちおうオリジナルを以下でも配布します.
また添付のfetch.shを利用することで,ダウンロードとMD5チェックサム計算を 行えるようにしてあります.なので手動でダウンロードせずに,fetch.shでまとめて 持ってきてしまってもOKです.
ビルドとインストールには,以下のサイズがだいたい必要になります. 以下はFreeBSDでのビルド時のサイズ例ですが,Linux系でもだいたい同じようです. Cygwinでは未検証ですが,だいたい2〜3割増しになるようです.
ビルドディレクトリは環境構築後は削除することができます.また後述する 「ワークディレクトリを削除しながらビルド」を利用すれば, ビルドディレクトリはtoolchainのサイズくらい(1.2GB程度)で済みます.
利用環境 | ビルドディレクトリ | インストール先 |
cross-gcc4 | 14.1GB | 4.6GB |
cross2-gcc4 | 19.5GB | 6.3GB |
大きな改良点は以下です.
% ./build.sh arm-elf mips-elf (ARMとMIPSのみビルド) % ./build-install-all.sh sh-elf (SHのみビルドしインストール) % ./all.sh -build -install -clean arm-elf mips-elf (ARMとMIPSについて,ビルド,インストール,クリーンを行う)
以下は旧版です.いちおう配布しますが,とくに理由無ければこのページの一番上の 最新版を利用してください.