こんばんは、川合です。今までに分かったことをまとめます。 MITSUNARI shigeo さんは 2002/10/22 13:09:20 の「[OSASK 5202] Re: gcc移植計画.」で書きました: >かなり大変だと思いますががんばってください。 >先ほど gcc-3.2-20020817-1.src.tar.gz を Linux 上で展開して ./configure && make >したら20〜30分でバイナリが出来上がりました(P4-2GHz)。 >作業後のディレクトリサイズは 290MB 程度でした。 >ちなみに gcc 直下にできた Makefile が 4900行でした。 がんばってみました。今日は少し雑用があってフルタイムでは勉強で きませんでしたが、それでもまあまあ進歩しました。 ・I.Tak.さんの指摘通り、cpp0はプリプロセッサ、cc1はコンパイラ、 asはアセンブラでした。 →gcc.exeなしでコンパイルする方法が分かって、それは以下の通 りでした。 cpp0 -I. -o helloc4.i helloc4.c cc1 -O2 -o helloc4.s helloc4.i as -o helloc4.o helloc4.s これで、それぞれの中間ファイルの中身も分かりました。 ・cc1はプリプロセッサも含んでいる。 →cc1 -O2 -I. -o helloc4.s helloc4.cとやったところ、cpp0を呼 び出すことなくアセンブラソースが出てきました。ということは、cc 1はプリプロセッサを内蔵しているというわけです。きちんと分かれ ているんだと思ったのにけしからんです。とりあえずいったん分離さ せる方針なのでサイズ縮小の可能性は上がりました。 ・cc1plusは、cc1にC++の文法解釈機能を付加したものじゃないかな? →ファイル名から勝手に想像しているだけです。違うかもしれませ ん。 ・cygwinでgcc-3.2-20020817-1.src.tar.gzから、cpp0.exe、cc1.exe、 cc1plus.exeの生成に成功しました。cygwin内では「gcc version 2.9 5.3-5 (cygwin special)」というのを使ってビルドしました。生成し たcpp0とcc1でhelloc4.sを作ってみましたが、うまくいっているよう です。 ・作ったcpp0とcc1はすさまじく巨大です。 →cpp0.exe : 555KB (MinGWのcpp0.exeは93.0KBです) cc1.exe : 7.49MB (MinGWのcc1.exeは2.50MBです) なんでこんなにでかいのか分かりませんが、これからがんばって小さ くするまでのことです。 ・まずはcpp0.exeをMinGWで! →cpp0.exeはプリプロセッサで、とりあえずこれに集中的に取り組 むことにします。プリプロセッサはASKAでも使いますので、あって困 るものではありません。まずはMinGWで作れるようになって、そしてコ ンパクト化して、最後にOSASK上で走るようにします。 ・GASのソースはどこにあるんだろう? →as.exeも移植しなければいけないので、gasのソースがほしいん ですが、どこにあるかご存知の方はおられますか? cygwin上とはいえ、cpp0やcc1が生成できてとても嬉しいです。これ はくーみんさん、光成さん、I.Tak.さんのおかげです。ありがとうござ いました。 明日の晩にまた報告しますので、お楽しみに。 それでは。 -- 川合 秀実(KAWAI Hidemi) OSASK計画代表 / システム設計開発担当 E-mail:kawai !Atmark! imasy.org Homepage http://www.imasy.org/~kawai/