OSDN Git Service

contrib:
[pf3gnuchains/gcc-fork.git] / gcc / doc / sourcebuild.texi
index 3162a02..7db3674 100644 (file)
@@ -1,4 +1,5 @@
-@c Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+@c Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation,
+@c Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
@@ -301,6 +302,9 @@ such as POSIX specify additional values to be defined in
 @file{gsyslimits.h} if it does not need fixing to work with GCC; if it
 needs fixing, @file{syslimits.h} is the fixed copy.
 
+GCC can also install @code{<tgmath.h>}.  It will do this when
+@file{config.gcc} sets @code{use_gcc_tgmath} to @code{yes}.
+
 @node Documentation
 @subsection Building Documentation
 
@@ -336,6 +340,7 @@ The section ``Funding Free Software''.
 @item gcc-common.texi
 Common definitions for manuals.
 @item gpl.texi
+@itemx gpl_v3.texi
 The GNU General Public License.
 @item texinfo.tex
 A copy of @file{texinfo.tex} known to work with the GCC manuals.
@@ -365,7 +370,7 @@ directory or in @file{doc/include}.  HTML manuals will be generated by
 @samp{makeinfo --html}, PostScript manuals by @command{texi2dvi}
 and @command{dvips}, and PDF manuals by @command{texi2pdf}.
 All Texinfo files that are parts of manuals must
-be checked into CVS, even if they are generated files, for the
+be checked into SVN, even if they are generated files, for the
 generation of online manuals to work.
 
 The installation manual, @file{doc/install.texi}, is also provided on
@@ -444,8 +449,6 @@ versions, the information is on the GCC web site.)
 @item README.Portability
 Information about portability issues when writing code in GCC@.  FIXME:
 why isn't this part of this manual or of the GCC Coding Conventions?
-@item SERVICE
-A pointer to the GNU Service Directory.
 @end table
 
 FIXME: document such files in subdirectories, at least @file{config},
@@ -501,7 +504,7 @@ Details of the directories of any runtime libraries in
 @file{gcc/doc/sourcebuild.texi}.
 @end itemize
 
-If the front end is added to the official GCC CVS repository, the
+If the front end is added to the official GCC source repository, the
 following are also necessary:
 
 @itemize @bullet
@@ -539,8 +542,6 @@ to list the tarballs and diffs for this front end.
 If this front end includes its own version files that include the
 current date, @file{maintainer-scripts/update_version} should be
 updated accordingly.
-@item
-@file{CVSROOT/modules} in the GCC CVS repository should be updated.
 @end itemize
 
 @menu
@@ -640,14 +641,6 @@ Users, standards, GNU Coding Standards}, for details of the standard
 targets.  For GCC, @code{maintainer-clean} should delete
 all generated files in the source directory that are not checked into
 CVS, but should not delete anything checked into CVS@.
-@item stage1
-@itemx stage2
-@itemx stage3
-@itemx stage4
-@itemx stageprofile
-@itemx stagefeedback
-Move to the stage directory files not included in @code{stagestuff} in
-@file{config-lang.in} or otherwise moved by the main @file{Makefile}.
 @end table
 
 @item lang.opt
@@ -707,9 +700,6 @@ languages.
 If defined, a space-separated list of compiler executables that will
 be run by the driver.  The names here will each end
 with @samp{\$(exeext)}.
-@item stagestuff
-If defined, a space-separated list of files that should be moved to
-the @file{stage@var{n}} directories in each stage of bootstrap.
 @item outputs
 If defined, a space-separated list of files that should be generated
 by @file{configure} substituting values in them.  This mechanism can
@@ -792,7 +782,7 @@ manual needs to be installed as info for this to work, or to be a
 chapter of this manual.
 @end itemize
 
-If the back end is added to the official GCC CVS repository, the
+If the back end is added to the official GCC source repository, the
 following are also necessary:
 
 @itemize @bullet
@@ -834,7 +824,7 @@ here; FIXME: document the others.
 @node Test Idioms
 @subsection Idioms Used in Testsuite Code
 
-In general C testcases have a trailing @file{-@var{n}.c}, starting
+In general, C testcases have a trailing @file{-@var{n}.c}, starting
 with @file{-1.c}, in case other testcases with similar names are added
 later.  If the test is a test of some well-defined feature, it should
 have a name referring to that feature such as
@@ -952,9 +942,9 @@ it is executed.  It is one of:
 @table @code
 @item preprocess
 Compile with @option{-E} to run only the preprocessor.
-@item assemble
-Compile with @option{-S} to produce an assembly code file.
 @item compile
+Compile with @option{-S} to produce an assembly code file.
+@item assemble
 Compile with @option{-c} to produce a relocatable object file.
 @item link
 Compile, assemble, and link to produce an executable file.
@@ -971,16 +961,33 @@ If the directive includes the optional @samp{@{ target @var{selector} @}}
 then the test is skipped unless the target system is included in the
 list of target triplets or matches the effective-target keyword.
 
-If the directive includes the optional @samp{@{ xfail @var{selector} @}}
-and the selector is met then the test is expected to fail.  For
-@code{dg-do run}, execution is expected to fail but compilation
-is expected to pass.
+If @samp{do-what-keyword} is @code{run} and the directive includes
+the optional @samp{@{ xfail @var{selector} @}} and the selector is met
+then the test is expected to fail.  The @code{xfail} clause is ignored
+for other values of @samp{do-what-keyword}; those tests can use
+directive @code{dg-xfail-if}.
 
 @item @{ dg-options @var{options} [@{ target @var{selector} @}] @}
 This DejaGnu directive provides a list of compiler options, to be used
 if the target system matches @var{selector}, that replace the default
 options used for this set of tests.
 
+@item @{ dg-add-options @var{feature} @dots{} @}
+Add any compiler options that are needed to access certain features.
+This directive does nothing on targets that enable the features by
+default, or that don't provide them at all.  It must come after
+all @code{dg-options} directives.
+
+The supported values of @var{feature} are:
+@table @code
+@item c99_runtime
+The target's C99 runtime (both headers and libraries).
+
+@item mips16_attribute
+@code{mips16} function attributes.  Only MIPS targets support this feature,
+and only then in certain modes.
+@end table
+
 @item @{ dg-skip-if @var{comment} @{ @var{selector} @} @{ @var{include-opts} @} @{ @var{exclude-opts} @} @}
 Skip the test if the test system is included in @var{selector} and if
 each of the options in @var{include-opts} is in the set of options with
@@ -998,14 +1005,16 @@ Expect the test to fail if the conditions (which are the same as for
 @item @{ dg-require-@var{support} args @}
 Skip the test if the target does not provide the required support;
 see @file{gcc-dg.exp} in the GCC testsuite for the actual directives.
-These directives must appear after any @code{dg-do} directive in the test.
+These directives must appear after any @code{dg-do} directive in the test
+and before any @code{dg-additional-sources} directive.
 They require at least one argument, which can be an empty string if the
 specific procedure does not examine the argument.
 
 @item @{ dg-require-effective-target @var{keyword} @}
 Skip the test if the test target, including current multilib flags,
 is not covered by the effective-target keyword.
-This directive must appear after any @code{dg-do} directive in the test.
+This directive must appear after any @code{dg-do} directive in the test
+and before any @code{dg-additional-sources} directive.
 
 @item  @{ dg-shouldfail @var{comment} @{ @var{selector} @} @{ @var{include-opts} @} @{ @var{exclude-opts} @} @}
 Expect the test executable to return a nonzero exit status if the
@@ -1027,6 +1036,12 @@ message is not matched by @var{regexp} then the check fails and
 @var{comment} is included in the @code{FAIL} message.  The check does
 not look for the string @samp{"warning"} unless it is part of @var{regexp}.
 
+@item @{ dg-message @var{regexp} [@var{comment} [@{ target/xfail @var{selector} @} [@var{line}] @}]] @}
+The line is expected to get a message other than an error or warning.
+If there is no message for that line or if the text of that message is
+not matched by @var{regexp} then the check fails and @var{comment} is
+included in the @code{FAIL} message.
+
 @item @{ dg-bogus @var{regexp} [@var{comment} [@{ target/xfail @var{selector} @} [@var{line}] @}]] @}
 This DejaGnu directive appears on a source line that should not get a
 message matching @var{regexp}, or else specifies the source line
@@ -1037,7 +1052,8 @@ targets.
 @item @{ dg-excess-errors @var{comment} [@{ target/xfail @var{selector} @}] @}
 This DejaGnu directive indicates that the test is expected to fail due
 to compiler messages that are not handled by @samp{dg-error},
-@samp{dg-warning} or @samp{dg-bogus}.
+@samp{dg-warning} or @samp{dg-bogus}.  For this directive @samp{xfail}
+has the same effect as @samp{target}.
 
 @item @{ dg-output @var{regexp} [@{ target/xfail @var{selector} @}] @}
 This DejaGnu directive compares @var{regexp} to the combined output
@@ -1130,6 +1146,12 @@ suffix @var{suffix}.
 Passes if @var{regex} does not match demangled text in the dump file with
 suffix @var{suffix}.
 
+@item output-exists [@{ target/xfail @var{selector} @}]
+Passes if compiler output file exists.
+
+@item output-exists-not [@{ target/xfail @var{selector} @}]
+Passes if compiler output file does not exist.
+
 @item run-gcov @var{sourcefile}
 Check line counts in @command{gcov} tests.
 
@@ -1280,7 +1302,7 @@ Runtime tests are executed via @samp{make check} in the
 tree.  Additional runtime tests can be checked into this testsuite.
 
 Regression testing of the core packages in libgcj is also covered by the
-Mauve testsuite.  The @uref{http://sources.redhat.com/mauve/,,Mauve Project}
+Mauve testsuite.  The @uref{http://sourceware.org/mauve/,,Mauve Project}
 develops tests for the Java Class Libraries.  These tests are run as part
 of libgcj testing by placing the Mauve tree within the libjava testsuite
 sources at @file{libjava/testsuite/libjava.mauve/mauve}, or by specifying
@@ -1293,13 +1315,7 @@ failures for a test run against the list of expected failures in
 Update this file when adding new failing tests to Mauve, or when fixing
 bugs in libgcj that had caused Mauve test failures.
 
-The @uref{http://sources.redhat.com/mauve/jacks.html,,
-Jacks} project provides a testsuite for Java compilers that can be used
-to test changes that affect the GCJ front end.  This testsuite is run as
-part of Java testing by placing the Jacks tree within the libjava
-testsuite sources at @file{libjava/testsuite/libjava.jacks/jacks}.
-
-We encourage developers to contribute test cases to Mauve and Jacks.
+We encourage developers to contribute test cases to Mauve.
 
 @node gcov Testing
 @subsection Support for testing @command{gcov}
@@ -1448,7 +1464,7 @@ These can be overridden by defining the environment variable
 
 @smallexample
 COMPAT_OPTIONS="[list [list @{@var{tst1}@} @{@var{alt1}@}]
-  ...[list @{@var{tstn}@} @{@var{altn}@}]]"
+  @dots{}[list @{@var{tstn}@} @{@var{altn}@}]]"
 @end smallexample
 
 where @var{tsti} and @var{alti} are lists of options, with @var{tsti}