[OSASK 5206] Re: gcc移植計画.

  こんばんは、川合です。今までに分かったことをまとめます。


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/


ML番号でジャンプ
ML単語検索