[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
コンフィギュレーションファイル ‘xm-machine.h’ では、 GCC が動作するマシンとシステムを記述するマクロを 定義する。これは、GCC の生成コードが目的とするマシンを記述する ‘machine.h’ の定義と異なる点である。 ‘xm-machine.h’ で定義される値のほとんどは、 実際には GCC が動作する全てのマシンで同じになる。 このため、全てのコンフィギュレーションファイルの多くの部分は 同一である。しかし、幾つかのマクロは異なっており、それを 以下に示す。
USG
ホストが System V なら、このマクロを定義する。
VMS
ホストが VMS なら、このマクロを定義する。
FATAL_EXIT_CODE
コンパイラが重大なエラーの後で終了するときに返すべきステータスコードを 表す式。
SUCCESS_EXIT_CODE
コンパイラが重大なエラーなしに終了した場合に返すべきステータスコードを 表す式。
HOST_WORDS_BIG_ENDIAN
ホストマシンが複数ワードからなる値を構成するワードを、ビッグエンディアンで 格納するなら、このマクロを定義する。 (GCC は、ホストの、一個のワードの中のバイト順には依存しない。)
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 のメモリ塊の大きさを表す C の式である。 これを定義しない場合は、普通の適切なデフォルトが使われる。
OBSTACK_CHUNK_ALLOC
obstack のメモリ塊を確保するのに使われる関数である。
これを定義しない場合は、xmalloc
が使われる
OBSTACK_CHUNK_FREE
obstack のメモリ塊を開放するのに使われる関数である。
これを定義しない場合は、free
が使われる
USE_C_ALLOCA
このマクロを定義すると、C で実装された alloca
を使って
GNU C を実行することを表す。alloca
の C 版は、
‘alloca.c’ にある。これを使うには、‘Makefile’ の
変数 ALLOCA
も修正する必要がある。
(これは、我々がこの処置が必要であることを知っているシステムでは
自動的に行なわれる。)
このマクロを定義するなら、おそらく以下のようにする必要がある。
#ifndef __GNUC__ #define USE_C_ALLOCA #else #define alloca __builtin_alloca #endif |
こうしておくと、GCC が GCC でコンパイルされた場合は、
もっと効率の良い組み込み alloca
関数を使うようになる。
FUNCTION_CONVERSION_BUG
ホストコンパイラが、式の中で使った場合に、関数値を関数へのポインタに 正しく変換できない場合はこのマクロを定義する。
HAVE_VPRINTF
ライブラリ関数 vprintf
があればこれを定義する。
MULTIBYTE_CHARS
GCC への入力としてマルチバイト文字をサポートすることを有効にするなら、 このマクロを定義する。このためには、ホストシステムがマルチバイト文字を 幅広文字に変換するための ANSI C ライブラリ関数群をサポートしている 必要がある。
HAVE_PUTENV
ライブラリ関数 putenv
がある場合は、これを定義する。
POSIX
システムが POSIX.1 準拠であればこれを定義する。
NO_SYS_SIGLIST
変数 sys_siglist
を提供していないシステムではこのマクロを
定義する。
システムによっては、この変数を提供はしているが、_sys_siglist
の
ように別の名前になっている場合もある。そういう場合は、
sys_siglist
をマクロとして定義し、実際に提供される名前に
展開されるようにすることが出来る。
autoconf は、普通、システムヘッダファイルの中に sys_siglist
の宣言
を見つけたなら、SYS_SIGLIST_DECLARES
を定義する。
しかし、sys_siglist
を別の名前に定義した場合には、
autoconf が自動的に SYS_SIGLIST_DECLARED
を定義することはない。
つまり、sys_siglist
を定義したなら、 %
SYS_SIGLIST_DECLARE
も合わせて定義すべきである。
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 は実行形式ファイルの拡張子として ヌル文字列を使う。
COLLECT_EXPORT_LIST
このマクロが定義されていると、collect2
は、コマンド行に
指定された個々のオブジェクトファイルを調べ、リンカ向けに
エクスポートリストを作る。
AIX のように、リンカが main
関数から参照されていない
オブジェクトファイルは捨て去り、エクスポートリストを使うような
システムではこのマクロを定義する。
さらに、System V 向けのコンフィギュレーションファイルでは、
bcopy
、bzero
、bcmp
を別名として定義している。
いくつかのファイルでは、GCC でコンパイルされる場合には
alloca
をマクロとして定義するようになっており、
GCC の組み込みの alloca
の利点をいかすようになっている。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated
using texi2html 1.78.