gcc-4.6.1がサポートするアーキテクチャについて調べました。ソースのgcc/configを見ると以下の39種類が存在します。
- alpha, arc, arm, avr, bfin, cris, crx, fr30, frv, h8300, i386, ia64, iq2000, lm32, m32c, m32r, m68hc11, m68k, mcore, mep, microblaze, mips, mmix, mn10300, moxie, pa, pdp11, picochip, rs6000, rx, s390, score, sh, sparc, spu, stormy16, v850, vax, xtensa
すべてのアーキテクチャを試した所、以下の4つは正常動作しませんでした。gccのバージョンを下げれば動作しました。
- crx, lm32, m68hc11, mep
以下の4つはOS独立のtargetが指定できません。OS依存targetではlibgccがlibcに依存します。なお、alphaは簡単なパッチでalpha-elfに対応できます。⇒id:n7shi:20110625
- alpha, pa, s390, vax
以下の3つはELFに対応していません。picochipはbinutilsが未対応のため、他のアセンブラと組み合わせて使うことが前提のようです。
- mmix, pdp11, picochip
これらをまとめると以下のようになります。targetは各アーキテクチャにつき1つだけ挙げていますが、それしかサポートされていないという意味ではありません(詳細はソースのgcc/config.gccを参照)。なるべくOS非依存なものを選んでいます。
arch | target例 | binutils | gcc | 備考 |
---|---|---|---|---|
alpha | alpha-elf | 2.21.1 | 4.6.1 | パッチ適用 |
arc | arc-elf | 2.21.1 | 4.6.1 | --enable-obsolete |
arm | arm-elf | 2.21.1 | 4.6.1 | |
avr | avr-elf | 2.21.1 | 4.6.1 | |
bfin | bfin-elf | 2.21.1 | 4.6.1 | |
cris | cris-elf | 2.21.1 | 4.6.1 | |
crx | crx-elf | 2.21.1 | 4.5.3 | gcc-4.6.1ではinternal compiler error |
fr30 | fr30-elf | 2.21.1 | 4.6.1 | |
frv | frv-elf | 2.21.1 | 4.6.1 | |
h8300 | h8300-elf | 2.21.1 | 4.6.1 | |
i386 | i386-elf | 2.21.1 | 4.6.1 | |
ia64 | ia64-elf | 2.21.1 | 4.6.1 | libgccがstdlib.hを要求(空でOK) |
iq2000 | iq2000-elf | 2.21.1 | 4.6.1 | 最適化でinternal compiler error |
lm32 | lm32-elf | 2.21.1 | 4.5.3 | gcc-4.6.1ではinternal compiler error |
m32c | m32c-elf | 2.21.1 | 4.6.1 | |
m32r | m32r-elf | 2.21.1 | 4.6.1 | |
m68hc11 | m68hc11-elf | 2.21.1 | 4.0.4 | gcc-4.6.1ではinternal compiler error |
m68k | m68k-elf | 2.21.1 | 4.6.1 | |
mcore | mcore-elf | 2.21.1 | 4.6.1 | |
mep | mep-elf | 2.21.1 | 4.5.3 | gcc-4.6.1ではinternal compiler error |
microblaze | microblaze-elf | 2.21.1 | 4.6.1 | |
mips | mips-elf | 2.21.1 | 4.6.1 | |
mmix | mmix-knuth-mmixware | 2.21.1 | 4.6.1 | Knuth先生の独自アーキテクチャ |
mn10300 | mn10300-elf | 2.21.1 | 4.6.1 | |
moxie | moxie-elf | 2.21.1 | 4.6.1 | |
pa | hppa-linux | 2.21.1 | 4.6.1 | |
pdp11 | pdp11-aout | 2.21.1 | 4.6.1 | ELF未対応 |
picochip | picochip | × | 4.6.1 | binutils未対応 |
rs6000 | powerpc-elf | 2.21.1 | 4.6.1 | |
rx | rx-elf | 2.21.1 | 4.6.1 | |
s390 | s390-linux | 2.21.1 | 4.6.1 | |
score | score-elf | 2.21.1 | 4.6.1 | --enable-obsolete |
sh | sh-elf | 2.21.1 | 4.6.1 | |
sparc | sparc-elf | 2.21.1 | 4.6.1 | |
spu | spu-elf | 2.21.1 | 4.6.1 | |
stormy16 | xstormy16-elf | 2.21.1 | 4.6.1 | |
v850 | v850-elf | 2.21.1 | 4.6.1 | |
vax | vax-netbsdelf | 2.21.1 | 4.6.1 | |
xtensa | xtensa-elf | 2.21.1 | 4.6.1 | 最適化でリンクエラー |
すべてのアーキテクチャのクロスコンパイラをWindows用にコンパイルして提供しています。詳細はid:n7shi:20110627を参照してください。