GCCバージョン4.9.4対応

書籍サポートページ で配布しているアセンブラ出力環境の,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 40GB11GB
cross2-gcc450GB14GB

メールは kozos(アットマーク)kozos.jp まで