Skip to content
/ gcc1p Public

gcc1p is a modified version of GCC Mariko version

License

Notifications You must be signed in to change notification settings

kg68k/gcc1p

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GCC(真里子版)の改造版

gcc version 1.30 Tool#2(X680x0)の改造版です。

無保証につき各自の責任で使用して下さい。

仕様

削除された機能

  • GVRAM、TVRAMの使用。
  • インダイレクトファイル。
  • ワイルドカード展開。

各種ファイル名

  • 既定のアセンブラ: has060
  • 既定のリンカー: hlk
  • エラーログ: gcc.err
  • ライブラリ: lib*.a

環境変数(Human68k共通)

  • TEMPtemp ... テンポラリファイルを作成するディレクトリ。
  • include ... インクルードファイルの置かれているディレクトリ。

includelibに複数のディレクトリを記述することはできません。

環境変数(オリジナルGCC)

  • GCC_EXEC_PREFIX ... コンパイラ実行ファイルの接頭語。
  • SUNPRO_DEPENDENCIES ... ファイル依存関係を出力するファイル名(-Mオプション)。
  • DEPENDENCIES_OUTPUT ... ファイル依存関係を出力するファイル名(-MMオプション)。

環境変数(X680x0版固有)

  • GCC_OPTION0 ... X680x0版GCCの拡張を許可します。 真里子版GCCの真里子MARIKOからリネームされました。

    • C: ソースコードデバッガ対応(-gオプション)
    • D: 疑似統合環境(エラーのみ)
    • E: 疑似統合環境(ワーニング含む)
    • F: コンパイル過程の表示
    • 真里子版GCCにおけるABは常に有効になっています。
      • A: 2進数表記。割り込み処理関数。日本語識別子。 __asm("extern reg")B_SUPER()SUPER()の特別扱い。
      • B: __asm("frame reg")
  • GCC_OPTION1 ... オプションスイッチの指定。 真里子版GCCのGCC_OPTIONからリネームされました。

    • A: -fforce-addr
    • E: エラータグをED.X形式にする
    • F: -fomit-frame-pointer
    • I: -finline-functions
    • L: -fstrength-reduce
    • M: -fforce-mem
    • P: pea 0.w → clr.l -(sp)
    • S: -fstack_check
    • W: -Wall
    • @: エラーメッセージを標準出力に出力する(既定では標準エラー出力)
    • 真里子版GCCで指定できるGTは使用できません。
    • 真里子版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)。

Build

PCやネット上での取り扱いを用意にするために、src/内のファイルはUTF-8で記述されています。 X68000上でビルドする際には、UTF-8からShift_JISへの変換が必要です。

u8tosjを使用する方法

あらかじめ、u8tosjをビルドしてインストールしておいてください。

トップディレクトリでmakeを実行してください。以下の処理が行われます。

  1. build/ディレクトリの作成。
  2. src/内の各ファイルをShift_JISに変換してbuild/へ保存。

次に、カレントディレクトリをbuild/に変更し、makeを実行してください。 実行ファイルが作成されます。

u8tosjを使用しない方法

ファイルを適当なツールで適宜Shift_JISに変換してからmakeを実行してください。 UTF-8のままでは正しくビルドできませんので注意してください。

License

GNU GENERAL PUBLIC LICENSE Version 2 or later.

Author

TcbnErik / 立花@桑島技研
https://github.com/kg68k/gcc1p