[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

22. The Configuration File

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
Define this macro if the host system is System V.

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.

HOST_WORDS_BIG_ENDIAN
Defined if the host machine stores words of multi-word values in big-endian order. (GCC does not depend on the host byte ordering within a word.)

HOST_FLOAT_WORDS_BIG_ENDIAN
Define this macro to be 1 if the host machine stores 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
A numeric code distinguishing the floating point format for the host machine. See TARGET_FLOAT_FORMAT in 21.4 Storage Layout for the alternatives and default.

HOST_BITS_PER_CHAR
A C expression for the number of bits in char on the host machine.

HOST_BITS_PER_SHORT
A C expression for the number of bits in short on the host machine.

HOST_BITS_PER_INT
A C expression for the number of bits in int on the host machine.

HOST_BITS_PER_LONG
A C expression for the number of bits in long on the host machine.

HOST_BITS_PER_LONGLONG
A C expression for the number of bits in long long on the host machine.

ONLY_INT_FIELDS
Define this macro to indicate that the host compiler only supports int bit-fields, rather than other integral types, including enum, as do most C compilers.

OBSTACK_CHUNK_SIZE
A C expression for the size of ordinary obstack chunks. If you don't define this, a usually-reasonable default is used.

OBSTACK_CHUNK_ALLOC
The function used to allocate obstack chunks. If you don't define this, xmalloc is used.

OBSTACK_CHUNK_FREE
The function used to free obstack chunks. If you don't define this, free is used.

USE_C_ALLOCA
Define this macro to indicate that the compiler is running with the 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
Define this macro to indicate that the host compiler does not properly handle converting a function value to a pointer-to-function when it is used in an expression.

MULTIBYTE_CHARS
Define this macro to enable support for multibyte characters in the input to GCC. This requires that the host system support the ISO C library functions for converting multibyte characters to wide characters.

POSIX
Define this if your system is POSIX.1 compliant.

PATH_SEPARATOR
Define this macro to be a C character constant representing the character used to separate components in paths. The default value is the colon character

DIR_SEPARATOR
If your system uses some character other than slash to separate directory names within a file specification, define this macro to be a C character constant specifying that character. When GCC displays file names, the character you specify will be used. GCC will test for both slash and the character you specify when parsing filenames.

DIR_SEPARATOR_2
If your system uses an alternative character other than `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.

TARGET_OBJECT_SUFFIX
Define this macro to be a C string representing the suffix for object files on your target machine. If you do not define this macro, GCC will use `.o' as the suffix for object files.

TARGET_EXECUTABLE_SUFFIX
Define this macro to be a C string representing the suffix to be automatically added to executable files on your target machine. If you do not define this macro, GCC will use the null string as the suffix for executable files.

HOST_OBJECT_SUFFIX
Define this macro to be a C string representing the suffix for object files on your host machine (`xm-*.h'). 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 (`xm-*.h'). If you do not define this macro, GCC will use the null string as the suffix for executable files.

HOST_BIT_BUCKET
The name of a file or file-like object on the host system which acts as a "bit bucket". If you do not define this macro, GCC will use `/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 illegal filename. If the bit bucket is not writable, GCC will use a temporary file instead.

COLLECT_EXPORT_LIST
If defined, 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
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, key)
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 the path to be canonicalized, and key is a translation prefix when its value isn't 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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by Charlie & on June, 17 2001 using texi2html