[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]  


コンフィギュレーション・ファイル

コンフィギュレーション・ファイル`xm-machine.h'には、 コンパイラが実行されるマシンおよびシステムに関するマクロ定義が含まれています。 `machine.h'の中の定義は、 これとは異なり、 コンパイラが生成するコードが実行されるマシンに関する情報です。 実際には、 `xm-machine.h'の中のほとんどの値は、 GCCが動作するすべてのマシンにおいて同一です。 したがって、 どのコンフィギュレーション・ファイルも、 そのかなりの部分は同じ内容です。 しかし中には、 違いのあるマクロも含まれています。

USG
ホスト・システムがSystem Vである場合、 このマクロを定義してください。
VMS
ホスト・システムがVMSである場合、 このマクロを定義してください。
FATAL_EXIT_CODE
重大なエラーが発生した後にコンパイラが終了する際に、 コンパイラの返すステータス・コードを表すCの式です。
SUCCESS_EXIT_CODE
重大なエラーが発生していない状況でコンパイラが終了する際に、 コンパイラの返すステータス・コードを表すCの式です。
HOST_WORDS_BIG_ENDIAN
ホスト・マシンが、 複数ワードから構成される値の各ワードをビッグ・エンディアンの順序で格納する場合に、 定義してください。 (GCCは、 ホスト・マシンにおける、 1ワードの中のバイトの順序には依存しません。)
HOST_FLOAT_WORDS_BIG_ENDIAN
ホスト・マシンにおいて、 DFmodeXFmodeTFmodeの浮動小数点数が、 符号ビットを含むワードを最低位アドレスに配置するような形でメモリ上に保持される場合、 このマクロを1として定義してください。 これ以外の場合には、 このマクロをゼロとして定義してください。 配置の順序が、 複数ワードから構成される整数値の場合と同じであれば、 このマクロを定義する必要はありません。
HOST_FLOAT_FORMAT
ホスト・マシンの浮動小数点形式を識別するための数値コードです。 値の選択肢とデフォルト値については、 @xref{Storage Layout}のTARGET_FLOAT_FORMATの項を参照してください。
HOST_BITS_PER_CHAR
ホスト・マシンにおけるchar型のビット数を表すCの式です。
HOST_BITS_PER_SHORT
ホスト・マシンにおけるshort型のビット数を表すCの式です。
HOST_BITS_PER_INT
ホスト・マシンにおけるint型のビット数を表すCの式です。
HOST_BITS_PER_LONG
ホスト・マシンにおけるlong型のビット数を表すCの式です。
ONLY_INT_FIELDS
ホスト・コンパイラが、 int型のビット・フィールドのみをサポートしていて、 ほとんどのCコンパイラのように、 enum型を含む他の整数型ビット・フィールドはサポートしていないことを示したい場合、 このマクロを定義してください。
OBSTACK_CHUNK_SIZE
通常のobstackチャンク(ひとかたまりのobstack)のサイズを表すCの式です。 これを定義しないと、 一般的に妥当なデフォルト値が使われます。
OBSTACK_CHUNK_ALLOC
obstackチャンクの割り当てに使われる関数。 これを定義しないと、 xmallocが使われます。
OBSTACK_CHUNK_FREE
obstackチャンクの解放に使われる関数。 これを定義しないと、 freeが使われます。
USE_C_ALLOCA
コンパイラが、 Cで実装されたallocaを使って実行されることを示したい場合、 このマクロを定義してください。 このallocaは、 `alloca.c'というファイルの中にあります。 これを使うためには、 `Makefile'変数のALLOCAも変更しなければなりません。 (Cで実装されたallocaが必要であることが分かっているシステムでは、 これは自動的に行われます。) このマクロを定義するのであれば、 おそらく、 以下のようにするべきでしょう。
#ifndef __GNUC__
#define USE_C_ALLOCA
#else
#define alloca __builtin_alloca
#endif
このようにすれば、 コンパイラがGCCでコンパイルされる場合には、 より効率的な組み込みのalloca関数が使われます。
FUNCTION_CONVERSION_BUG
式の中で関数の値が使われている場合(22)に、 ホスト・コンパイラが、 それを正しく関数へのポインタに変換できないことを示したい場合、 このマクロを定義してください。
MULTIBYTE_CHARS
GCCに対する入力における複数バイト文字のサポートを有効にしたい場合、 このマクロを定義してください。 ホスト・システムが、 複数バイト文字をワイド文字に変換するためのANSI Cライブラリ関数をサポートしていることが必要です。
POSIX
システムがPOSIX.1準拠の場合に定義してください。
NO_SYS_SIGLIST
システムが、 変数sys_siglist提供していない場合に定義してください。 システムによっては、 この変数を、 _sys_siglistのような別の名前で提供していることもあります。 このようなシステムでは、 実際の名前に展開されるマクロとして、 sys_siglistを定義することができます。 autoconfは通常、 システムのヘッダ・ファイルの中にsys_siglistの宣言を見つけると、 SYS_SIGLIST_DECLAREDを定義します。 しかし、 sys_siglistを別の名前に定義すると、 autoconfは、 自動的にはSYS_SIGLIST_DECLAREDを定義しません。 したがって、 sys_siglistを定義するのであれば、 SYS_SIGLIST_DECLAREDも定義するべきです。
USE_PROTOTYPES
ホスト・コンパイラがプロトタイプをサポートすることが分かっている場合には、 仮にそれが__STDC__を定義しないコンパイラであっても、 これを1として定義してください。 GCCをコンパイルするにあたって、 プロトタイプが一切使われないようにしたいのであれば、 これを0として定義してください。 `USE_PROTOTYPES'が定義されていない場合、 コンパイラによるプロトタイプ・サポートの有無は、 `__STDC__'の定義の有無を調べることによって自動的に判定されます。
NO_MD_PROTOTYPES
マシン記述ファイルから生成されるプロトタイプのみを抑止し、 GCCの中のその他のプロトタイプは使うようにしたい場合に、 これを定義してください。 `USE_PROTOTYPES'が0として定義されている場合、 あるいは、 ホスト・コンパイラがプロトタイプをサポートしていない場合、 このマクロはまったく効力を持ちません。
MD_CALL_PROTOTYPES
マシン記述ファイルから生成される、 gen_call関数またはgen_call_value関数のプロトタイプを生成したい場合に、 定義してください。 `USE_PROTOTYPES'が0として定義されている場合、 ホスト・コンパイラがプロトタイプをサポートしていない場合、 または、 `NO_MD_PROTOTYPES'が定義されている場合、 このマクロはまったく効力を持ちません。 すべてのマシン記述が適切な数の引数を持つように修正され次第、 このマクロは削除されることになるでしょう。
PATH_SEPARATOR
パスの構成要素を区切るのに使われる文字を表わすCの文字定数となるよう、 このマクロを定義してください。 デフォルトの値はコロンです。
DIR_SEPARATOR
ファイルを指定する際のディレクトリ名を区切るのに、 スラッシュ以外の文字がシステムで使われている場合、 その文字を示すCの文字定数として、 このマクロを定義してください。 GCCがファイル名を表示する際、 ここで指定された文字が使われることになります。 GCCがファイル名を解析する際には、 ここで指定された文字とスラッシュの両方が試されます。
OBJECT_SUFFIX
マシン上でのオブジェクト・ファイルの接尾辞を表わすCの文字列として、 このマクロを定義してください。 このマクロが定義されていない場合、 GCCは、 オブジェクト・ファイルの接尾辞として`.o'を使うことになります。
EXECUTABLE_SUFFIX
マシン上での実行可能ファイルの接尾辞を表わすCの文字列として、 このマクロを定義してください。 このマクロが定義されていない場合、 GCCは、 実行可能ファイル(23)の接尾辞として、 空文字列を使います。
COLLECT_EXPORT_LIST
これが定義されていると、 collect2は、 コマンドライン上で指定された個々のオブジェクト・ファイルを調べて、 リンカのためのエクスポート・リストを作成します。 AIXのように、 リンカが、 mainから参照されていないオブジェクト・ファイルを無視して、 エクスポート・リストを使うようなシステムでは、 このマクロを定義してください。

さらに、 System V用のコンフィギュレーション・ファイルでは、 bcopybzerobcmpを別名として定義します。 また、 GCCに組み込まれているallocaの利点を活用するために、 GCCでコンパイルされる場合にはallocaをマクロとして定義するようになっているファイルもあります。


[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]