Commit 807633e5 by Zack Weinberg Committed by Zack Weinberg

fragments.texi, [...]: Update to reflect current (lack of) need for host configuration by hand.

	* doc/fragments.texi, doc/hostconfig.texi: Update to reflect
	current (lack of) need for host configuration by hand.

	* doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
	references.  Documentation of some target macros moved from
	hostconfig.texi to tm.texi.

From-SVN: r49142
parent d419f1cd
2002-01-23 Zack Weinberg <zack@codesourcery.com>
* doc/fragments.texi, doc/hostconfig.texi: Update to reflect
current (lack of) need for host configuration by hand.
* doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
references. Documentation of some target macros moved from
hostconfig.texi to tm.texi.
2002-01-23 Will Cohen <wcohen@redhat.com> 2002-01-23 Will Cohen <wcohen@redhat.com>
* config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
......
...@@ -7,26 +7,36 @@ ...@@ -7,26 +7,36 @@
@chapter Makefile Fragments @chapter Makefile Fragments
@cindex makefile fragment @cindex makefile fragment
When you configure GCC using the @file{configure} script, When you configure GCC using the @file{configure} script, it will
it will construct the file @file{Makefile} from construct the file @file{Makefile} from the template file
the template file @file{Makefile.in}. When it does this, it will @file{Makefile.in}. When it does this, it can incorporate makefile
incorporate makefile fragment files from the @file{config} directory, fragments from the @file{config} directory. These are used to set
named @file{t-@var{target}} and @file{x-@var{host}}. If these files do Makefile parameters that are not amenable to being calculated by
not exist, it means nothing needs to be added for a given target or autoconf. The list of fragments to incorporate is set by
host. @file{config.gcc}; @xref{System Config}.
Fragments are named either @file{t-@var{target}} or @file{x-@var{host}},
depending on whether they are relevant to configuring GCC to produce
code for a particular target, or to configuring GCC to run on a
particular host. Here @var{target} and @var{host} are mnemonics
which usually have some relationship to the canonical system name, but
no formal connection.
If these files do not exist, it means nothing needs to be added for a
given target or host. Most targets need a few @file{t-@var{target}}
fragments, but needing @file{x-@var{host}} fragments is rare.
@menu @menu
* Target Fragment:: Writing the @file{t-@var{target}} file. * Target Fragment:: Writing @file{t-@var{target}} files.
* Host Fragment:: Writing the @file{x-@var{host}} file. * Host Fragment:: Writing @file{x-@var{host}} files.
@end menu @end menu
@node Target Fragment @node Target Fragment
@section The Target Makefile Fragment @section Target Makefile Fragments
@cindex target makefile fragment @cindex target makefile fragment
@cindex @file{t-@var{target}} @cindex @file{t-@var{target}}
The target makefile fragment, @file{t-@var{target}}, defines special Target makefile fragments can set these Makefile variables.
target dependent variables and targets used in the @file{Makefile}:
@table @code @table @code
@findex LIBGCC2_CFLAGS @findex LIBGCC2_CFLAGS
...@@ -141,19 +151,40 @@ of options to be used for all builds. ...@@ -141,19 +151,40 @@ of options to be used for all builds.
@end table @end table
@node Host Fragment @node Host Fragment
@section The Host Makefile Fragment @section Host Makefile Fragments
@cindex host makefile fragment @cindex host makefile fragment
@cindex @file{x-@var{host}} @cindex @file{x-@var{host}}
The host makefile fragment, @file{x-@var{host}}, defines special host The use of @file{x-@var{host}} fragments is discouraged. You should do
dependent variables and targets used in the @file{Makefile}: so only if there is no other mechanism to get the behavior desired.
Host fragments should never forcibly override variables set by the
configure script, as they may have been adjusted by the user.
Variables provided for host fragments to set include:
@table @code @table @code
@findex CC
@item CC
The compiler to use when building the first stage.
@findex INSTALL @item X_CFLAGS
@item INSTALL @itemx X_CPPFLAGS
The install program to use. These are extra flags to pass to the C compiler and preprocessor,
respectively. They are used both when building GCC, and when compiling
things with the just-built GCC.
@item XCFLAGS
These are extra flags to use when building the compiler. They are not
used when compiling @file{libgcc.a}. However, they @emph{are} used when
recompiling the compiler with itself in later stages of a bootstrap.
@item BOOT_LDFLAGS
Flags to be passed to the linker when recompiling the compiler with
itself in later stages of a bootstrap. You might need to use this if,
for instance, one of the front ends needs more text space than the
linker provides by default.
@item EXTRA_PROGRAMS
A list of additional programs required to use the compiler on this host,
which should be compiled with GCC and installed alongside the front
ends. If you set this variable, you must also provide rules to build
the extra programs.
@end table @end table
...@@ -165,7 +165,7 @@ Additional tutorial information is linked to from ...@@ -165,7 +165,7 @@ Additional tutorial information is linked to from
* RTL:: The intermediate representation that most passes work on. * RTL:: The intermediate representation that most passes work on.
* Machine Desc:: How to write machine description instruction patterns. * Machine Desc:: How to write machine description instruction patterns.
* Target Macros:: How to write the machine description C macros and functions. * Target Macros:: How to write the machine description C macros and functions.
* Config:: Writing the @file{xm-@var{machine}.h} file. * Host Config:: Writing the @file{xm-@var{machine}.h} file.
* Fragments:: Writing the @file{t-@var{target}} and @file{x-@var{host}} files. * Fragments:: Writing the @file{t-@var{target}} and @file{x-@var{host}} files.
* Collect2:: How @code{collect2} works; how it finds @code{ld}. * Collect2:: How @code{collect2} works; how it finds @code{ld}.
* Header Dirs:: Understanding the standard header file directories. * Header Dirs:: Understanding the standard header file directories.
......
...@@ -57,9 +57,9 @@ expression (``RTX'', for short) is a C structure, but it is usually ...@@ -57,9 +57,9 @@ expression (``RTX'', for short) is a C structure, but it is usually
referred to with a pointer; a type that is given the typedef name referred to with a pointer; a type that is given the typedef name
@code{rtx}. @code{rtx}.
An integer is simply an @code{int}; their written form uses decimal digits. An integer is simply an @code{int}; their written form uses decimal
A wide integer is an integral object whose type is @code{HOST_WIDE_INT} digits. A wide integer is an integral object whose type is
(@pxref{Config}); their written form uses decimal digits. @code{HOST_WIDE_INT}; their written form uses decimal digits.
A string is a sequence of characters. In core it is represented as a A string is a sequence of characters. In core it is represented as a
@code{char *} in usual C fashion, and it is written in C syntax as well. @code{char *} in usual C fashion, and it is written in C syntax as well.
......
...@@ -1313,7 +1313,7 @@ need to define this macro when the format is IEEE@. ...@@ -1313,7 +1313,7 @@ need to define this macro when the format is IEEE@.
@findex VAX_FLOAT_FORMAT @findex VAX_FLOAT_FORMAT
@item VAX_FLOAT_FORMAT @item VAX_FLOAT_FORMAT
This code indicates the peculiar format used on the VAX. This code indicates the ``D float'' format used on the VAX@.
@findex IBM_FLOAT_FORMAT @findex IBM_FLOAT_FORMAT
@item IBM_FLOAT_FORMAT @item IBM_FLOAT_FORMAT
...@@ -1328,14 +1328,14 @@ This code indicates the format used on the TMS320C3x/C4x. ...@@ -1328,14 +1328,14 @@ This code indicates the format used on the TMS320C3x/C4x.
This code indicates any other format. This code indicates any other format.
@end table @end table
The value of this macro is compared with @code{HOST_FLOAT_FORMAT} The value of this macro is compared with @code{HOST_FLOAT_FORMAT}, which
(@pxref{Config}) to determine whether the target machine has the same is defined by the @command{configure} script, to determine whether the
format as the host machine. If any other formats are actually in use on target machine has the same format as the host machine. If any other
supported machines, new codes should be defined for them. formats are actually in use on supported machines, new codes should be
defined for them.
The ordering of the component words of floating point values stored in The ordering of the component words of floating point values stored in
memory is controlled by @code{FLOAT_WORDS_BIG_ENDIAN} for the target memory is controlled by @code{FLOAT_WORDS_BIG_ENDIAN}.
machine and @code{HOST_FLOAT_WORDS_BIG_ENDIAN} for the host.
@end table @end table
...@@ -8600,4 +8600,25 @@ You may use @code{current_function_leaf_function} in the definition of the ...@@ -8600,4 +8600,25 @@ You may use @code{current_function_leaf_function} in the definition of the
macro, functions that use @code{REG_N_SETS}, to determine if the hard macro, functions that use @code{REG_N_SETS}, to determine if the hard
register in question will not be clobbered. register in question will not be clobbered.
@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 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.
@end table @end table
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment