クロスコンパイラの使い方

目次

  1. インストール
  2. 実行例
  3. 制限事項
  4. その他

インストール

アーカイブ(bin1.lzh, bin2.lzh)をダウンロードし、ファイルを展開します。

  1. 適当なディレクトリに 実行ファイル群を展開します。パスは通っていても構いません が、X68k-gccと混乱するので、クロスコンパイラにはパスを通さずに、常にフルパスで 実行するか、gcc.xをgcc-cross.xなどとリネームするのが良いと思います。また、 gcc.xから起動されるcpp.x,cc1.x,as.x,ld.xは必ずgcc.xと同じディレクトリに置く様に してください。
Cライブラリを使用する場合は、PPC LIBCの使い方を 参照してください。 その他、HUPAIR対応シェル(ksh,fishなど)が必要です。これはgcc.xがcpp.xを起動する 際に長い引き数を渡す為です。他、GNU-make などがあるとなお良いでしょう(XC-make はSHELLを指定できないので少々不便かも知れません)。

実行例

ppgccsmpl.lzh 内 のMakefileが全てです(^^;
LIBPATH,INCPATH,BINPATHをインストールしたディレクトリに書き換えます。そして、 適当なCソース(仮にaaa.c)を書いたら、
  gmake aaa
と実行して下さい。すると、aaa, map.log, aaa.bin, aaa.dis の四つのファイルが できあがります。aaa.binはppcsim.xでロードして実行する事が可能です。

制限事項

最適化レベルを上げると、メモリが足りなくなりハング状態に陥る事があります。 m68kに比べてコンパイラ自体が大きい事もあり、メモリフル実装のマシンでも厳しい 状態にある様です。もし、どうしてもコンパイルできない場合は あきらめて最適化レベルを下げて下さい(^^; また、-O0でもダメな場合は今の環境では ダメという事で、すっぱりあきらめてください(^^;;
SJIS日本語は通りません。EUCなら通るかも知れませんが、試していません。コメントに SJIS日本語を書くのはOKです。ただし、/*〜*/形式のコメントに限ります。
includeパスなど、環境変数による指定はできません。-Iで指定する様にして下さい
HUPAIR対応シェル上でしか正しく動作しません。ただし、実行時にシェルの上でgcc.x が動作すれば良いので、MakefileなどでSHELL=を指定している場合は、通常使うシェル はCOMMAND.Xなどで構いません。

その他

かなりジャンク風味漂っていますがごかんべん願います(^^;>というのも、そもそも gccが使えるかどうかを実験しただけの産物なので、その先の事はまだ考えられて いない状態です。
gccは gcc-2.95.2をconfigure '--target=powerpc-*-elf' でconfigureし、makeしま した。configureの実行も全てX68k上(しかもHuman上)で行いましたので、死ぬほど時間 がかかりました(^^; そういう事もありまして、gcc.xがHumanと少し相性が良くなかった のをいじった以外はソースコードをいじっていませんし、これからもいじるつもりは ありません。ですから、Linuxなどで作ったクロスコンパイラと同じコンパイル結果を 得られるハズです。メモリや実行速度の点からも、Linuxなどで開発を行えたらいい なぁと思っています。
ちなみにas,ldなどのbinutilsは2.9.1をコンパイルしただけです。


TOP PREV