310 lines
13 KiB
HTML
310 lines
13 KiB
HTML
<HTML>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<!-- Created on March, 17 2001 by texi2html 1.64 -->
|
|
<!--
|
|
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
|
|
Karl Berry <karl@freefriends.org>
|
|
Olaf Bachmann <obachman@mathematik.uni-kl.de>
|
|
and many others.
|
|
Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
|
|
Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
|
|
|
|
-->
|
|
<HEAD>
|
|
<TITLE>Using and Porting the GNU Compiler Collection (GCC): Config</TITLE>
|
|
|
|
<META NAME="description" CONTENT="Using and Porting the GNU Compiler Collection (GCC): Config">
|
|
<META NAME="keywords" CONTENT="Using and Porting the GNU Compiler Collection (GCC): Config">
|
|
<META NAME="resource-type" CONTENT="document">
|
|
<META NAME="distribution" CONTENT="global">
|
|
<META NAME="Generator" CONTENT="texi2html 1.64">
|
|
|
|
</HEAD>
|
|
|
|
<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
|
|
|
|
<A NAME="SEC251"></A>
|
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_17.html#SEC250" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_17.html#SEC250"> < </A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_19.html#SEC252" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_19.html#SEC252"> > </A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_2.html#SEC2" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_2.html#SEC2"> << </A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc.html#SEC_Top" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc.html#SEC_Top"> Up </A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_19.html#SEC252" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_19.html#SEC252"> >> </A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc.html#SEC_Top" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc.html#SEC_Top">Top</A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_toc.html#SEC_Contents" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_toc.html#SEC_Contents">Contents</A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_24.html#SEC261" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_24.html#SEC261">Index</A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_abt.html#SEC_About" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_abt.html#SEC_About"> ? </A>]</TD>
|
|
</TR></TABLE>
|
|
<H1> 18. The Configuration File </H1>
|
|
<!--docid::SEC251::-->
|
|
<P>
|
|
|
|
The configuration file <TT>`xm-<VAR>machine</VAR>.h'</TT> contains macro
|
|
definitions that describe the machine and system on which the compiler
|
|
is running, unlike the definitions in <TT>`<VAR>machine</VAR>.h'</TT>, which
|
|
describe the machine for which the compiler is producing output. Most
|
|
of the values in <TT>`xm-<VAR>machine</VAR>.h'</TT> 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:
|
|
</P><P>
|
|
|
|
<DL COMPACT>
|
|
<A NAME="IDX1818"></A>
|
|
<DT><CODE>USG</CODE>
|
|
<DD>Define this macro if the host system is System V.
|
|
<P>
|
|
|
|
<A NAME="IDX1819"></A>
|
|
<DT><CODE>VMS</CODE>
|
|
<DD>Define this macro if the host system is VMS.
|
|
<P>
|
|
|
|
<A NAME="IDX1820"></A>
|
|
<DT><CODE>FATAL_EXIT_CODE</CODE>
|
|
<DD>A C expression for the status code to be returned when the compiler
|
|
exits after serious errors.
|
|
<P>
|
|
|
|
<A NAME="IDX1821"></A>
|
|
<DT><CODE>SUCCESS_EXIT_CODE</CODE>
|
|
<DD>A C expression for the status code to be returned when the compiler
|
|
exits without serious errors.
|
|
<P>
|
|
|
|
<A NAME="IDX1822"></A>
|
|
<DT><CODE>HOST_WORDS_BIG_ENDIAN</CODE>
|
|
<DD>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.)
|
|
<P>
|
|
|
|
<A NAME="IDX1823"></A>
|
|
<DT><CODE>HOST_FLOAT_WORDS_BIG_ENDIAN</CODE>
|
|
<DD>Define this macro to be 1 if the host machine stores <CODE>DFmode</CODE>,
|
|
<CODE>XFmode</CODE> or <CODE>TFmode</CODE> floating point numbers in memory with the
|
|
word containing the sign bit at the lowest address; otherwise, define it
|
|
to be zero.
|
|
<P>
|
|
|
|
This macro need not be defined if the ordering is the same as for
|
|
multi-word integers.
|
|
</P><P>
|
|
|
|
<A NAME="IDX1824"></A>
|
|
<DT><CODE>HOST_FLOAT_FORMAT</CODE>
|
|
<DD>A numeric code distinguishing the floating point format for the host
|
|
machine. See <CODE>TARGET_FLOAT_FORMAT</CODE> in <A HREF="gcc_17.html#SEC202" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_17.html#SEC202">17.3 Storage Layout</A> for the
|
|
alternatives and default.
|
|
<P>
|
|
|
|
<A NAME="IDX1825"></A>
|
|
<DT><CODE>HOST_BITS_PER_CHAR</CODE>
|
|
<DD>A C expression for the number of bits in <CODE>char</CODE> on the host
|
|
machine.
|
|
<P>
|
|
|
|
<A NAME="IDX1826"></A>
|
|
<DT><CODE>HOST_BITS_PER_SHORT</CODE>
|
|
<DD>A C expression for the number of bits in <CODE>short</CODE> on the host
|
|
machine.
|
|
<P>
|
|
|
|
<A NAME="IDX1827"></A>
|
|
<DT><CODE>HOST_BITS_PER_INT</CODE>
|
|
<DD>A C expression for the number of bits in <CODE>int</CODE> on the host
|
|
machine.
|
|
<P>
|
|
|
|
<A NAME="IDX1828"></A>
|
|
<DT><CODE>HOST_BITS_PER_LONG</CODE>
|
|
<DD>A C expression for the number of bits in <CODE>long</CODE> on the host
|
|
machine.
|
|
<P>
|
|
|
|
<A NAME="IDX1829"></A>
|
|
<DT><CODE>ONLY_INT_FIELDS</CODE>
|
|
<DD>Define this macro to indicate that the host compiler only supports
|
|
<CODE>int</CODE> bit fields, rather than other integral types, including
|
|
<CODE>enum</CODE>, as do most C compilers.
|
|
<P>
|
|
|
|
<A NAME="IDX1830"></A>
|
|
<DT><CODE>OBSTACK_CHUNK_SIZE</CODE>
|
|
<DD>A C expression for the size of ordinary obstack chunks.
|
|
If you don't define this, a usually-reasonable default is used.
|
|
<P>
|
|
|
|
<A NAME="IDX1831"></A>
|
|
<DT><CODE>OBSTACK_CHUNK_ALLOC</CODE>
|
|
<DD>The function used to allocate obstack chunks.
|
|
If you don't define this, <CODE>xmalloc</CODE> is used.
|
|
<P>
|
|
|
|
<A NAME="IDX1832"></A>
|
|
<DT><CODE>OBSTACK_CHUNK_FREE</CODE>
|
|
<DD>The function used to free obstack chunks.
|
|
If you don't define this, <CODE>free</CODE> is used.
|
|
<P>
|
|
|
|
<A NAME="IDX1833"></A>
|
|
<DT><CODE>USE_C_ALLOCA</CODE>
|
|
<DD>Define this macro to indicate that the compiler is running with the
|
|
<CODE>alloca</CODE> implemented in C. This version of <CODE>alloca</CODE> can be
|
|
found in the file <TT>`alloca.c'</TT>; to use it, you must also alter the
|
|
<TT>`Makefile'</TT> variable <CODE>ALLOCA</CODE>. (This is done automatically
|
|
for the systems on which we know it is needed.)
|
|
<P>
|
|
|
|
If you do define this macro, you should probably do it as follows:
|
|
</P><P>
|
|
|
|
<TABLE><tr><td> </td><td class=example><pre>#ifndef __GNUC__
|
|
#define USE_C_ALLOCA
|
|
#else
|
|
#define alloca __builtin_alloca
|
|
#endif
|
|
</pre></td></tr></table></P><P>
|
|
|
|
so that when the compiler is compiled with GCC it uses the more
|
|
efficient built-in <CODE>alloca</CODE> function.
|
|
</P><P>
|
|
|
|
<DT><CODE>FUNCTION_CONVERSION_BUG</CODE>
|
|
<DD><A NAME="IDX1834"></A>
|
|
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.
|
|
<P>
|
|
|
|
<A NAME="IDX1835"></A>
|
|
<DT><CODE>MULTIBYTE_CHARS</CODE>
|
|
<DD>Define this macro to enable support for multibyte characters in the
|
|
input to GCC. This requires that the host system support the ANSI C
|
|
library functions for converting multibyte characters to wide
|
|
characters.
|
|
<P>
|
|
|
|
<A NAME="IDX1836"></A>
|
|
<DT><CODE>POSIX</CODE>
|
|
<DD>Define this if your system is POSIX.1 compliant.
|
|
<P>
|
|
|
|
<A NAME="IDX1837"></A>
|
|
<DT><CODE>NO_SYS_SIGLIST</CODE>
|
|
<DD>Define this if your system <EM>does not</EM> provide the variable
|
|
<CODE>sys_siglist</CODE>.
|
|
<P>
|
|
|
|
<A NAME="IDX1838"></A>
|
|
Some systems do provide this variable, but with a different name such
|
|
as <CODE>_sys_siglist</CODE>. On these systems, you can define
|
|
<CODE>sys_siglist</CODE> as a macro which expands into the name actually
|
|
provided.
|
|
</P><P>
|
|
|
|
Autoconf normally defines <CODE>SYS_SIGLIST_DECLARED</CODE> when it finds a
|
|
declaration of <CODE>sys_siglist</CODE> in the system header files.
|
|
However, when you define <CODE>sys_siglist</CODE> to a different name
|
|
autoconf will not automatically define <CODE>SYS_SIGLIST_DECLARED</CODE>.
|
|
Therefore, if you define <CODE>sys_siglist</CODE>, you should also define
|
|
<CODE>SYS_SIGLIST_DECLARED</CODE>.
|
|
</P><P>
|
|
|
|
<A NAME="IDX1839"></A>
|
|
<DT><CODE>USE_PROTOTYPES</CODE>
|
|
<DD>Define this to be 1 if you know that the host compiler supports
|
|
prototypes, even if it doesn't define __STDC__, or define
|
|
it to be 0 if you do not want any prototypes used in compiling
|
|
GCC. If <SAMP>`USE_PROTOTYPES'</SAMP> is not defined, it will be
|
|
determined automatically whether your compiler supports
|
|
prototypes by checking if <SAMP>`__STDC__'</SAMP> is defined.
|
|
<P>
|
|
|
|
<A NAME="IDX1840"></A>
|
|
<DT><CODE>NO_MD_PROTOTYPES</CODE>
|
|
<DD>Define this if you wish suppression of prototypes generated from
|
|
the machine description file, but to use other prototypes within
|
|
GCC. If <SAMP>`USE_PROTOTYPES'</SAMP> is defined to be 0, or the
|
|
host compiler does not support prototypes, this macro has no
|
|
effect.
|
|
<P>
|
|
|
|
<A NAME="IDX1841"></A>
|
|
<DT><CODE>MD_CALL_PROTOTYPES</CODE>
|
|
<DD>Define this if you wish to generate prototypes for the
|
|
<CODE>gen_call</CODE> or <CODE>gen_call_value</CODE> functions generated from
|
|
the machine description file. If <SAMP>`USE_PROTOTYPES'</SAMP> is
|
|
defined to be 0, or the host compiler does not support
|
|
prototypes, or <SAMP>`NO_MD_PROTOTYPES'</SAMP> is defined, this macro has
|
|
no effect. As soon as all of the machine descriptions are
|
|
modified to have the appropriate number of arguments, this macro
|
|
will be removed.
|
|
<P>
|
|
|
|
<A NAME="IDX1842"></A>
|
|
<DT><CODE>PATH_SEPARATOR</CODE>
|
|
<DD>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
|
|
<P>
|
|
|
|
<A NAME="IDX1843"></A>
|
|
<DT><CODE>DIR_SEPARATOR</CODE>
|
|
<DD>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.
|
|
<P>
|
|
|
|
<A NAME="IDX1844"></A>
|
|
<DT><CODE>OBJECT_SUFFIX</CODE>
|
|
<DD>Define this macro to be a C string representing the suffix for object
|
|
files on your machine. If you do not define this macro, GCC will use
|
|
<SAMP>`.o'</SAMP> as the suffix for object files.
|
|
<P>
|
|
|
|
<A NAME="IDX1845"></A>
|
|
<DT><CODE>EXECUTABLE_SUFFIX</CODE>
|
|
<DD>Define this macro to be a C string representing the suffix for executable
|
|
files on your machine. If you do not define this macro, GCC will use
|
|
the null string as the suffix for object files.
|
|
<P>
|
|
|
|
<A NAME="IDX1846"></A>
|
|
<DT><CODE>COLLECT_EXPORT_LIST</CODE>
|
|
<DD>If defined, <CODE>collect2</CODE> 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</CODE> and uses export
|
|
lists.
|
|
</DL>
|
|
<P>
|
|
|
|
<A NAME="IDX1847"></A>
|
|
<A NAME="IDX1848"></A>
|
|
In addition, configuration files for system V define <CODE>bcopy</CODE>,
|
|
<CODE>bzero</CODE> and <CODE>bcmp</CODE> as aliases. Some files define <CODE>alloca</CODE>
|
|
as a macro when compiled with GCC, in order to take advantage of the
|
|
benefit of GCC's built-in <CODE>alloca</CODE>.
|
|
</P><P>
|
|
|
|
<A NAME="Fragments"></A>
|
|
<HR SIZE="6">
|
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_2.html#SEC2" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_2.html#SEC2"> << </A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_19.html#SEC252" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_19.html#SEC252"> >> </A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc.html#SEC_Top" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc.html#SEC_Top">Top</A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_toc.html#SEC_Contents" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_toc.html#SEC_Contents">Contents</A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_24.html#SEC261" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_24.html#SEC261">Index</A>]</TD>
|
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gcc_abt.html#SEC_About" tppabs="http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_abt.html#SEC_About"> ? </A>]</TD>
|
|
</TR></TABLE>
|
|
<BR>
|
|
<FONT SIZE="-1">
|
|
This document was generated
|
|
by <I>GCC Administrator</I> on <I>March, 17 2001</I>
|
|
using <A HREF="tppmsgs/msgs0.htm#1" tppabs="http://www.mathematik.uni-kl.de/~obachman/Texi2html"><I>texi2html</I></A>
|
|
|
|
</BODY>
|
|
</HTML>
|