gccint.info: Host Config

Go forward to Fragments
Go backward to Target Macros
Go up to Top
Go to the top op gccint

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.
*Note System Config::.