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 GCC 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 GCC it uses the more efficient built-in
alloca
function.
FUNCTION_CONVERSION_BUG
MULTIBYTE_CHARS
POSIX
NO_SYS_SIGLIST
sys_siglist
.
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.
Autoconf normally defines SYS_SIGLIST_DECLARED
when it finds a
declaration of sys_siglist
in the system header files.
However, when you define sys_siglist
to a different name
autoconf will not automatically define SYS_SIGLIST_DECLARED
.
Therefore, if you define sys_siglist
, you should also define
SYS_SIGLIST_DECLARED
.
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.
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 GCC, in order to take advantage of the
benefit of GCC's built-in alloca
.