diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-12 15:46:48 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-12 15:46:48 +0000 |
commit | c595c96a668b23f52cf95e6e5c9af82efbcd1520 (patch) | |
tree | 7ce809932fcd2257692c59cd13c2e788c4e9896a /gcc/doc/hostconfig.texi | |
parent | 65abff06e6de32c11e4524f5177712852ce477f7 (diff) | |
download | gcc-c595c96a668b23f52cf95e6e5c9af82efbcd1520.tar.gz |
* doc/gcc.texi: Move several chapters out to ...
* doc/configterms.texi, doc/fragments.texi, doc/hostconfig.texi,
doc/include/linux-and-gnu.texi, doc/interface.texi,
doc/makefile.texi, doc/passes.texi, doc/portability.texi:
... here. New files.
* doc/gcc.texi, doc/contrib.texi: Move section headings into
contrib.texi.
* Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46951 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc/hostconfig.texi')
-rw-r--r-- | gcc/doc/hostconfig.texi | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/gcc/doc/hostconfig.texi b/gcc/doc/hostconfig.texi new file mode 100644 index 00000000000..f7a1c423e8f --- /dev/null +++ b/gcc/doc/hostconfig.texi @@ -0,0 +1,240 @@ +@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, +@c 1999, 2000, 2001 Free Software Foundation, Inc. +@c This is part of the GCC manual. +@c For copying conditions, see the file gcc.texi. + +@node Config +@chapter The Configuration File +@cindex configuration file +@cindex @file{xm-@var{machine}.h} + +The configuration file @file{xm-@var{machine}.h} contains macro +definitions that describe the machine and system on which the compiler +is running, unlike the definitions in @file{@var{machine}.h}, which +describe the machine for which the compiler is producing output. Most +of the values in @file{xm-@var{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: + +@table @code +@findex USG +@item USG +Define this macro if the host system is System V@. + +@findex VMS +@item VMS +Define this macro if the host system is VMS@. + +@findex FATAL_EXIT_CODE +@item 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 +@samp{EXIT_FAILURE}, or @samp{1} if the system doesn't define that +macro. Define this macro only if these defaults are incorrect. + +@findex SUCCESS_EXIT_CODE +@item 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 @samp{EXIT_SUCCESS}, or @samp{0} if +the system doesn't define that macro. Define this macro only if these +defaults are incorrect. + +@findex HOST_WORDS_BIG_ENDIAN +@item 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.) + +@findex HOST_FLOAT_WORDS_BIG_ENDIAN +@item HOST_FLOAT_WORDS_BIG_ENDIAN +Define this macro to be 1 if the host machine stores @code{DFmode}, +@code{XFmode} or @code{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. + +@findex HOST_FLOAT_FORMAT +@item HOST_FLOAT_FORMAT +A numeric code distinguishing the floating point format for the host +machine. See @code{TARGET_FLOAT_FORMAT} in @ref{Storage Layout} for the +alternatives and default. + +@findex HOST_BITS_PER_CHAR +@item HOST_BITS_PER_CHAR +A C expression for the number of bits in @code{char} on the host +machine. + +@findex HOST_BITS_PER_SHORT +@item HOST_BITS_PER_SHORT +A C expression for the number of bits in @code{short} on the host +machine. + +@findex HOST_BITS_PER_INT +@item HOST_BITS_PER_INT +A C expression for the number of bits in @code{int} on the host +machine. + +@findex HOST_BITS_PER_LONG +@item HOST_BITS_PER_LONG +A C expression for the number of bits in @code{long} on the host +machine. + +@findex HOST_BITS_PER_LONGLONG +@item HOST_BITS_PER_LONGLONG +A C expression for the number of bits in @code{long long} on the host +machine. + +@findex ONLY_INT_FIELDS +@item ONLY_INT_FIELDS +Define this macro to indicate that the host compiler only supports +@code{int} bit-fields, rather than other integral types, including +@code{enum}, as do most C compilers. + +@findex OBSTACK_CHUNK_SIZE +@item 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. + +@findex OBSTACK_CHUNK_ALLOC +@item OBSTACK_CHUNK_ALLOC +The function used to allocate obstack chunks. +If you don't define this, @code{xmalloc} is used. + +@findex OBSTACK_CHUNK_FREE +@item OBSTACK_CHUNK_FREE +The function used to free obstack chunks. +If you don't define this, @code{free} is used. + +@findex USE_C_ALLOCA +@item USE_C_ALLOCA +Define this macro to indicate that the compiler is running with the +@code{alloca} implemented in C@. This version of @code{alloca} can be +found in the file @file{alloca.c}; to use it, you must also alter the +@file{Makefile} variable @code{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: + +@example +#ifndef __GNUC__ +#define USE_C_ALLOCA +#else +#define alloca __builtin_alloca +#endif +@end example + +@noindent +so that when the compiler is compiled with GCC it uses the more +efficient built-in @code{alloca} function. + +@item FUNCTION_CONVERSION_BUG +@findex 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. + +@findex MULTIBYTE_CHARS +@item 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. + +@findex POSIX +@item POSIX +Define this if your system is POSIX.1 compliant. + +@findex PATH_SEPARATOR +@item 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 + +@findex DIR_SEPARATOR +@item 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. + +@findex DIR_SEPARATOR_2 +@item DIR_SEPARATOR_2 +If your system uses an alternative character other than +@samp{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, +@samp{DIR_SEPARATOR}, and @samp{DIR_SEPARATOR_2} when parsing filenames. + +@findex TARGET_OBJECT_SUFFIX +@item 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 @samp{.o} as the suffix for object files. + +@findex TARGET_EXECUTABLE_SUFFIX +@item 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. + +@findex HOST_OBJECT_SUFFIX +@item HOST_OBJECT_SUFFIX +Define this macro to be a C string representing the suffix for object +files on your host machine (@samp{xm-*.h}). If you do not define this +macro, GCC will use @samp{.o} as the suffix for object files. + +@findex HOST_EXECUTABLE_SUFFIX +@item HOST_EXECUTABLE_SUFFIX +Define this macro to be a C string representing the suffix for +executable files on your host machine (@samp{xm-*.h}). If you do not +define this macro, GCC will use the null string as the suffix for +executable files. + +@findex HOST_BIT_BUCKET +@item 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 +@samp{/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. + +@findex COLLECT_EXPORT_LIST +@item COLLECT_EXPORT_LIST +If defined, @code{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 @code{main} and uses export +lists. + +@findex COLLECT2_HOST_INITIALIZATION +@item COLLECT2_HOST_INITIALIZATION +If defined, a C statement (sans semicolon) that performs host-dependent +initialization when @code{collect2} is being initialized. + +@findex GCC_DRIVER_HOST_INITIALIZATION +@item GCC_DRIVER_HOST_INITIALIZATION +If defined, a C statement (sans semicolon) that performs host-dependent +initialization when a compilation driver is being initialized. + +@findex UPDATE_PATH_HOST_CANONICALIZE +@item UPDATE_PATH_HOST_CANONICALIZE (@var{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. @var{path} is a malloc-ed path to be +canonicalized. If the C statement does canonicalize @var{path} into a +different buffer, the old path should be freed and the new buffer should +have been allocated with malloc. +@end table + +@findex bzero +@findex bcmp +In addition, configuration files for system V define @code{bcopy}, +@code{bzero} and @code{bcmp} as aliases. Some files define @code{alloca} +as a macro when compiled with GCC, in order to take advantage of the +benefit of GCC's built-in @code{alloca}. |