*** Toolchain for SH-4AL 対応まとめ(20080805) [#l22dd513]
- gcc 自体は sh4_nofpu を認識するので、あくまでも sh4_nofpu でビルドする必要がある。
- 一方 glibc や一般的なアプリケーションは sh4_nofpu を認識できない。 認識するのは~
-m4 (FPU在り) と -m3(FPU無し)の二種類だけである。
- 結果として sh4 用にビルドした gcc に(FPU無しターゲット用という意味で) sh3-linux-gcc
という名前を付与し、パッケージのビルド時には sh3 ターゲットとしてビルドする。
*** GCC Tool Chain 関係 [#g9cb4d20]
- [[m3 を sh4(AL) に対して使用する際の問題点>m3tosh4]]
- [[GCC compiler option>GCC_OPT]]
- [[GCC compiler configulation>GCC_Config]]
- [[glibc config>GLIBC_Config]]
*** SuperH Arch 関係 [#ue542146]
- &ref(SH4-000-TOP-ABI-00013-1.0.pdf,center,SH-4 ABI Specification by SuperH);
- &ref(SH5-000-TOP-ABI-00002.pdf,center,SH-5 ABI Specification by SuperH);
*** [[Gentoo Reserch>GenToo]] [#bb289c91]
- [Gentoo 対応計画(2007-10)>ShGentooPlan]
*** Benchmark (Dhrystone)[#d3602255]
- http://ja.wikipedia.org/wiki/Dhrystone
- http://www.thinkit.co.jp/cert/article/0609/10/1/2.htm
- &ref(Dhrystone.xls);
- &ref(Dhrystone.JPG);
*** Gentoo で SH3 向けの Userland を生成する方法 [#pa51189c]
- ドキュメント
++これが一番基本のドキュメント。Gentooの操作(主にインストール)の基本。~
[[Gentoo Handbook:http://www.gentoo.org/doc/en/handbook/index.xml]]
++クロスコンパイルのしかた。クロスコンパイラの作り方等。工事中。~
[[Gentoo Embedded Handbook:http://www.gentoo.org/proj/en/base/embedded/handbook/]]
++サポートされていないCPUのサポートを追加する方法。~
Gentooの公式ドキュメントではありませんがVapier氏がSH4対応をやったときのドキュメントです。~
http://dev.gentoo.org/~vapier/PORTING-HOWTO
- 雑記
-- sh3(もしくはsh4-nofpu)とsh4は互換性がないCPUとして認識されると思います。
-- SHそのものではSH3がそれに相当するのですが、SH LinuxではSH3とSH4は互換性がありません。
-- i386を開始点にして、インストールの課程でPentium4やAthlonに特化していくことができるのが
Gentooの魅力なのですが、SH Linuxにはi386に相当するアーキテクチャがないために、別のCPUと
してあつかう必要があると思います。
-- ですが、保守コストのことを考えると、なるべく統一べきと思います。
現在可能性を期待しているのは、全体として(portageとして)はshひとつで、stageをSH3/4NOFPU
と SH4 と別々に提供する方法です。Gentooの仕組み的には問題はないと思います。
互換性のあるアーキテクチャでは一つのstage3から各人が派生できますが、この方法ではstage(1,2,3)
およびそのseedすべてを個別に準備、提供することになります。
この場合上記のVapier氏のドキュメントほど大変なことをする必要はありません。
-- ただ、この場合、Gentooには(多くのディストリがそうなっていますが)完全なブートストラップの機能
がないのが、手間を増やす原因となります。
-- ブートストラップにはseedステージが必要です。
これはGentooではありません。stage1からがGentooです。でも、現実的にはstage3をseedとして
再生産を繰り返してきた歴史があって、そのせいでSeedの作り方が失われました。
よってseedを手作業でつくる必要があります。簡単にいえばネイティブにコンパイルができるシステムです。
必要な機能はVapier氏のドキュメントから読みといてください。
-- 手作業でつくったシステムをgentooらしくととのえて、ブートストラップを開始します。
ととのえる方法は、上記のVapier氏のドキュメントに便利なスクリプトとともに乗っています。
ブートストラップは、手動でも、ツール(catalyst)でもできます。
-- (sh4が動いていることを前提としてportage側が無問題とすれば)
sh3のstage1,2,3さえあればgentooとしては完備です。
# もともとstage以外のバイナリは公式にはリリースされません。