On Fri, Oct 07, 2011 at 09:47:15PM +0800, Yao Qi wrote: > > Index: sourcebuild.texi > =================================================================== > --- sourcebuild.texi (revision 170935) > +++ sourcebuild.texi (revision 179462) > @@ -366,7 +366,7 @@ > @end table > > DVI-formatted manuals are generated by @samp{make dvi}, which uses > -@command{texi2dvi} (via the Makefile macro @code{$(TEXI2DVI)}). > +@command{texi2dvi} (via the Makefile macro @code{$(TEXI2DVI)}). > PDF-formatted manuals are generated by @samp{make pdf}, which uses > @command{texi2pdf} (via the Makefile macro @code{$(TEXI2PDF)}). HTML > formatted manuals are generated by @samp{make html}. Info > @@ -834,6 +834,9 @@ > @file{MAINTAINERS}. Some existing architectures may be unmaintained, > but it would be unusual to add support for a target that does not have > a maintainer when support is added. > +@item > +Target triplets covering all @file{config.gcc} stanzas for the target, > +in the list in @file{contrib/config-list.mk}. > @end itemize > > @node Testsuites > @@ -1013,6 +1016,11 @@ > default, or that don't provide them at all. It must come after > all @code{dg-options} directives. > For supported values of @var{feature} see @ref{Add Options, ,}. > + > +@item @{ dg-additional-options @var{options} [@{ target @var{selector} @}] @} > +This directive provides a list of compiler options, to be used > +if the target system matches @var{selector}, that are added to the default > +options used for this set of tests. > @end table > > @subsubsection Modify the test timeout value > @@ -1671,6 +1679,9 @@ > conversion functions and overflow is not always detected correctly by > those functions. > > +@item mmap > +Target supports @code{mmap}. > + > @item newlib > Target supports Newlib. > > @@ -1752,6 +1763,9 @@ > @item gc_sections > Target supports @option{--gc-sections}. > > +@item gld > +Target uses GNU @command{ld}. > + > @item keeps_null_pointer_checks > Target keeps null pointer checks, either due to the use of > @option{-fno-delete-null-pointer-checks} or hardwired into the target. > @@ -1779,6 +1793,9 @@ > @item pe_aligned_commons > Target supports @option{-mpe-aligned-commons}. > > +@item pie > +Target supports @option{-pie}, @option{-fpie} and @option{-fPIE}. > + > @item section_anchors > Target supports section anchors. > > @@ -2113,9 +2130,9 @@ > @node Ada Tests > @section Ada Language Testsuites > > -The Ada testsuite includes executable tests from the ACATS 2.5 > +The Ada testsuite includes executable tests from the ACATS > testsuite, publicly available at > -@uref{http://www.adaic.org/compilers/acats/2.5}. > +@uref{http://www.ada-auth.org/acats.html}. > > These tests are integrated in the GCC testsuite in the > @file{ada/acats} directory, and > Index: plugins.texi > =================================================================== > --- plugins.texi (revision 170935) > +++ plugins.texi (revision 179462) > @@ -14,7 +14,7 @@ > and invoked at pre-determined locations in the compilation > process. > > -Plugins are loaded with > +Plugins are loaded with > > @option{-fplugin=/path/to/@var{name}.so} > @option{-fplugin-arg-@var{name}-@var{key1}[=@var{value1}]} > > @@ -151,6 +151,7 @@ > @{ > PLUGIN_PASS_MANAGER_SETUP, /* To hook into pass manager. */ > PLUGIN_FINISH_TYPE, /* After finishing parsing a type. */ > + PLUGIN_FINISH_DECL, /* After finishing parsing a declaration. */ > PLUGIN_FINISH_UNIT, /* Useful for summary processing. */ > PLUGIN_PRE_GENERICIZE, /* Allows to see low level AST in C and C++ > frontends. */ > PLUGIN_FINISH, /* Called before GCC exits. */ > @@ -264,7 +265,7 @@ > @end smallexample > > > -@section Interacting with the GCC Garbage Collector > +@section Interacting with the GCC Garbage Collector > > Some plugins may want to be informed when GGC (the GCC Garbage > Collector) is running. They can register callbacks for the > @@ -277,7 +278,7 @@ > for the @code{PLUGIN_GGC_MARKING} event. Such callbacks can call the > @code{ggc_set_mark} routine, preferably thru the @code{ggc_mark} macro > (and conversely, these routines should usually not be used in plugins > -outside of the @code{PLUGIN_GGC_MARKING} event). > +outside of the @code{PLUGIN_GGC_MARKING} event). > > Some plugins may need to add extra GGC root tables, e.g. to handle their own > @code{GTY}-ed data. This can be done with the > @code{PLUGIN_REGISTER_GGC_ROOTS} > @@ -331,12 +332,12 @@ > > /* Attribute definition */ > static struct attribute_spec user_attr = > - @{ "user", 1, 1, false, false, false, handle_user_attribute @}; > + @{ "user", 1, 1, false, false, false, handle_user_attribute, false @}; > > /* Plugin callback called during attribute registration. > Registered with register_callback (plugin_name, PLUGIN_ATTRIBUTES, > register_attributes, NULL) > */ > -static void > +static void > register_attributes (void *event_data, void *data) > @{ > warning (0, G_("Callback to register attributes")); > @@ -356,8 +357,8 @@ > register_callback (plugin_name, PLUGIN_PRAGMAS, > register_my_pragma, NULL); > */ > -static void > -register_my_pragma (void *event_data, void *data) > +static void > +register_my_pragma (void *event_data, void *data) > @{ > warning (0, G_("Callback to register pragmas")); > c_register_pragma ("GCCPLUGIN", "sayhello", handle_pragma_sayhello); > @@ -365,7 +366,7 @@ > @end smallexample > > It is suggested to pass @code{"GCCPLUGIN"} (or a short name identifying > -your plugin) as the ``space'' argument of your pragma. > +your plugin) as the ``space'' argument of your pragma. > > > @section Recording information about pass execution > @@ -417,6 +418,17 @@ > Inside plugins, this @code{plugin} directory name can be queried by > calling @code{default_plugin_dir_name ()}. > > +Plugins may know, when they are compiled, the GCC version for which > +@file{plugin-version.h} is provided. The constant macros > +@code{GCCPLUGIN_VERSION_MAJOR}, @code{GCCPLUGIN_VERSION_MINOR}, > +@code{GCCPLUGIN_VERSION_PATCHLEVEL}, @code{GCCPLUGIN_VERSION} are > +integer numbers, so a plugin could ensure it is built for GCC 4.7 with > +@smallexample > +#if GCCPLUGIN_VERSION != 4007 > +#error this GCC plugin is for GCC 4.7 > +#endif > +@end smallexample > + > The following GNU Makefile excerpt shows how to build a simple plugin: > > @smallexample > @@ -435,6 +447,6 @@ > plugin.so}, using backquote shell syntax to query the @file{plugin} > directory. > > -Plugins needing to use @command{gengtype} require a GCC build > -directory for the same version of GCC that they will be linked > -against. > +When a plugin needs to use @command{gengtype}, be sure that both > +@file{gengtype} and @file{gtype.state} have the same version as the > +GCC for which the plugin is built. -- Yao Qi <qiyaoltc AT gmail DOT com> Don't go around saying the world owes you a living. The world owes you nothing. It was here first. -- Mark Twain Index: sourcebuild.texi =================================================================== --- sourcebuild.texi (revision 377) +++ sourcebuild.texi (working copy) @@ -1092,8 +1092,10 @@ @en but it would be unusual to add support for a target that does not have @en a maintainer when support is added. 通常的,会在@file{MAINTAINERS}中列出该目标的一个或多个维护者。虽然有些现存的体系结构可能没有被维护了,但是通常是不会为没有维护者的目标提供支持的。 +@item +Target triplets covering all @file{config.gcc} stanzas for the target, +in the list in @file{contrib/config-list.mk}. @end itemize - @en @node Testsuites @en @chapter Testsuites @node Testsuites @@ -1378,6 +1380,10 @@ 其必须在所有@code{dg-options}指令之后。 支持的@var{feature}为: +@item @{ dg-additional-options @var{options} [@{ target @var{selector} @}] @} +This directive provides a list of compiler options, to be used +if the target system matches @var{selector}, that are added to the default +options used for this set of tests. @end table @subsubsection Modify the test timeout value @@ -2046,6 +2052,9 @@ conversion functions and overflow is not always detected correctly by those functions. +@item mmap +Target supports @code{mmap}. + @item newlib Target supports Newlib. @@ -2127,6 +2136,9 @@ @item gc_sections Target supports @option{--gc-sections}. +@item gld +Target uses GNU @command{ld}. + @item keeps_null_pointer_checks Target keeps null pointer checks, either due to the use of @option{-fno-delete-null-pointer-checks} or hardwired into the target. @@ -2154,6 +2166,9 @@ @item pe_aligned_commons Target supports @option{-mpe-aligned-commons}. +@item pie +Target supports @option{-pie}, @option{-fpie} and @option{-fPIE}. + @item section_anchors Target supports section anchors. @@ -2490,11 +2505,11 @@ @node Ada Tests @section Ada语言测试包 -The Ada testsuite includes executable tests from the ACATS 2.5 +The Ada testsuite includes executable tests from the ACATS testsuite, publicly available at -@uref{http://www.adaic.org/compilers/acats/2.5}. -Ada测试包包括了来自ACATS 2.5测试包的可执行测试, -其在@uref{http://www.adaic.org/compilers/acats/2.5}上可公开获得。; +@uref{http://www.ada-auth.org/acats.html}. +Ada测试包包括了来自ACATS测试包的可执行测试, +其在@uref{http://www.ada-auth.org/acats.html}上可公开获得。; These tests are integrated in the GCC testsuite in the @file{ada/acats} directory, and