書籍サポートページ で配布しているアセンブラ出力環境の,gccバージョン4.9.4対応版(v1.0版)です. (2017/09/06公開)
※ 現時点での最新版はv1.2版 です.
※ 書籍中では,v1.0版を第4部で説明・利用しています.
gccなどのツール類に2017/05時点での最新版を利用しており,gccもバージョン4.9.4 になっているので,実用的に利用することも可能だと思います.
サンプルをmake済みの状態で配布しているので,ダウンロードしてとりあえず展開 すれば,各アーキテクチャのアセンブラを見ることだけならそのままできます. (sampleディレクトリを参照してください.*.dが各アーキテクチャのアセンブラ出力 です)
※ 書籍で利用している標準のアセンブラ出力環境はgccバージョン3であり, 出力内容が異なります.書籍の内容を試したい場合には, 標準のアセンブラ出力環境 を利用してください.
フリーソフトウェアですので,当然ながら無保証です. 各自の責任の下で利用してください.
利用できるアーキテクチャは以下です.
※ いくつかのアーキテクチャが新たに使えるようになりましたが,
逆に使えなくなったアーキテクチャもいくつかあります.
(利用可能なアーキテクチャ)
AArch64 Alpha ARM ARM(Thumb) AVR AVR(8bit) Blackfin CR16 CRIS Epiphany FR30 FR-V H8/300 H8/300H PA-RISC i386 IA64 LM32 M32C M32R 68000 M・CORE MicroBlaze MIPS MIPS16 MIPS64 MN10300 Moxie MSP430 NiosII PDP-11 PowerPC PowerPC64 RL78 RX S/390 SH SH64 SPARC SPU StrongARM TIC6x V850 VAX x86-64 XScale Xstormy16 Xtensa
(Hello Worldのサンプルプログラムを実行可能なアーキテクチャ)
AArch64 ARM ARM(Thumb) AVR Blackfin CR16 CRIS FR-V H8/300 i386 M32C M32R M・CORE MicroBlaze MIPS MIPS16 MN10300 Moxie MSP430 PowerPC RL78 RX SH SH64 SPARC V850 ※ i386はネイティブ実行,それ以外はGDBのシミュレータ利用で実行. ※ ただしシミュレータで動作確認できますよくらいの手抜きのものなので,i386以外は実機とかで動かすのはたぶん無理.
(newlibによりprintf()でのHello Worldが実行可能なアーキテクチャ)
AArch64 ARM Blackfin CR16 CRIS i386 M32R M・CORE MicroBlaze MIPS MN10300 PowerPC RL78 RX SH SPARC V850
利用にはbinutils,gcc,gdbが必要です.またgcc4のビルドにはgmp,mpfr,mpcといった ライブラリのインストールがあらかじめ必要です.(gmp,mpfr,mpcのビルドと インストールにも対応していますので,環境構築はとても楽です)
これらのツール類は2017/05時点での最新版を利用しています.
binutils,gcc,gdb,gmp,mpfr,mpcはGNUのサイト からダウンロードできます. newlib はRedHatのサイト からダウンロードできます. いちおうオリジナルを以下でも配布します.
また添付のfetch.shを利用することで,ダウンロードとMD5チェックサム計算を 行えるようにしてあります.なので手動でダウンロードせずに,fetch.shでまとめて 持ってきてしまってもOKです.
ビルドとインストールには,以下のサイズがだいたい必要になります. 以下はFreeBSDでのビルド時のサイズ例ですが,Linux系でもだいたい同じようです. Cygwinは未サポートです.
ビルドディレクトリは環境構築後は削除することができます.また後述する 「ワークディレクトリを削除しながらビルド」を利用すれば, ビルドディレクトリはtoolchainのサイズくらい(1.5GB程度)で済みます.
利用環境 | ビルドディレクトリ | インストール先 |
cross-gcc4 | 40GB | 11GB |
cross2-gcc4 | 50GB | 14GB |