コンフィギュレーション・ファイル`xm-machine.h'には、 コンパイラが実行されるマシンおよびシステムに関するマクロ定義が含まれています。 `machine.h'の中の定義は、 これとは異なり、 コンパイラが生成するコードが実行されるマシンに関する情報です。 実際には、 `xm-machine.h'の中のほとんどの値は、 GCCが動作するすべてのマシンにおいて同一です。 したがって、 どのコンフィギュレーション・ファイルも、 そのかなりの部分は同じ内容です。 しかし中には、 違いのあるマクロも含まれています。
USG
VMS
FATAL_EXIT_CODE
SUCCESS_EXIT_CODE
HOST_WORDS_BIG_ENDIAN
HOST_FLOAT_WORDS_BIG_ENDIAN
DFmode
、XFmode
、TFmode
の浮動小数点数が、
符号ビットを含むワードを最低位アドレスに配置するような形でメモリ上に保持される場合、
このマクロを1として定義してください。
これ以外の場合には、
このマクロをゼロとして定義してください。
配置の順序が、
複数ワードから構成される整数値の場合と同じであれば、
このマクロを定義する必要はありません。
HOST_FLOAT_FORMAT
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_CHUNK_ALLOC
xmalloc
が使われます。
OBSTACK_CHUNK_FREE
free
が使われます。
USE_C_ALLOCA
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
MULTIBYTE_CHARS
POSIX
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
NO_MD_PROTOTYPES
MD_CALL_PROTOTYPES
gen_call
関数またはgen_call_value
関数のプロトタイプを生成したい場合に、
定義してください。
`USE_PROTOTYPES'が0として定義されている場合、
ホスト・コンパイラがプロトタイプをサポートしていない場合、
または、
`NO_MD_PROTOTYPES'が定義されている場合、
このマクロはまったく効力を持ちません。
すべてのマシン記述が適切な数の引数を持つように修正され次第、
このマクロは削除されることになるでしょう。
PATH_SEPARATOR
DIR_SEPARATOR
OBJECT_SUFFIX
EXECUTABLE_SUFFIX
COLLECT_EXPORT_LIST
collect2
は、
コマンドライン上で指定された個々のオブジェクト・ファイルを調べて、
リンカのためのエクスポート・リストを作成します。
AIXのように、
リンカが、
main
から参照されていないオブジェクト・ファイルを無視して、
エクスポート・リストを使うようなシステムでは、
このマクロを定義してください。
さらに、
System V用のコンフィギュレーション・ファイルでは、
bcopy
、bzero
、bcmp
を別名として定義します。
また、
GCCに組み込まれているalloca
の利点を活用するために、
GCCでコンパイルされる場合にはalloca
をマクロとして定義するようになっているファイルもあります。