gcc version 1.30 Tool#2(X680x0)の改造版です。
無保証につき各自の責任で使用して下さい。
- ファイル「doscall.equ」が必要です。インクルードディレクトリに置いてください。
- doscall.macとは異なります。doscall.macをそのままdoscall.equの代わりに使うことはできません。
- SXモードを使う場合はファイル「sxcall.equ」が必要です。インクルードディレクトリに置いてください。
ライブラリとしてLIBCを使う場合は、これらのファイルはLIBCに同梱されてるので特別な作業は必要ありません。
ライブラリとしてXCを使う場合は、別途用意してください。手元になければ xc21-libxca が使えると思います。
- -Oオプションに0~2のレベルを指定できます。
- -O0 ... 最適化を抑止します。
- -O ... 通常の最適化を行います。互換性のため、環境変数
GCC_OPTION1で指定した最適化は変化しません。 - -O1 ... -Oと同じ。ただし
GCC_OPTION1で指定した最適化は無効になります。 - -O2 ... -Oに加え、-fstrength-reduce -fomit-frame-pointer -finline-functions -fforce-mem
が指定されます。また
GCC_OPTION1=Pの最適化(pea 0.w → clr.l -(sp))が有効になります。
- .sファイルへの
RUNS_HUMAN_VERSION equ ...の出力。 - GVRAM、TVRAMの使用。
- インダイレクトファイル。
- ワイルドカード展開。
-as-symbols=オプション。
- 事前定義マクロ
HUMAN68K、human68k。- ユーザープログラム側で使えるシンボルをコンパイラ側で使ってしまっているので、 将来削除するかもしれません。
__human68k__なら、gcc1p、gcc2、elf2x68kで共通して定義されます。
- 既定のアセンブラ: has060
- 既定のリンカー: hlk
- エラーログ: gcc.err
- ライブラリ: lib*.a
TEMP、temp... テンポラリファイルを作成するディレクトリ。include... インクルードファイルの置かれているディレクトリ。
include、libに複数のディレクトリを記述することはできません。
GCC_EXEC_PREFIX... コンパイラ実行ファイルの接頭語。SUNPRO_DEPENDENCIES... ファイル依存関係を出力するファイル名(-Mオプション)。DEPENDENCIES_OUTPUT... ファイル依存関係を出力するファイル名(-MMオプション)。
-
GCC_OPTION0... X680x0版GCCの拡張を許可します。 真里子版GCCの真里子、MARIKOからリネームされました。C: ソースコードデバッガ対応(-gオプション)D: 疑似統合環境(エラーのみ)E: 疑似統合環境(ワーニング含む)F: コンパイル過程の表示- 真里子版GCCにおける
A、Bは常に有効になっています。A: 2進数表記。割り込み処理関数。日本語識別子。__asm("extern reg")。B_SUPER()、SUPER()の特別扱い。B:__asm("frame reg")
-
GCC_OPTION1... オプションスイッチの指定。 真里子版GCCのGCC_OPTIONからリネームされました。A: -fforce-addrE: エラータグをED.X形式にするF: -fomit-frame-pointerI: -finline-functionsL: -fstrength-reduceM: -fforce-memP: pea 0.w → clr.l -(sp)S: -fstack_checkW: -Wall@: エラーメッセージを標準出力に出力する(既定では標準エラー出力)- 真里子版GCCで指定できる
G、Tは使用できません。 - 真里子版GCCにおける
O、+は常に有効になっています。O: X680x0専用の最適化を行う+: C++コメント//を認識する
-
GCC_ED... 疑似統合環境で使用するテキストエディタの指定(既定値em -e)。 真里子版GCCの満里奈、MARINAからリネームされました。 -
SXEQU...-SXオプション指定時にアセンブリコードに出力する.include sxcall.equのファイル名を指定します。 -
DOSEQU...-SXオプション無指定時(または-fhuman指定時)に アセンブリコードに出力する.include doscall.equのファイル名を指定します。 -
GCC_AS... アセンブラを指定します(既定値has060)。 -
GCC_LINK... リンカを指定します(既定値hlk)。 -
-m68020~-m68040指定時に出力するアラインメント整合命令を指定します。GCC_TEXT_ALIGN... 関数直前(既定値\\t.even\\n)。GCC_BLOCK_ALIGN... 無条件分岐直後。GCC_DATA_ALIGN... データ直前(既定値\\t.even\\n)。
PCやネット上での取り扱いを用意にするために、src/内のファイルはUTF-8で記述されています。 X68000上でビルドする際には、UTF-8からShift_JISへの変換が必要です。
あらかじめ、u8tosjをビルドしてインストールしておいてください。
トップディレクトリでmakeを実行してください。以下の処理が行われます。
- build/ディレクトリの作成。
- src/内の各ファイルをShift_JISに変換してbuild/へ保存。
次に、カレントディレクトリをbuild/に変更し、makeを実行してください。
実行ファイルが作成されます。
ファイルを適当なツールで適宜Shift_JISに変換してからmakeを実行してください。
UTF-8のままでは正しくビルドできませんので注意してください。
GNU GENERAL PUBLIC LICENSE Version 2 or later.
TcbnErik / 立花@桑島技研
https://github.com/kg68k/gcc1p