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 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 #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.
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
.