11 Host Configuration Headers
Host configuration headers contain macro definitions that describe the
machine and system on which the compiler is running. They are usually
unnecessary. Most of the things GCC needs to know about the host
system can be deduced by the configure script.
If your host does need a special configuration header, it should be
named xm-machine.h, where machine is a short mnemonic
for the machine. Here are some macros which this header can define.
VMS
- Define this macro if the host system is VMS.
FATAL_EXIT_CODE
- A C expression for the status code to be returned when the compiler
exits after serious errors. The default is the system-provided macro
`EXIT_FAILURE', or `1' if the system doesn't define that
macro. Define this macro only if these defaults are incorrect.
SUCCESS_EXIT_CODE
- A C expression for the status code to be returned when the compiler
exits without serious errors. (Warnings are not serious errors.) The
default is the system-provided macro `EXIT_SUCCESS', or `0' if
the system doesn't define that macro. Define this macro only if these
defaults are incorrect.
USE_C_ALLOCA
- Define this macro if GCC should use the C implementation of
alloca
provided by libiberty.a. This only affects how some parts of the
compiler itself allocate memory. It does not change code generation.
When GCC is built with a compiler other than itself, the C alloca
is always used. This is because most other implementations have serious
bugs. You should define this macro only on a system where no
stack-based alloca
can possibly work. For instance, if a system
has a small limit on the size of the stack, GCC's builtin alloca
will not work reliably.
HAVE_DOS_BASED_FILE_SYSTEM
- Define this macro if the host file system obeys the semantics defined by
MS-DOS instead of Unix. DOS file systems are case insensitive, file
specifications may begin with a drive letter, and both forward slash and
backslash (`/' and `\') are directory separators. If you
define this macro, you probably need to define the next three macros too.
PATH_SEPARATOR
- If defined, this macro should expand to a character constant specifying
the separator for elements of search paths. The default value is a
colon (`:'). DOS-based systems usually use semicolon (`;').
DIR_SEPARATOR
DIR_SEPARATOR_2
- If defined, these macros expand to character constants specifying
separators for directory names within a file specification. They are
used somewhat inconsistently throughout the compiler. If your system
behaves like Unix (only forward slash separates pathnames), define
neither of them. If your system behaves like DOS (both forward and
backward slash can be used), define
DIR_SEPARATOR
to `/'
and DIR_SEPARATOR_2
to `\'.
HOST_OBJECT_SUFFIX
- Define this macro to be a C string representing the suffix for object
files on your host machine. If you do not define this macro, GCC will
use `.o' as the suffix for object files.
HOST_EXECUTABLE_SUFFIX
- Define this macro to be a C string representing the suffix for
executable files on your host machine. If you do not define this macro,
GCC will use the null string as the suffix for executable files.
HOST_BIT_BUCKET
- A pathname defined by the host operating system, which can be opened as
a file and written to, but all the information written is discarded.
This is commonly known as a bit bucket or null device. If
you do not define this macro, GCC will use `/dev/null' as the bit
bucket. If the host does not support a bit bucket, define this macro to
an invalid filename.
COLLECT2_HOST_INITIALIZATION
- If defined, a C statement (sans semicolon) that performs host-dependent
initialization when
collect2
is being initialized.
GCC_DRIVER_HOST_INITIALIZATION
- If defined, a C statement (sans semicolon) that performs host-dependent
initialization when a compilation driver is being initialized.
UPDATE_PATH_HOST_CANONICALIZE (
path)
- If defined, a C statement (sans semicolon) that performs host-dependent
canonicalization when a path used in a compilation driver or
preprocessor is canonicalized. path is a malloc-ed path to be
canonicalized. If the C statement does canonicalize path into a
different buffer, the old path should be freed and the new buffer should
have been allocated with malloc.
DUMPFILE_FORMAT
- Define this macro to be a C string representing the format to use for
constructing the index part of debugging dump file names. The resultant
string must fit in fifteen bytes. The full filename will be the
concatenation of: the prefix of the assembler file name, the string
resulting from applying this format to an index number, and a string
unique to each dump file kind, e.g. `rtl'.
If you do not define this macro, GCC will use `.%02d.'. You should
define this macro if using the default will create an invalid file name.
SMALL_ARG_MAX
- Define this macro if the host system has a small limit on the total
size of an argument vector. This causes the driver to take more care
not to pass unnecessary arguments to subprocesses.
In addition, if configure generates an incorrect definition of
any of the macros in auto-host.h, you can override that
definition in a host configuration header. If you need to do this,
first see if it is possible to fix configure.
If you need to define only a few of these macros, and they have simple
definitions, consider using the xm_defines
variable in your
config.gcc entry instead of creating a host configuration header.
See System Config.