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
FATAL_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 section 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.
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 #endifso 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.
POSIX
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
NO_MD_PROTOTYPES
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
PATH_SEPARATOR
DIR_SEPARATOR
OBJECT_SUFFIX
EXECUTABLE_SUFFIX
COLLECT_EXPORT_LIST
collect2
will scan the individual object files
specified on its command line and create an export list for the linker.
Define this macro for systems like AIX, where the linker discards
object files that are not referenced from main
and uses export
lists.
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
.