aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorJoseph Myers <jsm28@cam.ac.uk>2001-12-17 19:20:05 +0000
committerJoseph Myers <jsm28@gcc.gnu.org>2001-12-17 19:20:05 +0000
commitb11cc6108963f1a0690fd603b91f125144636f98 (patch)
tree6ff3b4ab121f5dc4cfb32c48955165d70582a95b /gcc/doc
parente97562f5ce4ea6d67e165baf9711c06b31b69350 (diff)
downloadgcc-b11cc6108963f1a0690fd603b91f125144636f98.zip
gcc-b11cc6108963f1a0690fd603b91f125144636f98.tar.gz
gcc-b11cc6108963f1a0690fd603b91f125144636f98.tar.bz2
Separate user and internals manuals.
* Makefile.in (info, $(docdir)/gcc.info, dvi, gcc.dvi): Update dependencies. ($(docdir)/gccint.info, gccint.dvi): New targets. (maintainer-clean, install-info, uninstall): Update. * doc/.cvsignore: Add gccint.info*. * doc/include/gcc-common.texi: New file. * doc/gcc.texi: Use it. Adjust to be a user-only manual. Put copyright notice in a macro. Don't include ISBN unless FSFPRINT is defined. * doc/gccint.texi: New file. * doc/configfiles.texi, doc/extend.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi, doc/trouble.texi: Update for separate user and internals manuals. f: * g77.texi, invoke.texi: Update links to GCC manual. java: * gcj.texi: Update link to GCC manual. From-SVN: r48119
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/.cvsignore1
-rw-r--r--gcc/doc/configfiles.texi9
-rw-r--r--gcc/doc/extend.texi64
-rw-r--r--gcc/doc/gcc.texi184
-rw-r--r--gcc/doc/gccint.texi224
-rw-r--r--gcc/doc/include/gcc-common.texi36
-rw-r--r--gcc/doc/invoke.texi43
-rw-r--r--gcc/doc/md.texi6
-rw-r--r--gcc/doc/passes.texi8
-rw-r--r--gcc/doc/tm.texi8
-rw-r--r--gcc/doc/trouble.texi9
11 files changed, 304 insertions, 288 deletions
diff --git a/gcc/doc/.cvsignore b/gcc/doc/.cvsignore
index 48cfd3d..c8ae132 100644
--- a/gcc/doc/.cvsignore
+++ b/gcc/doc/.cvsignore
@@ -1,4 +1,5 @@
gcc.info*
+gccint.info*
cpp.info*
cppinternals.info*
gcc.1
diff --git a/gcc/doc/configfiles.texi b/gcc/doc/configfiles.texi
index ca0a3a4..58aaf57 100644
--- a/gcc/doc/configfiles.texi
+++ b/gcc/doc/configfiles.texi
@@ -10,19 +10,10 @@ you need not be concerned with these files.
@itemize @bullet
@item
-@ifset INTERNALS
A file named @file{config.h} is created that contains a @samp{#include}
of the top-level config file for the machine you will run the compiler
on (@pxref{Config}). This file is responsible for defining information
about the host machine. It includes @file{tm.h}.
-@end ifset
-@ifclear INTERNALS
-A file named @file{config.h} is created that contains a @samp{#include}
-of the top-level config file for the machine you will run the compiler
-on (@pxref{Config,,The Configuration File, gcc.info, Using and Porting
-GCC}). This file is responsible for defining information about the host
-machine. It includes @file{tm.h}.
-@end ifclear
The top-level config file is located in the subdirectory @file{config}.
Its name is always @file{xm-@var{something}.h}; usually
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 6413759..a9f659d 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -379,64 +379,6 @@ C++ Language}, for extensions that apply @emph{only} to C++.
Some features that are in ISO C99 but not C89 or C++ are also, as
extensions, accepted by GCC in C89 mode and in C++.
-@c The only difference between the two versions of this menu is that the
-@c version for clear INTERNALS has an extra node, "Constraints" (which
-@c appears in a separate chapter in the other version of the manual).
-@ifset INTERNALS
-@menu
-* Statement Exprs:: Putting statements and declarations inside expressions.
-* Local Labels:: Labels local to a statement-expression.
-* Labels as Values:: Getting pointers to labels, and computed gotos.
-* Nested Functions:: As in Algol and Pascal, lexical scoping of functions.
-* Constructing Calls:: Dispatching a call to another function.
-* Naming Types:: Giving a name to the type of some expression.
-* Typeof:: @code{typeof}: referring to the type of an expression.
-* Lvalues:: Using @samp{?:}, @samp{,} and casts in lvalues.
-* Conditionals:: Omitting the middle operand of a @samp{?:} expression.
-* Long Long:: Double-word integers---@code{long long int}.
-* Complex:: Data types for complex numbers.
-* Hex Floats:: Hexadecimal floating-point constants.
-* Zero Length:: Zero-length arrays.
-* Variable Length:: Arrays whose length is computed at run time.
-* Variadic Macros:: Macros with a variable number of arguments.
-* Escaped Newlines:: Slightly looser rules for escaped newlines.
-* Multi-line Strings:: String literals with embedded newlines.
-* Subscripting:: Any array can be subscripted, even if not an lvalue.
-* Pointer Arith:: Arithmetic on @code{void}-pointers and function pointers.
-* Initializers:: Non-constant initializers.
-* Compound Literals:: Compound literals give structures, unions
- or arrays as values.
-* Designated Inits:: Labeling elements of initializers.
-* Cast to Union:: Casting to union type from any member of the union.
-* Case Ranges:: `case 1 ... 9' and such.
-* Mixed Declarations:: Mixing declarations and code.
-* Function Attributes:: Declaring that functions have no side effects,
- or that they can never return.
-* Attribute Syntax:: Formal syntax for attributes.
-* Function Prototypes:: Prototype declarations and old-style definitions.
-* C++ Comments:: C++ comments are recognized.
-* Dollar Signs:: Dollar sign is allowed in identifiers.
-* Character Escapes:: @samp{\e} stands for the character @key{ESC}.
-* Variable Attributes:: Specifying attributes of variables.
-* Type Attributes:: Specifying attributes of types.
-* Alignment:: Inquiring about the alignment of a type or variable.
-* Inline:: Defining inline functions (as fast as macros).
-* Extended Asm:: Assembler instructions with C expressions as operands.
- (With them you can define ``built-in'' functions.)
-* Asm Labels:: Specifying the assembler name to use for a C symbol.
-* Explicit Reg Vars:: Defining variables residing in specified registers.
-* Alternate Keywords:: @code{__const__}, @code{__asm__}, etc., for header files.
-* Incomplete Enums:: @code{enum foo;}, with details to follow.
-* Function Names:: Printable strings which are the name of the current
- function.
-* Return Address:: Getting the return or frame address of a function.
-* Vector Extensions:: Using vector instructions through built-in functions.
-* Other Builtins:: Other built-in functions.
-* Pragmas:: Pragmas accepted by GCC.
-* Unnamed Fields:: Unnamed struct/union fields within structs/unions.
-@end menu
-@end ifset
-@ifclear INTERNALS
@menu
* Statement Exprs:: Putting statements and declarations inside expressions.
* Local Labels:: Labels local to a statement-expression.
@@ -488,8 +430,8 @@ extensions, accepted by GCC in C89 mode and in C++.
* Vector Extensions:: Using vector instructions through built-in functions.
* Other Builtins:: Other built-in functions.
* Pragmas:: Pragmas accepted by GCC.
+* Unnamed Fields:: Unnamed struct/union fields within structs/unions.
@end menu
-@end ifclear
@node Statement Exprs
@section Statements and Declarations in Expressions
@@ -3791,11 +3733,7 @@ clobber for reg-stack.c to know that @code{fyl2xp1} pops both inputs.
asm ("fyl2xp1" : "=t" (result) : "0" (x), "u" (y) : "st(1)");
@end example
-@ifclear INTERNALS
-@c Show the details on constraints if they do not appear elsewhere in
-@c the manual
@include md.texi
-@end ifclear
@node Asm Labels
@section Controlling Names Used in Assembler Code
diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi
index 67ea96a..f8e477c 100644
--- a/gcc/doc/gcc.texi
+++ b/gcc/doc/gcc.texi
@@ -1,29 +1,10 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename gcc.info
-@c @setfilename usegcc.info
-@c @setfilename portgcc.info
-@c To produce the full manual, use the "gcc.info" setfilename, and
-@c make sure the following do NOT begin with '@c' (and the @clear lines DO)
-@set INTERNALS
-@set USING
-@c To produce a user-only manual, use the "usegcc.info" setfilename, and
-@c make sure the following does NOT begin with '@c':
-@c @clear INTERNALS
-@c To produce a porter-only manual, use the "portgcc.info" setfilename,
-@c and make sure the following does NOT begin with '@c':
-@c @clear USING
-
-@c (For FSF printing, turn on smallbook, comment out finalout below;
-@c that is all that is needed.)
-
-@c 6/27/96 FSF DO wants smallbook fmt for 1st bound edition.
-@c @smallbook
-
-@c i also commented out the finalout command, so if there *are* any
-@c overfulls, you'll (hopefully) see the rectangle in the right hand
-@c margin. -mew 15june93
-@c @finalout
+@c INTERNALS is used by md.texi to determine whether to include the
+@c whole of that file, in the internals manual, or only the part
+@c dealing with constraints, in the user manual.
+@clear INTERNALS
@c NOTE: checks/things to do:
@c
@@ -41,37 +22,9 @@
@c
@c anything else? --mew 10feb93
-@macro gcctabopt{body}
-@code{\body\}
-@end macro
-@macro gccoptlist{body}
-@smallexample
-\body\
-@end smallexample
-@end macro
-@c Makeinfo handles the above macro OK, TeX needs manual line breaks;
-@c they get lost at some point in handling the macro. But if @macro is
-@c used here rather than @alias, it produces double line breaks.
-@iftex
-@alias gol = *
-@end iftex
-@ifnottex
-@macro gol
-@end macro
-@end ifnottex
+@include gcc-common.texi
-@ifset INTERNALS
-@ifset USING
-@settitle Using and Porting the GNU Compiler Collection (GCC)
-@end ifset
-@end ifset
-@c seems reasonable to assume at least one of INTERNALS or USING is set...
-@ifclear INTERNALS
-@settitle Using the GNU Compiler Collection
-@end ifclear
-@ifclear USING
-@settitle Porting the GNU Compiler Collection
-@end ifclear
+@settitle Using the GNU Compiler Collection (GCC)
@c Create a separate index for command line options.
@defcodeindex op
@@ -107,31 +60,22 @@
\global\setfont\defbf\ttbshape{10}{\magstep1}
@end tex
+@macro copyrightnotice
+Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+1999, 2000, 2001 Free Software Foundation, Inc.
+@end macro
@ifnottex
@dircategory Programming
@direntry
* gcc: (gcc). The GNU Compiler Collection.
@end direntry
-@ifset INTERNALS
-@ifset USING
-This file documents the use and the internals of the GNU compiler.
-@end ifset
-@end ifset
-@ifclear USING
-This file documents the internals of the GNU compiler.
-@end ifclear
-@ifclear INTERNALS
-This file documents the use of the GNU compiler.
-@end ifclear
+This file documents the use of the GNU compilers.
@sp 1
Published by the Free Software Foundation@*
59 Temple Place - Suite 330@*
Boston, MA 02111-1307 USA
@sp 1
-@c When you update the list of years below, search for copyright{} and
-@c update the other copy too.
-Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001 Free Software Foundation, Inc.
+@copyrightnotice{}
@sp 1
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -153,41 +97,30 @@ included in the section entitled ``GNU Free Documentation License''.
@end ifnottex
@setchapternewpage odd
-@c @finalout
@titlepage
-@ifset INTERNALS
-@ifset USING
-@center @titlefont{Using and Porting the GNU Compiler Collection}
-
-@end ifset
-@end ifset
-@ifclear INTERNALS
-@title Using the GNU Compiler Collection
-@end ifclear
-@ifclear USING
-@title Porting the GNU Compiler Collection
-@end ifclear
+@center @titlefont{Using the GNU Compiler Collection}
@sp 2
@center Richard M. Stallman
@sp 3
-@center Last updated 22 June 2001
+@center Last updated 7 December 2001
@sp 1
-@c The version number appears five times more in this file.
-@center for GCC 3.1
+@center for GCC @value{version-GCC}
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
-1999, 2000, 2001 Free Software Foundation, Inc.
+@copyrightnotice{}
@sp 2
-For GCC Version 3.1@*
+For GCC Version @value{version-GCC}@*
@sp 1
Published by the Free Software Foundation @*
59 Temple Place---Suite 330@*
Boston, MA 02111-1307, USA@*
Last printed April, 1998.@*
Printed copies are available for $50 each.@*
+@c Update this ISBN when printing a new edition.
+@ifset FSFPRINT
ISBN 1-882114-37-X
+@end ifset
@sp 1
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -215,27 +148,15 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
@top Introduction
@cindex introduction
-@ifset INTERNALS
-@ifset USING
-This manual documents how to run and port the GNU
-compiler, as well as its new features and incompatibilities, and how to
-report bugs. It corresponds to GCC version 3.1.
-@end ifset
-@end ifset
-
-@ifclear INTERNALS
-This manual documents how to run the GNU compiler,
-as well as its new features and incompatibilities, and how to report
-bugs. It corresponds to GCC version 3.1.
-@end ifclear
-@ifclear USING
-This manual documents how to port the GNU compiler,
-as well as its new features and incompatibilities, and how to report
-bugs. It corresponds to GCC version 3.1.
-@end ifclear
+This manual documents how to use the GNU compilers,
+as well as their features and incompatibilities, and how to report
+bugs. It corresponds to GCC version @value{version-GCC}.
+The internals of the GNU compilers, including how to port them to new
+targets and some information about how to write front ends for new
+languages, are documented in a separate manual. @xref{Top,,
+Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
@menu
-@ifset USING
* G++ and GCC:: You can compile C or C++ programs.
* Standards:: Language standards supported by GCC.
* Invoking GCC:: Command options supported by @samp{gcc}.
@@ -249,22 +170,6 @@ bugs. It corresponds to GCC version 3.1.
* Service:: How to find suppliers of support for GCC.
* Contributing:: How to contribute to testing and developing GCC.
* VMS:: Using GCC on VMS.
-* Makefile:: Additional Makefile and configure information.
-@end ifset
-@ifset INTERNALS
-* Portability:: Goals of GCC's portability features.
-* Interface:: Function-call interface of GCC output.
-* Passes:: Order of passes, what they do, and what each file is for.
-* Trees:: The source representation used by the C and C++ front ends.
-* RTL:: The intermediate representation that most passes work on.
-* Machine Desc:: How to write machine description instruction patterns.
-* Target Macros:: How to write the machine description C macros and functions.
-* Config:: Writing the @file{xm-@var{machine}.h} file.
-* Fragments:: Writing the @file{t-@var{target}} and @file{x-@var{host}} files.
-* Configuration Files:: Files created by running @code{configure}.
-* Collect2:: How @code{collect2} works; how it finds @code{ld}.
-* Header Dirs:: Understanding the standard header file directories.
-@end ifset
* Funding:: How to help assure funding for free software.
* GNU Project:: The GNU Project and GNU/Linux.
@@ -278,55 +183,20 @@ bugs. It corresponds to GCC version 3.1.
* Index:: Index of concepts and symbol names.
@end menu
-@ifset USING
-
@include frontends.texi
-
@include standards.texi
-
@include invoke.texi
-
@include extend.texi
-
@include objc.texi
-
@include gcov.texi
-
@include trouble.texi
-
@include bugreport.texi
-
@include service.texi
-
@include contribute.texi
-
@include vms.texi
-@include makefile.texi
-
-@include configterms.texi
-
-@end ifset
-
-@ifset INTERNALS
-@include portability.texi
-@include interface.texi
-@include passes.texi
-@include c-tree.texi
-@include rtl.texi
-@include md.texi
-@include tm.texi
-@include hostconfig.texi
-@include fragments.texi
-@include configfiles.texi
-@include collect2.texi
-@include headerdirs.texi
-@end ifset
-
@include funding.texi
-
@include gnu.texi
-
@include gpl.texi
@c ---------------------------------------------------------------------
diff --git a/gcc/doc/gccint.texi b/gcc/doc/gccint.texi
new file mode 100644
index 0000000..7f6f4b9
--- /dev/null
+++ b/gcc/doc/gccint.texi
@@ -0,0 +1,224 @@
+\input texinfo @c -*-texinfo-*-
+@c %**start of header
+@setfilename gccint.info
+@c INTERNALS is used by md.texi to determine whether to include the
+@c whole of that file, in the internals manual, or only the part
+@c dealing with constraints, in the user manual.
+@set INTERNALS
+
+@c See miscellaneous notes in gcc.texi on checks/things to do.
+
+@include gcc-common.texi
+
+@settitle GNU Compiler Collection (GCC) Internals
+
+@c Create a separate index for command line options.
+@defcodeindex op
+@c Merge the standard indexes into a single one.
+@syncodeindex fn cp
+@syncodeindex vr cp
+@syncodeindex ky cp
+@syncodeindex pg cp
+@syncodeindex tp cp
+
+@c %**end of header
+
+@c Use with @@smallbook.
+
+@c Cause even numbered pages to be printed on the left hand side of
+@c the page and odd numbered pages to be printed on the right hand
+@c side of the page. Using this, you can print on both sides of a
+@c sheet of paper and have the text on the same part of the sheet.
+
+@c The text on right hand pages is pushed towards the right hand
+@c margin and the text on left hand pages is pushed toward the left
+@c hand margin.
+@c (To provide the reverse effect, set bindingoffset to -0.75in.)
+
+@c @tex
+@c \global\bindingoffset=0.75in
+@c \global\normaloffset =0.75in
+@c @end tex
+
+@c Change the font used for @def... commands, since the default
+@c proportional one used is bad for names starting __.
+@tex
+\global\setfont\defbf\ttbshape{10}{\magstep1}
+@end tex
+
+@macro copyrightnotice
+Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+1999, 2000, 2001 Free Software Foundation, Inc.
+@end macro
+@ifnottex
+@dircategory Programming
+@direntry
+* gccint: (gccint). Internals of the GNU Compiler Collection.
+@end direntry
+This file documents the internals of the GNU compilers.
+@sp 1
+Published by the Free Software Foundation@*
+59 Temple Place - Suite 330@*
+Boston, MA 02111-1307 USA
+@sp 1
+@copyrightnotice{}
+@sp 1
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being ``GNU General Public License'' and ``Funding
+Free Software'', the Front-Cover texts being (a) (see below), and with
+the Back-Cover Texts being (b) (see below). A copy of the license is
+included in the section entitled ``GNU Free Documentation License''.
+
+(a) The FSF's Front-Cover Text is:
+
+ A GNU Manual
+
+(b) The FSF's Back-Cover Text is:
+
+ You have freedom to copy and modify this GNU Manual, like GNU
+ software. Copies published by the Free Software Foundation raise
+ funds for GNU development.
+@end ifnottex
+
+@setchapternewpage odd
+@titlepage
+@center @titlefont{GNU Compiler Collection Internals}
+@sp 2
+@center Richard M. Stallman
+@sp 3
+@center Last updated 7 December 2001
+@sp 1
+
+@center for GCC @value{version-GCC}
+@page
+@vskip 0pt plus 1filll
+@copyrightnotice{}
+@sp 2
+For GCC Version @value{version-GCC}@*
+@sp 1
+Published by the Free Software Foundation @*
+59 Temple Place---Suite 330@*
+Boston, MA 02111-1307, USA@*
+Last printed April, 1998.@*
+Printed copies are available for $50 each.@*
+@c Update this ISBN when printing a new edition.
+@ifset FSFPRINT
+ISBN 1-882114-37-X
+@end ifset
+@sp 1
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being ``GNU General Public License'', the Front-Cover
+texts being (a) (see below), and with the Back-Cover Texts being (b)
+(see below). A copy of the license is included in the section entitled
+``GNU Free Documentation License''.
+
+(a) The FSF's Front-Cover Text is:
+
+ A GNU Manual
+
+(b) The FSF's Back-Cover Text is:
+
+ You have freedom to copy and modify this GNU Manual, like GNU
+ software. Copies published by the Free Software Foundation raise
+ funds for GNU development.
+@end titlepage
+@summarycontents
+@contents
+@page
+
+@node Top, Contributing,, (DIR)
+@top Introduction
+@cindex introduction
+
+This manual documents the internals of the GNU compilers, including
+how to port them to new targets and some information about how to
+write front ends for new languages. It corresponds to GCC version
+@value{version-GCC}. The use of the GNU compilers is documented in a
+separate manual. @xref{Top,, Introduction, gcc, Using the GNU
+Compiler Collection (GCC)}.
+
+@menu
+* Contributing:: How to contribute to testing and developing GCC.
+* Makefile:: Additional Makefile and configure information.
+* Portability:: Goals of GCC's portability features.
+* Interface:: Function-call interface of GCC output.
+* Passes:: Order of passes, what they do, and what each file is for.
+* Trees:: The source representation used by the C and C++ front ends.
+* RTL:: The intermediate representation that most passes work on.
+* Machine Desc:: How to write machine description instruction patterns.
+* Target Macros:: How to write the machine description C macros and functions.
+* Config:: Writing the @file{xm-@var{machine}.h} file.
+* Fragments:: Writing the @file{t-@var{target}} and @file{x-@var{host}} files.
+* Configuration Files:: Files created by running @code{configure}.
+* Collect2:: How @code{collect2} works; how it finds @code{ld}.
+* Header Dirs:: Understanding the standard header file directories.
+
+* Funding:: How to help assure funding for free software.
+* GNU Project:: The GNU Project and GNU/Linux.
+
+* Copying:: GNU General Public License says
+ how you can copy and share GCC.
+* GNU Free Documentation License:: How you can copy and share this manual.
+* Contributors:: People who have contributed to GCC.
+
+* Option Index:: Index to command line options.
+* Index:: Index of concepts and symbol names.
+@end menu
+
+@include contribute.texi
+@include makefile.texi
+@include configterms.texi
+@include portability.texi
+@include interface.texi
+@include passes.texi
+@include c-tree.texi
+@include rtl.texi
+@include md.texi
+@include tm.texi
+@include hostconfig.texi
+@include fragments.texi
+@include configfiles.texi
+@include collect2.texi
+@include headerdirs.texi
+
+@include funding.texi
+@include gnu.texi
+@include gpl.texi
+
+@c ---------------------------------------------------------------------
+@c GFDL
+@c ---------------------------------------------------------------------
+
+@include fdl.texi
+
+@include contrib.texi
+
+@c ---------------------------------------------------------------------
+@c Indexes
+@c ---------------------------------------------------------------------
+
+@node Option Index
+@unnumbered Option Index
+
+GCC's command line options are indexed here without any initial @samp{-}
+or @samp{--}. Where an option has both positive and negative forms
+(such as @option{-f@var{option}} and @option{-fno-@var{option}}),
+relevant entries in the manual are indexed under the most appropriate
+form; it may sometimes be useful to look up both forms.
+
+@printindex op
+
+@node Index
+@unnumbered Index
+
+@printindex cp
+
+@c ---------------------------------------------------------------------
+@c Epilogue
+@c ---------------------------------------------------------------------
+
+@bye
diff --git a/gcc/doc/include/gcc-common.texi b/gcc/doc/include/gcc-common.texi
new file mode 100644
index 0000000..947dde1
--- /dev/null
+++ b/gcc/doc/include/gcc-common.texi
@@ -0,0 +1,36 @@
+@c Copyright (C) 2001 Free Software Foundation, Inc.
+@c This is part of the GCC manual.
+@c For copying conditions, see the file gcc.texi.
+
+@c Common values used in the GCC manuals:
+
+@set version-GCC 3.1
+
+@c Common macros to support generating man pages:
+
+@macro gcctabopt{body}
+@code{\body\}
+@end macro
+@macro gccoptlist{body}
+@smallexample
+\body\
+@end smallexample
+@end macro
+@c Makeinfo handles the above macro OK, TeX needs manual line breaks;
+@c they get lost at some point in handling the macro. But if @macro is
+@c used here rather than @alias, it produces double line breaks.
+@iftex
+@alias gol = *
+@end iftex
+@ifnottex
+@macro gol
+@end macro
+@end ifnottex
+
+@c For FSF printing, define FSFPRINT. Also update the ISBNs and last
+@c printing dates in gcc.texi and gccint.texi.
+@c @set FSFPRINT
+@ifset FSFPRINT
+@smallbook
+@finalout
+@end ifset
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 03def55..8c5f1a6 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -3239,21 +3239,12 @@ restore frame pointers; it also makes an extra register available
in many functions. @strong{It also makes debugging impossible on
some machines.}
-@ifset INTERNALS
-On some machines, such as the VAX, this flag has no effect, because
-the standard calling sequence automatically handles the frame pointer
-and nothing is saved by pretending it doesn't exist. The
-machine-description macro @code{FRAME_POINTER_REQUIRED} controls
-whether a target machine supports this flag. @xref{Registers}.
-@end ifset
-@ifclear INTERNALS
On some machines, such as the VAX, this flag has no effect, because
the standard calling sequence automatically handles the frame pointer
and nothing is saved by pretending it doesn't exist. The
machine-description macro @code{FRAME_POINTER_REQUIRED} controls
whether a target machine supports this flag. @xref{Registers,,Register
-Usage, gcc.info, Using and Porting GCC}.
-@end ifclear
+Usage, gccint, GNU Compiler Collection (GCC) Internals}.
@item -foptimize-sibling-calls
@opindex foptimize-sibling-calls
@@ -3624,7 +3615,6 @@ file The information in this data file is very dependent on the
structure of the generated code, so you must use the same source code
and the same optimization options for both compilations.
-@ifset INTERNALS
With @option{-fbranch-probabilities}, GCC puts a @samp{REG_EXEC_COUNT}
note on the first instruction of each basic block, and a
@samp{REG_BR_PROB} note on each @samp{JUMP_INSN} and @samp{CALL_INSN}.
@@ -3632,7 +3622,6 @@ These can be used to improve optimization. Currently, they are only
used in one place: in @file{reorg.c}, instead of guessing which path a
branch is mostly to take, the @samp{REG_BR_PROB} values are used to
exactly determine which path is taken more often.
-@end ifset
@item -fno-guess-branch-probability
@opindex fno-guess-branch-probability
@@ -3689,13 +3678,11 @@ int f() @{
@}
@end example
-@ifset INTERNALS
Every language that wishes to perform language-specific alias analysis
should define a function that computes, given an @code{tree}
node, an alias set for the node. Nodes in different alias sets are not
allowed to alias. For an example, see the C front-end function
@code{c_get_alias_set}.
-@end ifset
@item -falign-functions
@itemx -falign-functions=@var{n}
@@ -4276,20 +4263,16 @@ One of the standard libraries bypassed by @option{-nostdlib} and
@option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines
that GCC uses to overcome shortcomings of particular machines, or special
needs for some languages.
-@ifset INTERNALS
-(@xref{Interface,,Interfacing to GCC Output}, for more discussion of
-@file{libgcc.a}.)
-@end ifset
-@ifclear INTERNALS
-(@xref{Interface,,Interfacing to GCC Output,gcc.info,Porting GCC},
+(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler
+Collection (GCC) Internals},
for more discussion of @file{libgcc.a}.)
-@end ifclear
In most cases, you need @file{libgcc.a} even when you want to avoid
other standard libraries. In other words, when you specify @option{-nostdlib}
or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well.
This ensures that you have no unresolved references to internal GCC
library subroutines. (For example, @samp{__main}, used to ensure C++
-constructors will be called; @pxref{Collect2,,@command{collect2}}.)
+constructors will be called; @pxref{Collect2,,@code{collect2}, gccint,
+GNU Compiler Collection (GCC) Internals}.)
@item -s
@opindex s
@@ -5059,11 +5042,9 @@ Some configurations of the compiler also support additional special
options, usually for compatibility with other compilers on the same
platform.
-@ifset INTERNALS
These options are defined by the macro @code{TARGET_SWITCHES} in the
machine description. The default for the options is also defined by
that macro, which enables you to change the defaults.
-@end ifset
@menu
* M680x0 Options::
@@ -7460,12 +7441,10 @@ depends on the target gcc was configured for, but commonly is either
@samp{_flush_func} or @samp{__cpu_flush}.
@end table
-@ifset INTERNALS
These options are defined by the macro
@code{TARGET_SWITCHES} in the machine description. The default for the
options is also defined by that macro, which enables you to change the
defaults.
-@end ifset
@node i386 and x86-64 Options
@subsection Intel 386 and AMD x86-64 Options
@@ -10099,20 +10078,12 @@ operates. Some of them work by specifying directories or prefixes to use
when searching for various kinds of files. Some are used to specify other
aspects of the compilation environment.
-@ifclear INTERNALS
-Note that you can also specify places to search using options such as
-@option{-B}, @option{-I} and @option{-L} (@pxref{Directory Options}). These
-take precedence over places specified using environment variables, which
-in turn take precedence over those specified by the configuration of GCC@.
-
-@end ifclear
-@ifset INTERNALS
Note that you can also specify places to search using options such as
@option{-B}, @option{-I} and @option{-L} (@pxref{Directory Options}). These
take precedence over places specified using environment variables, which
in turn take precedence over those specified by the configuration of GCC@.
-@xref{Driver}.
-@end ifset
+@xref{Driver,, Controlling the Compilation Driver @file{gcc}, gccint,
+GNU Compiler Collection (GCC) Internals}.
@table @env
@item LANG
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index df0fb62..7c27220 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -701,8 +701,8 @@ as follows, having the output control string start with a @samp{@@}:
@end ifset
@c Most of this node appears by itself (in a different place) even
-@c when the INTERNALS flag is clear. Passages that require the full
-@c manual's context are conditionalized to appear only in the full manual.
+@c when the INTERNALS flag is clear. Passages that require the internals
+@c manual's context are conditionalized to appear only in the internals manual.
@ifset INTERNALS
@node Constraints
@section Operand Constraints
@@ -5075,7 +5075,6 @@ units. These insns will cause a potential conflict for the second unit
used during their execution and there is no way of representing that
conflict. We welcome any examples of how function unit conflicts work
in such processors and suggestions for their representation.
-@end ifset
@node Conditional Execution
@section Conditional Execution
@@ -5208,3 +5207,4 @@ You could write:
The constants that are defined with a define_constant are also output
in the insn-codes.h header file as #defines.
+@end ifset
diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi
index 7717341..8d9a06e 100644
--- a/gcc/doc/passes.texi
+++ b/gcc/doc/passes.texi
@@ -42,12 +42,8 @@ compiling a function definition, the storage used for that function
definition's compilation is entirely freed, unless it is an inline
function, or was deferred for some reason (this can occur in
templates, for example).
-@ifset USING
-(@pxref{Inline,,An Inline Function is As Fast As a Macro}).
-@end ifset
-@ifclear USING
-(@pxref{Inline,,An Inline Function is As Fast As a Macro,gcc.texi,Using GCC}).
-@end ifclear
+(@pxref{Inline,,An Inline Function is As Fast As a Macro,gcc,Using the
+GNU Compiler Collection (GCC)}).
Here is a list of all the passes of the compiler and their source files.
Also included is a description of where debugging dumps can be requested
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 30c94ee..7f55142 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -8283,13 +8283,7 @@ for a true value, but does not guarantee the value of any other bits,
but we do not know of any machine that has such an instruction. If you
are trying to port GCC to such a machine, include an instruction to
perform a logical-and of the result with 1 in the pattern for the
-comparison operators and let us know
-@ifset USING
-(@pxref{Bug Reporting,,How to Report Bugs}).
-@end ifset
-@ifclear USING
-(@pxref{Bug Reporting,,How to Report Bugs,gcc.info,Using GCC}).
-@end ifclear
+comparison operators and let us know at @email{gcc@@gcc.gnu.org}.
Often, a machine will have multiple instructions that obtain a value
from a comparison (or the condition codes). Here are rules to guide the
diff --git a/gcc/doc/trouble.texi b/gcc/doc/trouble.texi
index 6c792e8..0b61c44 100644
--- a/gcc/doc/trouble.texi
+++ b/gcc/doc/trouble.texi
@@ -87,13 +87,8 @@ it is the only way to win.)
It is now possible to overcome these problems by defining macros such
as @code{REAL_VALUE_TYPE}. But doing so is a substantial amount of
work for each target machine.
-@ifset INTERNALS
-@xref{Cross-compilation}.
-@end ifset
-@ifclear INTERNALS
-@xref{Cross-compilation,,Cross Compilation and Floating Point Format,
-gcc.info, Using and Porting GCC}.
-@end ifclear
+@xref{Cross-compilation,,Cross Compilation and Floating Point,
+gccint, GNU Compiler Collection (GCC) Internals}.
@item
At present, the program @file{mips-tfile} which adds debug