Node:Config, Next:Fragments, Previous:Target Macros, Up:Top
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 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.
HOST_BITS_PER_LONGLONG
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 GCC it uses the more
efficient built-in alloca function.
FUNCTION_CONVERSION_BUG
MULTIBYTE_CHARS
POSIX
USE_PROTOTYPES
USE_PROTOTYPES is not defined, it will be
determined automatically whether your compiler supports
prototypes by checking if __STDC__ is defined.
PATH_SEPARATOR
DIR_SEPARATOR
DIR_SEPARATOR_2
DIR_SEPARATOR to separate directory names within a file
specification, define this macro to be a C character constant specifying
that character. If you define this macro, GCC will test for slash,
DIR_SEPARATOR, and DIR_SEPARATOR_2 when parsing filenames.
OBJECT_SUFFIX
.o as the suffix for object files.
EXECUTABLE_SUFFIX
NO_AUTO_EXE_SUFFIX
HOST_BIT_BUCKET
/dev/null as the bit bucket. If the target does not support a
bit bucket, this should be defined to the null string, or some other
invalid filename. If the bit bucket is not writable, GCC will use a
temporary file instead.
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.
COLLECT2_HOST_INITIALIZATION
collect2 is being initialized.
GCC_DRIVER_HOST_INITIALIZATION
UPDATE_PATH_HOST_CANONICALIZE (path, key)
NULL. If the C statement
does canonicalize path, the new path should be returned.
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.