【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

gcc-4.6.1の対応アーキテクチャ

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を参照してください。