The configuration file `xm-machine.h
' contains macro
definitions that describe the machine and system on which the compiler
is running, unlike the definitions in `machine.h
', which
describe the machine for which the compiler is producing output. Most
of the values in `xm-machine.h
' are actually the same on all
machines that GNU CC runs on, so large parts of all configuration files
are identical. But there are some macros that vary:
USG
VMS
FAILURE_EXIT_CODE
SUCCESS_EXIT_CODE
HOST_WORDS_BIG_ENDIAN
HOST_FLOAT_WORDS_BIG_ENDIAN
DFmode
,
XFmode
or TFmode
floating point numbers in memory with the
word containing the sign bit at the lowest address; otherwise, define it
to be zero.
This macro need not be defined if the ordering is the same as for multi-word integers.
HOST_FLOAT_FORMAT
TARGET_FLOAT_FORMAT
in Storage Layout for the
alternatives and default.
HOST_BITS_PER_CHAR
char
on the host
machine.
HOST_BITS_PER_SHORT
short
on the host
machine.
HOST_BITS_PER_INT
int
on the host
machine.
HOST_BITS_PER_LONG
long
on the host
machine.
ONLY_INT_FIELDS
int
bit fields, rather than other integral types, including
enum
, as do most C compilers.
EXECUTABLE_SUFFIX
.exe
') that must be mentioned explicitly when you run
the program.
OBSTACK_CHUNK_SIZE
OBSTACK_CHUNK_ALLOC
xmalloc
is used.
OBSTACK_CHUNK_FREE
free
is used.
USE_C_ALLOCA
alloca
implemented in C. This version of alloca
can be
found in the file `alloca.c
'; to use it, you must also alter the
`Makefile
' variable ALLOCA
. (This is done automatically
for the systems on which we know it is needed.)
If you do define this macro, you should probably do it as follows:
#ifndef __GNUC__ #define USE_C_ALLOCA #else #define alloca __builtin_alloca #endif
so that when the compiler is compiled with GNU CC it uses the more
efficient built-in alloca
function.
FUNCTION_CONVERSION_BUG
HAVE_VPRINTF
vprintf
is available on your
system.
MULTIBYTE_CHARS
HAVE_PUTENV
putenv
is available on your
system.
NO_SYS_SIGLIST
sys_siglist
.
DONT_DECLARE_SYS_SIGLIST
sys_siglist
, and
there is already a declaration of it in the system header files.
USE_PROTOTYPES
USE_PROTOTYPES
' is not defined, it will be
determined automatically whether your compiler supports
prototypes by checking if `__STDC__
' is defined.
NO_MD_PROTOTYPES
USE_PROTOTYPES
' is defined to be 0, or the
host compiler does not support prototypes, this macro has no
effect.
MD_CALL_PROTOTYPES
gen_call
or gen_call_value
functions generated from
the machine description file. If `USE_PROTOTYPES
' is
defined to be 0, or the host compiler does not support
prototypes, or `NO_MD_PROTOTYPES
' is defined, this macro has
no effect. As soon as all of the machine descriptions are
modified to have the appropriate number of arguments, this macro
will be removed.
Some systems do provide this variable, but with a different name such
as _sys_siglist
. On these systems, you can define
sys_siglist
as a macro which expands into the name actually
provided.
NO_STAB_H
stab.h
'. If `USG
' is defined, `NO_STAB_H
' is
assumed.
In addition, configuration files for system V define bcopy
,
bzero
and bcmp
as aliases. Some files define alloca
as a macro when compiled with GNU CC, in order to take advantage of the
benefit of GNU CC's built-in alloca
.