| [ < ] | [ > ] | [ << ] | [ 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_ALLOCobstack のメモリ塊を確保するのに使われる関数である。
これを定義しない場合は、xmalloc が使われる
OBSTACK_CHUNK_FREEobstack のメモリ塊を開放するのに使われる関数である。
これを定義しない場合は、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_CHARSGCC への入力としてマルチバイト文字をサポートすることを有効にするなら、 このマクロを定義する。このためには、ホストシステムがマルチバイト文字を 幅広文字に変換するための 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.