This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[3.3.1 Doc patch] Backport doco changes from Mainline


On July 14th, Joseph S. Myers said:

(Also, it would be worth comparing the branch and mainline manuals to see if there are any typo or similar fixes only on mainline to backport.)

Here is that patch for all the *.texi except for tm.texi, since I had a question regarding that file which happens to correspond to about ~7500 diff lines:


Should the conversion to use "@defmac", "@deftypefn", and "@deftypevar" be included?

Kelley Cook

2003-07-03  Kelley Cook  <kelleycook@wideopenwest.com>

	* c-tree.texi: Backport changes from mainline.
	* c-tree.texi: Ditto.
	* collect2.texi: Ditto.
	* cpp.texi: Ditto.
	* cppopts.texi: Ditto.
	* extend.texi: Ditto.
	* fragments.texi: Ditto.
	* headerdirs.texi: Ditto.
	* install.texi: Ditto.
	* invoke.texi: Ditto.
	* md.texi: Ditto.
	* portability.texi: Ditto.
	* rtl.texi: Ditto.
	* sourcebuild.texi: Ditto.
	* trouble.texi: Ditto.

diff -urp gcc-3.3-20030714/gcc/doc/c-tree.texi gcc-snapshot/gcc/doc/c-tree.texi
--- gcc-3.3-20030714/gcc/doc/c-tree.texi	2002-12-17 14:59:19.000000000 -0500
+++ gcc-snapshot/gcc/doc/c-tree.texi	2003-05-31 09:23:30.000000000 -0400
@@ -1,4 +1,4 @@
-@c Copyright (c) 1999, 2000, 2001 Free Software Foundation, Inc.
+@c Copyright (c) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 @c Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
@@ -645,7 +645,7 @@ the unqualified name of the name of the 
 The name of the global namespace is @samp{::}, even though in C++ the
 global namespace is unnamed.  However, you should use comparison with
 @code{global_namespace}, rather than @code{DECL_NAME} to determine
-whether or not a namespaces is the global one.  An unnamed namespace
+whether or not a namespace is the global one.  An unnamed namespace
 will have a @code{DECL_NAME} equal to @code{anonymous_namespace_name}.
 Within a single translation unit, all unnamed namespaces will have the
 same name.
diff -urp gcc-3.3-20030714/gcc/doc/collect2.texi gcc-snapshot/gcc/doc/collect2.texi
--- gcc-3.3-20030714/gcc/doc/collect2.texi	2003-01-24 10:52:51.000000000 -0500
+++ gcc-snapshot/gcc/doc/collect2.texi	2003-05-18 11:52:24.000000000 -0400
@@ -5,7 +5,7 @@
 @node Collect2
 @chapter @code{collect2}
 
-GNU CC uses a utility called @code{collect2} on nearly all systems to arrange
+GCC uses a utility called @code{collect2} on nearly all systems to arrange
 to call various initialization functions at start time.
 
 The program @code{collect2} works by linking the program once and
diff -urp gcc-3.3-20030714/gcc/doc/cpp.texi gcc-snapshot/gcc/doc/cpp.texi
--- gcc-3.3-20030714/gcc/doc/cpp.texi	2003-01-26 15:56:54.000000000 -0500
+++ gcc-snapshot/gcc/doc/cpp.texi	2003-07-04 20:23:53.000000000 -0400
@@ -377,8 +377,9 @@ comment.
 @end group
 @end example
 
-Comments are not recognized within string literals.  @t{@w{"/* blah
-*/"}} is the string constant @samp{@w{/* blah */}}, not an empty string.
+Comments are not recognized within string literals.  
+@t{@w{"/* blah */"}} is the string constant @samp{@w{/* blah */}}, not
+an empty string.
 
 Line comments are not in the 1989 edition of the C standard, but they
 are recognized by GCC as an extension.  In C++ and in the 1999 edition
@@ -1731,7 +1732,7 @@ predefined macros, but you cannot undefi
 @subsection Standard Predefined Macros
 @cindex standard predefined macros.
 
-The standard predefined macros are specified by the C and/or C++
+The standard predefined macros are specified by the relevant
 language standards, so they are available with all compilers that
 implement those standards.  Older compilers may not provide all of
 them.  Their names all start with double underscores.
@@ -1850,6 +1851,15 @@ of the 1998 C++ standard will define thi
 GNU C++ compiler is not yet fully conforming, so it uses @code{1}
 instead.  We hope to complete our implementation in the near future.
 
+@item __OBJC__
+This macro is defined, with value 1, when the Objective-C compiler is in
+use.  You can use @code{__OBJC__} to test whether a header is compiled
+by a C compiler or a Objective-C compiler.
+
+@item __ASSEMBLER__
+This macro is defined with value 1 when preprocessing assembly
+language.
+
 @end table
 
 @node Common Predefined Macros
@@ -1911,11 +1921,6 @@ calculate a single number, then compare 
 @noindent
 Many people find this form easier to understand.
 
-@item __OBJC__
-This macro is defined, with value 1, when the Objective-C compiler is in
-use.  You can use @code{__OBJC__} to test whether a header is compiled
-by a C compiler or a Objective-C compiler.
-
 @item __GNUG__
 The GNU C++ compiler defines this.  Testing it is equivalent to
 testing @code{@w{(__GNUC__ && __cplusplus)}}.
@@ -1940,6 +1945,9 @@ incremented on every @samp{#include} dir
 end of every included file.  It starts out at 0, it's value within the
 base file specified on the command line.
 
+@item __ELF__
+This macro is defined if the target uses the ELF object format.
+
 @item __VERSION__
 This macro expands to a string constant which describes the version of
 the compiler in use.  You should not rely on its contents having any
@@ -2031,6 +2039,12 @@ This macro is defined, with value 1, if 
 (as in @option{-fnext-runtime}) is in use for Objective-C.  If the GNU
 runtime is used, this macro is not defined, so that you can use this
 macro to determine which runtime (NeXT or GNU) is being used.
+
+@item __LP64__
+@item _LP64
+These macros are defined, with value 1, if (and only if) the compilation
+is for a target where @code{long int} and pointer both use 64-bits and
+@code{int} uses 32-bit.
 @end table
 
 @node System-specific Predefined Macros
diff -urp gcc-3.3-20030714/gcc/doc/cppopts.texi gcc-snapshot/gcc/doc/cppopts.texi
--- gcc-3.3-20030714/gcc/doc/cppopts.texi	2003-03-16 09:13:10.000000000 -0500
+++ gcc-snapshot/gcc/doc/cppopts.texi	2003-07-04 20:23:53.000000000 -0400
@@ -40,8 +40,11 @@ provided with a @option{-D} option.
 
 @item -undef
 @opindex undef
-Do not predefine any system-specific macros.  The common predefined
-macros remain defined.
+Do not predefine any system-specific or GCC-specific macros.  The
+standard predefined macros remain defined.
+@ifset cppmanual
+@xref{Standard Predefined Macros}.
+@end ifset
 
 @item -I @var{dir}
 @opindex I
@@ -562,13 +565,6 @@ the source line.
 
 The @option{-CC} option is generally used to support lint comments.
 
-@item -gcc
-@opindex gcc
-Define the macros @sc{__gnuc__}, @sc{__gnuc_minor__} and
-@sc{__gnuc_patchlevel__}.  These are defined automatically when you use
-@command{gcc -E}; you can turn them off in that case with
-@option{-no-gcc}.
-
 @item -traditional-cpp
 @opindex traditional-cpp
 Try to imitate the behavior of old-fashioned C preprocessors, as
diff -urp gcc-3.3-20030714/gcc/doc/extend.texi gcc-snapshot/gcc/doc/extend.texi
--- gcc-3.3-20030714/gcc/doc/extend.texi	2003-07-11 18:13:42.000000000 -0400
+++ gcc-snapshot/gcc/doc/extend.texi	2003-07-04 20:23:53.000000000 -0400
@@ -1,5 +1,5 @@
-@c Copyright (C) 1988,1989,1992,1993,1994,1996,1998,1999,2000,2001,2002,
-@c 2003 Free Software Foundation, Inc.
+@c Copyright (C) 1988,1989,1992,1993,1994,1996,1998,1999,2000,2001,2002, 2003
+@c Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
@@ -1371,7 +1371,8 @@ struct empty @{
 @end example
 
 The structure will have size zero.  In C++, empty structures are part
-of the language, and the language standard says they have size 1.
+of the language.  G++ treats empty structures as if they had a single
+member of type @code{char}.
 
 @node Variable Length
 @section Arrays of Variable Length
@@ -1527,8 +1528,8 @@ argument, these arguments are not macro 
 
 Recently, the preprocessor has relaxed its treatment of escaped
 newlines.  Previously, the newline had to immediately follow a
-backslash.  The current implementation allows whitespace in the form of
-spaces, horizontal and vertical tabs, and form feeds between the
+backslash.  The current implementation allows whitespace in the form
+of spaces, horizontal and vertical tabs, and form feeds between the
 backslash and the subsequent newline.  The preprocessor issues a
 warning, but treats it as a valid escaped newline and combines the two
 lines to form a single logical line.  This works within comments and
@@ -2352,15 +2353,6 @@ since it is known that the calling funct
 
 Not all ELF targets support this attribute.
 
-@item tls_model ("@var{tls_model}")
-@cindex @code{tls_model} attribute
-The @code{tls_model} attribute sets thread-local storage model
-(@pxref{Thread-Local}) of a particular @code{__thread} variable,
-overriding @code{-ftls-model=} command line switch on a per-variable
-basis.
-The @var{tls_model} argument should be one of @code{global-dynamic},
-@code{local-dynamic}, @code{initial-exec} or @code{local-exec}.
-
 @item regparm (@var{number})
 @cindex @code{regparm} attribute
 @cindex functions that are passed arguments in registers on the 386
@@ -2386,8 +2378,6 @@ On the Intel 386, the @code{stdcall} att
 assume that the called function will pop off the stack space used to
 pass arguments, unless it takes a variable number of arguments.
 
-The PowerPC compiler for Windows NT currently ignores the @code{stdcall}
-attribute.
 
 @item cdecl
 @cindex functions that do pop the argument stack on the 386
@@ -2397,9 +2387,6 @@ assume that the calling function will po
 pass arguments.  This is
 useful to override the effects of the @option{-mrtd} switch.
 
-The PowerPC compiler for Windows NT currently ignores the @code{cdecl}
-attribute.
-
 @item longcall/shortcall
 @cindex functions called via pointer on the RS/6000 and PowerPC
 On the RS/6000 and PowerPC, the @code{longcall} attribute causes the
@@ -2423,17 +2410,6 @@ contents of that register.   The @code{s
 the offset to the function from the call site into the @samp{BL}
 instruction directly.
 
-@item exception (@var{except-func} [, @var{except-arg}])
-@cindex functions which specify exception handling on PowerPC Windows NT
-On the PowerPC running Windows NT, the @code{exception} attribute causes
-the compiler to modify the structured exception table entry it emits for
-the declared function.  The string or identifier @var{except-func} is
-placed in the third entry of the structured exception table.  It
-represents a function, which is called by the exception handling
-mechanism if an exception occurs.  If it was specified, the string or
-identifier @var{except-arg} is placed in the fourth entry of the
-structured exception table.
-
 @item function_vector
 @cindex calling functions through the function vector on the H8/300 processors
 Use this attribute on the H8/300 and H8/300H to indicate that the specified
@@ -2575,14 +2551,16 @@ combining @code{_imp__} and the function
 implies @code{extern} storage.
 
 Currently, the attribute is ignored for inlined functions. If the
-attribute is applied to a symbol @emph{definition}, an error is emitted.
-If a symbol previousy declared @code{dllimport} is later defined, the
+attribute is applied to a symbol @emph{definition}, an error is reported.
+If a symbol previously declared @code{dllimport} is later defined, the
 attribute is ignored in subsequent references, and a warning is emitted.
 The attribute is also overriden by a subsequent declaration as
 @code{dllexport}. 
 
 When applied to C++ classes, the attribute marks non-inlined
-member functions and static data members as imports.
+member functions and static data members as imports.  However, the
+attribute is ignored for virtual methods to allow creation of vtables
+using thunks.
 
 On cygwin, mingw and arm-pe targets, @code{__declspec(dllimport)} is
 recognized as a synonym for @code{__attribute__ ((dllimport))} for
@@ -2609,11 +2587,11 @@ formed by combining @code{_imp__} and th
 
 Currently, the @code{dllexport}attribute is ignored for inlined
 functions, but export can be forced by using the
-@option{-fkeep-inline-functions} flag. The attribute is also ignored
-for undefined symbols.
+@option{-fkeep-inline-functions} flag. The attribute is also ignored for
+undefined symbols.
 
-When applied to C++ classes. the attribute marks non-inlined
-member functions and static data members as exports.  Static consts
+When applied to C++ classes. the attribute marks defined non-inlined
+member functions and static data members as exports. Static consts
 initialized in-class are not marked unless they are also defined
 out-of-class.
 
@@ -2622,7 +2600,7 @@ recognized as a synonym for @code{__attr
 compatibility with other Windows compilers.
 
 Alternative methods for including the symbol in the dll's export table
-are to use a .def file with an @code{EXPORTS} section, or with GNU ld,
+are to use a .def file with an @code{EXPORTS} section or, with GNU ld,
 using the @option{--export-all} linker flag.
 
 @end table
@@ -3022,15 +3000,13 @@ It is an error to ask for the alignment 
 
 The keyword @code{__attribute__} allows you to specify special
 attributes of variables or structure fields.  This keyword is followed
-by an attribute specification inside double parentheses.  Ten
-attributes are currently defined for variables: @code{aligned},
-@code{mode}, @code{nocommon}, @code{packed}, @code{section},
-@code{transparent_union}, @code{unused}, @code{deprecated},
-@code{vector_size}, and @code{weak}.  Some other attributes are defined
-for variables on particular target systems.  Other attributes are
-available for functions (@pxref{Function Attributes}) and for types
-(@pxref{Type Attributes}).  Other front ends might define more
-attributes (@pxref{C++ Extensions,,Extensions to the C++ Language}).
+by an attribute specification inside double parentheses.  Some
+attributes are currently defined generically for variables.
+Other attributes are defined for variables on particular target
+systems.  Other attributes are available for functions
+(@pxref{Function Attributes}) and for types (@pxref{Type Attributes}).
+Other front ends might define more attributes
+(@pxref{C++ Extensions,,Extensions to the C++ Language}).
 
 You may also specify attributes with @samp{__} preceding and following
 each keyword.  This allows you to use them in header files without
@@ -3114,6 +3090,40 @@ does not allow the exception to be caugh
 It is undefined what happens if @var{cleanup_function} does not
 return normally.
 
+@item common
+@itemx nocommon
+@cindex @code{common} attribute
+@cindex @code{nocommon} attribute
+@opindex fcommon
+@opindex fno-common
+The @code{common} attribute requests GCC to place a variable in
+``common'' storage.  The @code{nocommon} attribute requests the
+opposite -- to allocate space for it directly.
+
+These attributes override the default chosen by the 
+@option{-fno-common} and @option{-fcommon} flags respectively.
+
+@item deprecated
+@cindex @code{deprecated} attribute
+The @code{deprecated} attribute results in a warning if the variable
+is used anywhere in the source file.  This is useful when identifying
+variables that are expected to be removed in a future version of a
+program.  The warning also includes the location of the declaration
+of the deprecated variable, to enable users to easily find further
+information about why the variable is deprecated, or what they should
+do instead.  Note that the warnings only occurs for uses:
+
+@smallexample
+extern int old_var __attribute__ ((deprecated));
+extern int old_var;
+int new_fn () @{ return old_var; @}
+@end smallexample
+
+results in a warning on line 3 but not line 2.
+
+The @code{deprecated} attribute can also be used for functions and
+types (@pxref{Function Attributes}, @pxref{Type Attributes}.)
+
 @item mode (@var{mode})
 @cindex @code{mode} attribute
 This attribute specifies the data type for the declaration---whichever
@@ -3125,18 +3135,6 @@ indicate the mode corresponding to a one
 @samp{__word__} for the mode of a one-word integer, and @samp{pointer}
 or @samp{__pointer__} for the mode used to represent pointers.
 
-@item nocommon
-@cindex @code{nocommon} attribute
-@opindex fno-common
-This attribute specifies requests GCC not to place a variable
-``common'' but instead to allocate space for it directly.  If you
-specify the @option{-fno-common} flag, GCC will do this for all
-variables.
-
-Specifying the @code{nocommon} attribute for a variable provides an
-initialization of zeros.  A variable may only be initialized in one
-source file.
-
 @item packed
 @cindex @code{packed} attribute
 The @code{packed} attribute specifies that a variable or structure field
@@ -3205,7 +3203,7 @@ section, consider using the facilities o
 
 @item shared
 @cindex @code{shared} variable attribute
-On Windows NT, in addition to putting variable definitions in a named
+On Windows, in addition to putting variable definitions in a named
 section, the section can also be shared among all running copies of an
 executable or DLL@.  For example, this small program defines shared data
 by putting it in a named section @code{shared} and marking the section
@@ -3228,7 +3226,18 @@ You may only use the @code{shared} attri
 attribute with a fully initialized global definition because of the way
 linkers work.  See @code{section} attribute for more information.
 
-The @code{shared} attribute is only available on Windows NT@.
+The @code{shared} attribute is only available on Windows@.
+
+@item tls_model ("@var{tls_model}")
+@cindex @code{tls_model} attribute
+The @code{tls_model} attribute sets thread-local storage model
+(@pxref{Thread-Local}) of a particular @code{__thread} variable,
+overriding @code{-ftls-model=} command line switch on a per-variable
+basis.
+The @var{tls_model} argument should be one of @code{global-dynamic},
+@code{local-dynamic}, @code{initial-exec} or @code{local-exec}.
+
+Not all targets support this attribute.
 
 @item transparent_union
 This attribute, attached to a function parameter which is a union, means
@@ -3243,26 +3252,6 @@ This attribute, attached to a variable, 
 to be possibly unused.  GCC will not produce a warning for this
 variable.
 
-@item deprecated
-The @code{deprecated} attribute results in a warning if the variable
-is used anywhere in the source file.  This is useful when identifying
-variables that are expected to be removed in a future version of a
-program.  The warning also includes the location of the declaration
-of the deprecated variable, to enable users to easily find further
-information about why the variable is deprecated, or what they should
-do instead.  Note that the warnings only occurs for uses:
-
-@smallexample
-extern int old_var __attribute__ ((deprecated));
-extern int old_var;
-int new_fn () @{ return old_var; @}
-@end smallexample
-
-results in a warning on line 3 but not line 2.
-
-The @code{deprecated} attribute can also be used for functions and
-types (@pxref{Function Attributes}, @pxref{Type Attributes}.)
-
 @item vector_size (@var{bytes})
 This attribute specifies the vector size for the variable, measured in
 bytes.  For example, the declaration:
@@ -5745,9 +5734,7 @@ vector unsigned int vec_mulo (vector uns
 vector signed int vec_mulo (vector signed short, vector signed short);
 
 vector float vec_nmsub (vector float, vector float, vector float);
-@end smallexample
 
-@smallexample
 vector float vec_nor (vector float, vector float);
 vector signed int vec_nor (vector signed int, vector signed int);
 vector unsigned int vec_nor (vector unsigned int, vector unsigned int);
@@ -6313,9 +6300,7 @@ vector signed int vec_any_eq (vector sig
 
 vector signed int vec_any_eq (vector signed char, vector signed char);
 vector signed int vec_any_eq (vector unsigned char, vector signed char);
-@end smallexample
 
-@smallexample
 vector signed int vec_any_eq (vector unsigned char,
                               vector unsigned char);
 vector signed int vec_any_eq (vector signed short,
@@ -6768,6 +6753,7 @@ The following are a set of changes to IS
 that document the exact semantics of the language extension.
 
 @itemize @bullet
+@item
 @b{[intro.execution]}
 
 New text after paragraph 4
diff -urp gcc-3.3-20030714/gcc/doc/fragments.texi gcc-snapshot/gcc/doc/fragments.texi
--- gcc-3.3-20030714/gcc/doc/fragments.texi	2002-01-23 12:30:28.000000000 -0500
+++ gcc-snapshot/gcc/doc/fragments.texi	2003-04-13 12:59:44.000000000 -0400
@@ -1,5 +1,5 @@
 @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
@@ -134,12 +134,12 @@ specified, there are combinations that s
 case, set @code{MULTILIB_EXCEPTIONS} to be all of the switch exceptions
 in shell case syntax that should not be built.
 
-For example, in the PowerPC embedded ABI support, it is not desirable
-to build libraries compiled with the @option{-mcall-aix} option
-and either of the @option{-fleading-underscore} or @option{-mlittle} options
-at the same time.  Therefore @code{MULTILIB_EXCEPTIONS} is set to
+For example the ARM processor cannot execute both hardware floating
+point instructions and the reduced size THUMB instructions at the same
+time, so there is no need to build libraries with both of these
+options enabled.  Therefore @code{MULTILIB_EXCEPTIONS} is set to:
 @smallexample
-*mcall-aix/*fleading-underscore* *mlittle/*mcall-aix*
+*mthumb/*mhard-float*
 @end smallexample
 
 @findex MULTILIB_EXTRA_OPTS
@@ -147,7 +147,24 @@ at the same time.  Therefore @code{MULTI
 Sometimes it is desirable that when building multiple versions of
 @file{libgcc.a} certain options should always be passed on to the
 compiler.  In that case, set @code{MULTILIB_EXTRA_OPTS} to be the list
-of options to be used for all builds.
+of options to be used for all builds.  If you set this, you should
+probably set @code{CRTSTUFF_T_CFLAGS} to a dash followed by it.
+
+@findex SPECS
+@item SPECS
+Unfortunately, setting @code{MULTILIB_EXTRA_OPTS} is not enough, since
+it does not affect the build of target libraries, at least not the
+build of the default multilib.  One possible work-around is to use
+@code{DRIVER_SELF_SPECS} to bring options from the @file{specs} file
+as if they had been passed in the compiler driver command line.
+However, you don't want to be adding these options after the toolchain
+is installed, so you can instead tweak the @file{specs} file that will
+be used during the toolchain build, while you still install the
+original, built-in @file{specs}.  The trick is to set @code{SPECS} to
+some other filename (say @file{specs.install}), that will then be
+created out of the built-in specs, and introduce a @file{Makefile}
+rule to generate the @file{specs} file that's going to be used at
+build time out of your @file{specs.install}.
 @end table
 
 @node Host Fragment
diff -urp gcc-3.3-20030714/gcc/doc/headerdirs.texi gcc-snapshot/gcc/doc/headerdirs.texi
--- gcc-3.3-20030714/gcc/doc/headerdirs.texi	2003-01-24 10:52:54.000000000 -0500
+++ gcc-snapshot/gcc/doc/headerdirs.texi	2003-05-18 11:52:24.000000000 -0400
@@ -6,28 +6,27 @@
 @chapter Standard Header File Directories
 
 @code{GCC_INCLUDE_DIR} means the same thing for native and cross.  It is
-where GNU CC stores its private include files, and also where GNU CC
-stores the fixed include files.  A cross compiled GNU CC runs
+where GCC stores its private include files, and also where GCC
+stores the fixed include files.  A cross compiled GCC runs
 @code{fixincludes} on the header files in @file{$(tooldir)/include}.
 (If the cross compilation header files need to be fixed, they must be
-installed before GNU CC is built.  If the cross compilation header files
-are already suitable for ISO C and GNU CC, nothing special need be
-done).
+installed before GCC is built.  If the cross compilation header files
+are already suitable for GCC, nothing special need be done).
 
 @code{GPLUSPLUS_INCLUDE_DIR} means the same thing for native and cross.  It
 is where @command{g++} looks first for header files.  The C++ library
 installs only target independent header files in that directory.
 
-@code{LOCAL_INCLUDE_DIR} is used only by native compilers.  GNU CC
+@code{LOCAL_INCLUDE_DIR} is used only by native compilers.  GCC
 doesn't install anything there.  It is normally
 @file{/usr/local/include}.  This is where local additions to a packaged
 system should place header files.
 
-@code{CROSS_INCLUDE_DIR} is used only by cross compilers.  GNU CC
+@code{CROSS_INCLUDE_DIR} is used only by cross compilers.  GCC
 doesn't install anything there.
 
 @code{TOOL_INCLUDE_DIR} is used for both native and cross compilers.  It
-is the place for other packages to install header files that GNU CC will
+is the place for other packages to install header files that GCC will
 use.  For a cross-compiler, this is the equivalent of
 @file{/usr/include}.  When you build a cross-compiler,
 @code{fixincludes} processes any header files in this directory.
diff -urp gcc-3.3-20030714/gcc/doc/install.texi gcc-snapshot/gcc/doc/install.texi
--- gcc-3.3-20030714/gcc/doc/install.texi	2003-07-11 19:08:47.000000000 -0400
+++ gcc-snapshot/gcc/doc/install.texi	2003-07-14 15:14:52.000000000 -0400
@@ -394,8 +394,7 @@ data files referenced by GCC@.  The defa
 @item --mandir=@var{dirname}
 Specify the installation directory for manual pages.  The default is
 @file{@var{prefix}/man}.  (Note that the manual pages are only extracts from
-the full GCC manuals, which are provided in Texinfo format.  The
-@command{g77} manpage is unmaintained and may be out of date; the others
+the full GCC manuals, which are provided in Texinfo format.  The manpages
 are derived by an automatic conversion process from parts of the full
 manual.)
 
@@ -1709,8 +1708,6 @@ GNU Compiler Collection on your machine.
 @item
 @uref{#powerpcle-*-eabi,,powerpcle-*-eabi}
 @item
-@uref{#powerpcle-*-winnt,,powerpcle-*-winnt, powerpcle-*-pe}
-@item
 @uref{#s390-*-linux*,,s390-*-linux*}
 @item
 @uref{#s390x-*-linux*,,s390x-*-linux*}
@@ -2048,7 +2045,7 @@ The version of binutils installed in @fi
 otherwise specified in any per-architecture notes.  However, binutils
 2.12.1 or greater is known to improve overall testsuite results.
 
-FreeBSD 1 is no longer supported in GCC 3.2.
+FreeBSD 1 is no longer supported.
 
 For FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All
 configuration support and files as shipped with GCC 2.95 are still in
@@ -3059,12 +3056,6 @@ Embedded PowerPC system in little endian
 @html
 <hr />
 @end html
-@heading @anchor{powerpcle-*-winnt}powerpcle-*-winnt, powerpcle-*-pe
-PowerPC system in little endian mode running Windows NT@.
-
-@html
-<hr />
-@end html
 @heading @anchor{s390-*-linux*}s390-*-linux*
 S/390 system running Linux for S/390@.
 
diff -urp gcc-3.3-20030714/gcc/doc/invoke.texi gcc-snapshot/gcc/doc/invoke.texi
--- gcc-3.3-20030714/gcc/doc/invoke.texi	2003-07-10 13:05:16.000000000 -0400
+++ gcc-snapshot/gcc/doc/invoke.texi	2003-07-14 15:15:24.000000000 -0400
@@ -2386,7 +2386,7 @@ For example, an expression such as @samp
 but @samp{x[(void)i,j]} will not.
 
 @item
-An unsigned value is compared against zero with @samp{<} or @samp{<=}.
+An unsigned value is compared against zero with @samp{<} or @samp{>=}.
 
 @item
 A comparison like @samp{x<=y<=z} appears; this is equivalent to
@@ -3447,7 +3447,7 @@ optimizations designed to reduce code si
 
 @option{-Os} disables the following optimization flags:
 @gccoptlist{-falign-functions  -falign-jumps  -falign-loops @gol
--falign-labels  -freorder-blocks -fprefetch-loop-arrays}
+-falign-labels  -freorder-blocks  -fprefetch-loop-arrays}
 
 If you use multiple @option{-O} options, with or without level numbers,
 the last such option is the one that is effective.
@@ -3559,7 +3559,7 @@ specified individually by using @option{
 The @option{-finline-limit=@var{n}} option sets some of these parameters 
 as follows:
 
- @table @gcctabopt
+@table @gcctabopt
  @item max-inline-insns
   is set to @var{n}.
  @item max-inline-insns-single
@@ -3570,7 +3570,7 @@ as follows:
   is set to 130 or @var{n}/4, whichever is smaller.
  @item max-inline-insns-rtl
   is set to @var{n}.
- @end table
+@end table
 
 Using @option{-finline-limit=600} thus results in the default settings
 for these parameters.  See below for a documentation of the individual
@@ -4259,7 +4259,6 @@ using the ELF object format and SPARC pr
 linkers with such optimizations.  AIX may have these optimizations in
 the future.
 
-
 Only use these options when there are significant benefits from doing
 so.  When you specify these options, the assembler and linker will
 create larger object and executable files and will also be slower.
@@ -5016,7 +5015,7 @@ for each @samp{%g.s} and another for eac
 simply substituted with a file name chosen for the previous @samp{%u},
 without regard to any appended suffix.
 
-@item %j@var{SUFFIX}
+@item %j@var{suffix}
 Substitutes the name of the @code{HOST_BIT_BUCKET}, if any, and if it is
 writable, and if save-temps is off; otherwise, substitute the name
 of a temporary file, just like @samp{%u}.  This temporary file is not
@@ -7222,7 +7221,7 @@ This option sets flags for both the prep
 @cindex Darwin options
 
 These options are defined for all architectures running the Darwin operating
-system.  These are useful for compatibility with other Mac OS compilers.
+system.  They are useful for compatibility with other Mac OS compilers.
 
 @table @gcctabopt
 @item -all_load    
@@ -7961,22 +7960,33 @@ the published application binary interfa
 and will not be binary compatible with structures in code compiled
 without that switch.
 
+@item -m96bit-long-double
 @item -m128bit-long-double
+@opindex m96bit-long-double
 @opindex m128bit-long-double
-Control the size of @code{long double} type. i386 application binary interface
-specify the size to be 12 bytes, while modern architectures (Pentium and newer)
-prefer @code{long double} aligned to 8 or 16 byte boundary.  This is
-impossible to reach with 12 byte long doubles in the array accesses.
+These switches control the size of @code{long double} type. The i386 
+application binary interface specifies the size to be 96 bits, 
+so @option{-m96bit-long-double} is the default in 32 bit mode.
+
+Modern architectures (Pentium and newer) would prefer @code{long double}
+to be aligned to an 8 or 16 byte boundary.  In arrays or structures 
+conforming to the ABI, this would not be possible.  So specifying a 
+@option{-m128bit-long-double} will align @code{long double}
+to a 16 byte boundary by padding the @code{long double} with an additional
+32 bit zero. 
 
-@strong{Warning:} if you use the @option{-m128bit-long-double} switch, the
+In the x86-64 compiler, @option{-m128bit-long-double} is the default choice as
+its ABI specifies that @code{long double} is to be aligned on 16 byte boundary.
+ 
+Notice that neither of these options enable any extra precision over the x87
+standard of 80 bits for a @code{long double}. 
+
+@strong{Warning:} if you override the default value for your target ABI, the
 structures and arrays containing @code{long double} will change their size as
 well as function calling convention for function taking @code{long double}
-will be modified.
+will be modified.  Hence they will not be binary compatible with arrays or
+structures in code compiled without that switch.
 
-@item -m96bit-long-double
-@opindex m96bit-long-double
-Set the size of @code{long double} to 96 bits as required by the i386
-application binary interface.  This is the default.
 
 @item -msvr3-shlib
 @itemx -mno-svr3-shlib
diff -urp gcc-3.3-20030714/gcc/doc/md.texi gcc-snapshot/gcc/doc/md.texi
--- gcc-3.3-20030714/gcc/doc/md.texi	2003-06-23 12:02:42.000000000 -0400
+++ gcc-snapshot/gcc/doc/md.texi	2003-07-14 15:14:36.000000000 -0400
@@ -1,5 +1,5 @@
-@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1996, 1998, 1999, 2000, 2001, 2002
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1996, 1998, 1999, 2000, 2001,
+@c 2002, 2003 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
@@ -5514,8 +5514,8 @@ in such processors and suggestions for t
 @cindex automaton based pipeline description
 
 This section describes constructions of the automaton based processor
-pipeline description.  The order of all mentioned below constructions
-in the machine description file is not important.
+pipeline description.  The order of constructions within the machine
+description file is not important.
 
 @findex define_automaton
 @cindex pipeline hazard recognizer
@@ -5523,7 +5523,7 @@ The following optional construction desc
 generated and used for the pipeline hazards recognition.  Sometimes
 the generated finite state automaton used by the pipeline hazard
 recognizer is large.  If we use more than one automaton and bind functional
-units to the automata, the summary size of the automata usually is
+units to the automata, the total size of the automata is usually 
 less than the size of the single automaton.  If there is no one such
 construction, only one finite state automaton is generated.
 
@@ -5533,12 +5533,12 @@ construction, only one finite state auto
 
 @var{automata-names} is a string giving names of the automata.  The
 names are separated by commas.  All the automata should have unique names.
-The automaton name is used in construction @code{define_cpu_unit} and
+The automaton name is used in the constructions @code{define_cpu_unit} and
 @code{define_query_cpu_unit}.
 
 @findex define_cpu_unit
 @cindex processor functional units
-Each processor functional unit used in description of instruction
+Each processor functional unit used in the description of instruction
 reservations should be described by the following construction.
 
 @smallexample
@@ -5599,7 +5599,7 @@ is negative, the cost is considered to b
 change the default costs for any description by using the target hook
 @code{TARGET_SCHED_ADJUST_COST} (@pxref{Scheduling}).
 
-@var{insn-names} is a string giving the internal name of the insn.  The
+@var{insn-name} is a string giving the internal name of the insn.  The
 internal names are used in constructions @code{define_bypass} and in
 the automaton description file generated for debugging.  The internal
 name has nothing in common with the names in @code{define_insn}.  It is a
@@ -5685,7 +5685,7 @@ the common part by the following constru
 @var{reservation-name} is a string giving name of @var{regexp}.
 Functional unit names and reservation names are in the same name
 space.  So the reservation names should be different from the
-functional unit names and can not be reserved name @samp{nothing}.
+functional unit names and can not be the reserved name @samp{nothing}.
 
 @findex define_bypass
 @cindex instruction latency time
@@ -5772,8 +5772,8 @@ code.  Currently there are the following
 @itemize @bullet
 @item
 @dfn{no-minimization} makes no minimization of the automaton.  This is
-only worth to do when we are going to query CPU functional unit
-reservations in an automaton state.
+only worth to do when we are debugging the description and need to
+look more accurately at reservations of states.
 
 @item
 @dfn{time} means printing additional time statistics about
diff -urp gcc-3.3-20030714/gcc/doc/portability.texi gcc-snapshot/gcc/doc/portability.texi
--- gcc-3.3-20030714/gcc/doc/portability.texi	2001-11-12 10:46:47.000000000 -0500
+++ gcc-snapshot/gcc/doc/portability.texi	2002-12-23 09:43:28.000000000 -0500
@@ -1,5 +1,5 @@
 @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
@@ -8,10 +8,11 @@
 @cindex portability
 @cindex GCC and portability
 
-The main goal of GCC was to make a good, fast compiler for machines in
-the class that the GNU system aims to run on: 32-bit machines that address
-8-bit bytes and have several general registers.  Elegance, theoretical
-power and simplicity are only secondary.
+GCC itself aims to be portable to any machine where @code{int} is at least
+a 32-bit type.  It aims to target machines with a flat (non-segmented) byte
+addressed data address space (the code address space can be separate).
+Target ABIs may have 8, 16, 32 or 64-bit @code{int} type. @code{char}
+can be wider than 8 bits.
 
 GCC gets most of the information about the target machine from a machine
 description which gives an algebraic formula for each of the machine's
diff -urp gcc-3.3-20030714/gcc/doc/rtl.texi gcc-snapshot/gcc/doc/rtl.texi
--- gcc-3.3-20030714/gcc/doc/rtl.texi	2003-06-22 11:11:33.000000000 -0400
+++ gcc-snapshot/gcc/doc/rtl.texi	2003-06-30 21:15:07.000000000 -0400
@@ -608,9 +608,22 @@ Stored in the @code{integrated} field an
 @cindex @code{concat} and @samp{/u}
 @cindex @code{unchanging}, in @code{reg} and @code{mem}
 @item RTX_UNCHANGING_P (@var{x})
-Nonzero in a @code{reg}, @code{mem}, or @code{concat} if the memory
-is set at most once,
-anywhere.  This does not mean that it is function invariant.
+Nonzero in a @code{reg}, @code{mem}, or @code{concat} if the register or
+memory is set at most once, anywhere.  This does not mean that it is
+function invariant.
+
+GCC uses this flag to determine whether two references conflict.  As
+implemented by @code{true_dependence} in @file{alias.c} for memory
+references, unchanging memory can't conflict with non-unchanging memory;
+a non-unchanging read can conflict with a non-unchanging write; an
+unchanging read can conflict with an unchanging write (since there may
+be a single store to this address to initialize it); and an unchanging
+store can conflict with a non-unchanging read.  This means we must make
+conservative assumptions when choosing the value of this flag for a
+memory reference to an object containing both unchanging and
+non-unchanging fields: we must set the flag when writing to the object
+and clear it when reading from the object.
+
 Stored in the @code{unchanging} field and printed as @samp{/u}.
 
 @findex SCHED_GROUP_P
@@ -687,13 +700,6 @@ Promoted variables are always either sig
 mode on every assignment.  Stored in the @code{in_struct} field and
 printed as @samp{/s}.
 
-@findex SYMBOL_REF_FLAG
-@cindex @code{symbol_ref} and @samp{/v}
-@cindex @code{volatil}, in @code{symbol_ref}
-@item SYMBOL_REF_FLAG (@var{x})
-In a @code{symbol_ref}, this is used as a flag for machine-specific purposes.
-Stored in the @code{volatil} field and printed as @samp{/v}.
-
 @findex SYMBOL_REF_USED
 @cindex @code{used}, in @code{symbol_ref}
 @item SYMBOL_REF_USED (@var{x})
@@ -707,6 +713,17 @@ once.  Stored in the @code{used} field.
 @item SYMBOL_REF_WEAK (@var{x})
 In a @code{symbol_ref}, indicates that @var{x} has been declared weak.
 Stored in the @code{integrated} field and printed as @samp{/i}.
+
+@findex SYMBOL_REF_FLAG
+@cindex @code{symbol_ref} and @samp{/v}
+@cindex @code{volatil}, in @code{symbol_ref}
+@item SYMBOL_REF_FLAG (@var{x})
+In a @code{symbol_ref}, this is used as a flag for machine-specific purposes.
+Stored in the @code{volatil} field and printed as @samp{/v}.
+
+Most uses of @code{SYMBOL_REF_FLAG} are historic and may be subsumed
+by @code{SYMBOL_REF_FLAGS}.  Certainly use of @code{SYMBOL_REF_FLAGS}
+is mandatory if the target requires more than one bit of storage.
 @end table
 
 These are the fields to which the above macros refer:
@@ -2195,9 +2212,9 @@ the operands of these.
 @item (set @var{lval} @var{x})
 Represents the action of storing the value of @var{x} into the place
 represented by @var{lval}.  @var{lval} must be an expression
-representing a place that can be stored in: @code{reg} (or @code{subreg}
-or @code{strict_low_part}), @code{mem}, @code{pc}, @code{parallel}, or
-@code{cc0}.
+representing a place that can be stored in: @code{reg} (or @code{subreg},
+@code{strict_low_part} or @code{zero_extract}), @code{mem}, @code{pc},
+@code{parallel}, or @code{cc0}.
 
 If @var{lval} is a @code{reg}, @code{subreg} or @code{mem}, it has a
 machine mode; then @var{x} must be valid for that mode.
@@ -2210,10 +2227,10 @@ rest of the register receives an undefin
 the mode of the register, the rest of the register can be changed in
 an undefined way.
 
-If @var{lval} is a @code{strict_low_part} of a @code{subreg}, then the
-part of the register specified by the machine mode of the
-@code{subreg} is given the value @var{x} and the rest of the register
-is not changed.
+If @var{lval} is a @code{strict_low_part} or @code{zero_extract} 
+of a @code{subreg}, then the part of the register specified by the
+machine mode of the @code{subreg} is given the value @var{x} and
+the rest of the register is not changed.
 
 If @var{lval} is @code{(cc0)}, it has no machine mode, and @var{x} may
 be either a @code{compare} expression or a value that may have any mode.
diff -urp gcc-3.3-20030714/gcc/doc/sourcebuild.texi gcc-snapshot/gcc/doc/sourcebuild.texi
--- gcc-3.3-20030714/gcc/doc/sourcebuild.texi	2003-07-01 10:40:02.000000000 -0400
+++ gcc-snapshot/gcc/doc/sourcebuild.texi	2003-07-01 10:39:20.000000000 -0400
@@ -1,4 +1,4 @@
-@c Copyright (C) 2002 Free Software Foundation, Inc.
+@c Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
@@ -466,10 +466,9 @@ following are also necessary:
 
 @itemize @bullet
 @item
-At least one GNATS category for bugs in that front end and runtime
+At least one Bugzilla component for bugs in that front end and runtime
 libraries.  This category needs to be mentioned in
-@file{gcc/gccbug.in}, and in @file{gnats.html} on the GCC web site, as
-well as being added to the GNATS database.
+@file{gcc/gccbug.in}, as well as being added to the Bugzilla database.
 @item
 Normally, one or more maintainers of that front end listed in
 @file{MAINTAINERS}.
@@ -931,9 +930,9 @@ test cases and magic comments more.
 @node libgcj Tests
 @subsection The Java library test suites.
 
-Runtime tests are executed via @samp{make check} from the @samp{testsuite}
-directory of the libjava hierarchy in the build tree.  Additional runtime
-tests can be checked into this testsuite.
+Runtime tests are executed via @samp{make check} in the
+@file{@var{target}/libjava/testsuite} directory in the build
+tree.  Additional runtime tests can be checked into this testsuite.
 
 Regression testing of the core packages in libgcj is also covered by the
 Mauve test suite.  The @uref{http://sources.redhat.com/mauve/,,Mauve Project}
diff -urp gcc-3.3-20030714/gcc/doc/trouble.texi gcc-snapshot/gcc/doc/trouble.texi
--- gcc-3.3-20030714/gcc/doc/trouble.texi	2003-01-24 10:52:58.000000000 -0500
+++ gcc-snapshot/gcc/doc/trouble.texi	2003-02-07 18:12:03.000000000 -0500
@@ -993,7 +993,7 @@ inside @samp{func} in the example).
 
 g++ implements the ``intuitive'' algorithm for copy-assignment: assign all
 direct bases, then assign all members.  In that algorithm, the virtual
-base subobject can be encountered many times.  In the example, copying
+base subobject can be encountered more than once.  In the example, copying
 proceeds in the following order: @samp{val}, @samp{name} (via
 @code{strdup}), @samp{bval}, and @samp{name} again.
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]