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