diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-22 22:58:15 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-22 22:58:15 +0000 |
commit | d0cdcef958677d8b8fac1a498e7201df608a44da (patch) | |
tree | 6024f45f632aeb57af1c77d3edd1b693bac56197 /libstdc++-v3/doc/xml/manual/abi.xml | |
parent | d57f66a06c15f9534703c0d99ca91e6a6bdb42c7 (diff) | |
download | gcc-d0cdcef958677d8b8fac1a498e7201df608a44da.tar.gz |
2010-07-22 Benjamin Kosnik <bkoz@redhat.com>
DocBook 4.5 to 5.0 transition.
* doc/xml/authors.xml: Update markup to DocBook 5.0.
* doc/xml/faq.xml: Same.
* doc/xml/api.xml: Same.
* doc/xml/class.txml
* doc/xml/gnu/gpl-3.0.xml: Same.
* doc/xml/gnu/fdl-1.2.xml: Same.
* doc/xml/gnu/fdl-1.3.xml: Same.
* doc/xml/gnu/gpl-2.0.xml: Same.
* doc/xml/chapter.txml: Same.
* doc/xml/manual/mt_allocator.xml: Same.
* doc/xml/manual/allocator.xml: Same.
* doc/xml/manual/ctype.xml: Same.
* doc/xml/manual/numerics.xml: Same.
* doc/xml/manual/codecvt.xml: Same.
* doc/xml/manual/backwards_compatibility.xml: Same.
* doc/xml/manual/concurrency.xml: Same.
* doc/xml/manual/intro.xml: Same.
* doc/xml/manual/abi.xml: Same.
* doc/xml/manual/shared_ptr.xml: Same.
* doc/xml/manual/status_cxxtr1.xml: Same.
* doc/xml/manual/auto_ptr.xml: Same.
* doc/xml/manual/internals.xml: Same.
* doc/xml/manual/atomics.xml: Same.
* doc/xml/manual/parallel_mode.xml: Same.
* doc/xml/manual/status_cxx1998.xml: Same.
* doc/xml/manual/profile_mode.xml: Same.
* doc/xml/manual/containers.xml: Same.
* doc/xml/manual/io.xml: Same.
* doc/xml/manual/concurrency_extensions.xml: Same.
* doc/xml/manual/appendix_porting.xml: Same.
* doc/xml/manual/utilities.xml: Same.
* doc/xml/manual/support.xml: Same.
* doc/xml/manual/bitmap_allocator.xml: Same.
* doc/xml/manual/configure.xml: Same.
* doc/xml/manual/build_hacking.xml: Same.
* doc/xml/manual/evolution.xml: Same.
* doc/xml/manual/using.xml: Same.
* doc/xml/manual/using_exceptions.xml: Same.
* doc/xml/manual/debug.xml: Same.
* doc/xml/manual/localization.xml: Same.
* doc/xml/manual/strings.xml: Same.
* doc/xml/manual/debug_mode.xml: Same.
* doc/xml/manual/locale.xml: Same.
* doc/xml/manual/extensions.xml: Same.
* doc/xml/manual/appendix_contributing.xml: Same.
* doc/xml/manual/prerequisites.xml: Same.
* doc/xml/manual/messages.xml: Same.
* doc/xml/manual/diagnostics.xml: Same.
* doc/xml/manual/algorithms.xml: Same.
* doc/xml/manual/appendix_free.xml: Same.
* doc/xml/manual/iterators.xml: Same.
* doc/xml/manual/spine.xml: Same.
* doc/xml/manual/status_cxxtr24733.xml: Same.
* doc/xml/manual/status_cxx200x.xml: Same.
* doc/xml/manual/test.xml: Same.
* doc/xml/book.txml: Same.
* doc/xml/spine.xml: Same.
* doc/Makefile.am: Same.
* doc/Makefile.in: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162433 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/doc/xml/manual/abi.xml')
-rw-r--r-- | libstdc++-v3/doc/xml/manual/abi.xml | 263 |
1 files changed, 116 insertions, 147 deletions
diff --git a/libstdc++-v3/doc/xml/manual/abi.xml b/libstdc++-v3/doc/xml/manual/abi.xml index 400d2a4b931..268f0a69199 100644 --- a/libstdc++-v3/doc/xml/manual/abi.xml +++ b/libstdc++-v3/doc/xml/manual/abi.xml @@ -1,7 +1,8 @@ -<sect1 id="appendix.porting.abi" xreflabel="abi"> +<section xmlns="http://docbook.org/ns/docbook" version="5.0" + xml:id="appendix.porting.abi" xreflabel="abi"> <?dbhtml filename="abi.html"?> -<sect1info> +<info><title>ABI Policy and Guidelines</title> <keywordset> <keyword> C++ @@ -22,15 +23,15 @@ compatibility </keyword> </keywordset> -</sect1info> +</info> + -<title>ABI Policy and Guidelines</title> <para> </para> -<sect2 id="abi.cxx_interface"> -<title>The C++ Interface</title> +<section xml:id="abi.cxx_interface"><info><title>The C++ Interface</title></info> + <para> C++ applications often depend on specific language support @@ -53,9 +54,8 @@ virtual functions, etc. These details are defined as the compiler Application Binary Interface, or ABI. The GNU C++ compiler uses an industry-standard C++ ABI starting with version 3. Details can be - found in the <ulink - url="http://www.codesourcery.com/cxx-abi/abi.html"> ABI - specification</ulink>. + found in the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.codesourcery.com/cxx-abi/abi.html"> ABI + specification</link>. </para> <para> @@ -65,8 +65,8 @@ g++ command line options may change the ABI as a side-effect of use. Such flags include <code>-fpack-struct</code> and <code>-fno-exceptions</code>, but include others: see the complete - list in the GCC manual under the heading <ulink url="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code%20Gen%20Options">Options - for Code Generation Conventions</ulink>. + list in the GCC manual under the heading <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code%20Gen%20Options">Options + for Code Generation Conventions</link>. </para> <para> @@ -105,18 +105,18 @@ given compiler ABI. In a nutshell: implements the C++ ABI in question. </para> -</sect2> +</section> + +<section xml:id="abi.versioning"><info><title>Versioning</title></info> -<sect2 id="abi.versioning"> -<title>Versioning</title> <para> The C++ interface has evolved throughout the history of the GNU C++ toolchain. With each release, various details have been changed so as to give distinct versions to the C++ interface. </para> - <sect3 id="abi.versioning.goals"> - <title>Goals</title> + <section xml:id="abi.versioning.goals"><info><title>Goals</title></info> + <para>Extending existing, stable ABIs. Versioning gives subsequent releases of library binaries the ability to add new symbols and add @@ -136,10 +136,10 @@ compatible. <para>Allows multiple, incompatible ABIs to coexist at the same time. </para> - </sect3> + </section> - <sect3 id="abi.versioning.history"> - <title>History</title> + <section xml:id="abi.versioning.history"><info><title>History</title></info> + <para> How can this complexity be managed? What does C++ versioning mean? @@ -298,8 +298,7 @@ compatible. </para> <para> Note 3: This release (but not previous or subsequent) has one - known incompatibility, see <ulink - url="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33678">33678</ulink> + known incompatibility, see <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33678">33678</link> in the GCC bug database. </para> </listitem> @@ -379,7 +378,7 @@ compatible. <listitem><para>gcc-3.4.x, gcc-4.[0-5].x: 1000 + n (when n>1) </para></listitem> <listitem><para>gcc-3.4.x, gcc-4.[0-5].x: 999999 (when n=0)</para></listitem> </itemizedlist> - <para></para> + <para/> </listitem> <listitem> @@ -396,7 +395,7 @@ compatible. <listitem><para>gcc-3.3.x: <code>-fabi-version=1</code></para></listitem> <listitem><para>gcc-3.4.x, gcc-4.[0-5].x: <code>-fabi-version=2</code> <emphasis>(Incompatible with previous)</emphasis></para></listitem> </itemizedlist> - <para></para> + <para/> </listitem> <listitem> @@ -460,7 +459,7 @@ compatible. <listitem><para>gcc-4.4.1: 20090722</para></listitem> <listitem><para>gcc-4.4.2: 20091015</para></listitem> </itemizedlist> - <para></para> + <para/> </listitem> <listitem> @@ -501,7 +500,7 @@ compatible. <listitem><para>gcc-3.4.x: "version-unused"</para></listitem> <listitem><para>gcc-4.[0-5].x: "version-unused"</para></listitem> </itemizedlist> - <para></para> + <para/> </listitem> <listitem> @@ -564,7 +563,7 @@ compatible. <listitem><para>gcc-4.4.2: include/c++/4.4.2</para></listitem> <listitem><para>gcc-4.5.0: include/c++/4.5.0</para></listitem> </itemizedlist> - <para></para> + <para/> </listitem> </orderedlist> @@ -577,10 +576,10 @@ compatible. </para> - </sect3> + </section> - <sect3 id="abi.versioning.prereq"> - <title>Prerequisites</title> + <section xml:id="abi.versioning.prereq"><info><title>Prerequisites</title></info> + <para> Minimum environment that supports a versioned ABI: A supported dynamic linker, a GNU linker of sufficient vintage to understand @@ -601,10 +600,10 @@ compatible. gcc-3.1.x tools and more recent vintages, will meet the requirements above, as does Solaris 2.5 and up. </para> - </sect3> + </section> - <sect3 id="abi.versioning.config"> - <title>Configuring</title> + <section xml:id="abi.versioning.config"><info><title>Configuring</title></info> + <para> It turns out that most of the configure options that change @@ -631,10 +630,10 @@ compatible. versioning are in place. For more information, please consult acinclude.m4. </para> - </sect3> + </section> - <sect3 id="abi.versioning.active"> - <title>Checking Active</title> + <section xml:id="abi.versioning.active"><info><title>Checking Active</title></info> + <para> When the GNU C++ library is being built with symbol versioning @@ -704,11 +703,11 @@ On Solaris 2, you can use <code>pvs -r</code> instead: <code>ldd -v</code> works too, but is very verbose. </para> - </sect3> -</sect2> + </section> +</section> + +<section xml:id="abi.changes_allowed"><info><title>Allowed Changes</title></info> -<sect2 id="abi.changes_allowed"> -<title>Allowed Changes</title> <para> The following will cause the library minor version number to @@ -723,10 +722,10 @@ increase, say from "libstdc++.so.3.0.4" to "libstdc++.so.3.0.5". Other allowed changes are possible. </para> -</sect2> +</section> + +<section xml:id="abi.changes_no"><info><title>Prohibited Changes</title></info> -<sect2 id="abi.changes_no"> -<title>Prohibited Changes</title> <para> The following non-exhaustive list will cause the library major version @@ -755,18 +754,18 @@ number to increase, say from "libstdc++.so.3.0.4" to class that would otherwise have implicit versions. This will change the way the compiler deals with this class in by-value return statements or parameters: instead of passing instances of this -class in registers, the compiler will be forced to use memory. See <ulink url="http://www.codesourcery.com/cxx-abi/abi.html#calls"> this part</ulink> +class in registers, the compiler will be forced to use memory. See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.codesourcery.com/cxx-abi/abi.html#calls"> this part</link> of the C++ ABI documentation for further details. </para></listitem> </orderedlist> -</sect2> +</section> + +<section xml:id="abi.impl"><info><title>Implementation</title></info> -<sect2 id="abi.impl"> -<title>Implementation</title> <orderedlist> <listitem> @@ -880,13 +879,13 @@ standard includes.</para> </listitem> </orderedlist> -</sect2> +</section> -<sect2 id="abi.testing"> -<title>Testing</title> +<section xml:id="abi.testing"><info><title>Testing</title></info> - <sect3 id="abi.testing.single"> - <title>Single ABI Testing</title> + + <section xml:id="abi.testing.single"><info><title>Single ABI Testing</title></info> + <para> Testing for GNU C++ ABI changes is composed of two distinct @@ -982,9 +981,9 @@ Perhaps there are other C++ ABI checkers. If so, please notify us. We'd like to know about them! </para> - </sect3> - <sect3 id="abi.testing.multi"> - <title>Multiple ABI Testing</title> + </section> + <section xml:id="abi.testing.multi"><info><title>Multiple ABI Testing</title></info> + <para> A "C" application, dynamically linked to two shared libraries, liba, libb. The dependent library liba is a C++ shared library compiled with @@ -1069,11 +1068,11 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so. code from both liba, and the dependent libstdc++.so.6, and libb, with the dependent libstdc++.so.5. </para> - </sect3> -</sect2> + </section> +</section> + +<section xml:id="abi.issues"><info><title>Outstanding Issues</title></info> -<sect2 id="abi.issues"> -<title>Outstanding Issues</title> <para> Some features in the C++ language make versioning especially @@ -1089,149 +1088,119 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so. </para> <para> -<ulink url="http://gcc.gnu.org/PR24660">24660: versioning weak symbols in libstdc++</ulink> +<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/PR24660">24660: versioning weak symbols in libstdc++</link> </para> <para> -<ulink url="http://gcc.gnu.org/PR19664">19664: libstdc++ headers should have pop/push of the visibility around the declarations</ulink> +<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/PR19664">19664: libstdc++ headers should have pop/push of the visibility around the declarations</link> </para> -</sect2> +</section> + +<bibliography xml:id="abi.biblio"><info><title>Bibliography</title></info> -<bibliography id="abi.biblio"> -<title>Bibliography</title> <biblioentry> - <biblioid class="uri"> - <ulink url="http://abicheck.sourceforge.net/"> - <citetitle> - ABIcheck, a vague idea of checking ABI compatibility - </citetitle> - </ulink> - </biblioid> + <biblioid xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://abicheck.sourceforge.net/" class="uri"> + </biblioid> + <citetitle> + ABIcheck, a vague idea of checking ABI compatibility + </citetitle> </biblioentry> <biblioentry> - <biblioid class="uri"> - <ulink url="http://www.codesourcery.com/public/cxx-abi/"> - <citetitle> - C++ ABI Reference - </citetitle> - </ulink> + <biblioid xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.codesourcery.com/public/cxx-abi/" class="uri"> </biblioid> + <citetitle> + C++ ABI Reference + </citetitle> </biblioentry> <biblioentry> - <biblioid class="uri"> - <ulink url="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm"> - <citetitle> - Intel Compilers for Linux Compatibility with the GNU Compilers - </citetitle> - </ulink> - </biblioid> + <biblioid xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm" class="uri"> + </biblioid> + <citetitle> + Intel Compilers for Linux Compatibility with the GNU Compilers + </citetitle> </biblioentry> <biblioentry> - <biblioid class="uri"> - <ulink url="http://docs.sun.com/app/docs/doc/819-0690"> - <citetitle> - Linker and Libraries Guide (document 819-0690) - </citetitle> - </ulink> - </biblioid> + <biblioid xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docs.sun.com/app/docs/doc/819-0690" class="uri"> + </biblioid> + <citetitle> + Linker and Libraries Guide (document 819-0690) + </citetitle> </biblioentry> <biblioentry> - <biblioid class="uri"> - <ulink url="http://docs.sun.com/app/docs/doc/819-3689"> - <citetitle> - Sun Studio 11: C++ Migration Guide (document 819-3689) - </citetitle> - </ulink> + <biblioid xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docs.sun.com/app/docs/doc/819-3689" class="uri"> </biblioid> + <citetitle> + Sun Studio 11: C++ Migration Guide (document 819-3689) + </citetitle> </biblioentry> <biblioentry> - <biblioid class="uri"> - <ulink url="http://people.redhat.com/drepper/dsohowto.pdf"> - <citetitle> - How to Write Shared Libraries - </citetitle> - </ulink> + <biblioid xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://people.redhat.com/drepper/dsohowto.pdf" class="uri"> </biblioid> + <citetitle> + How to Write Shared Libraries + </citetitle> <author> - <firstname>Ulrich</firstname> - <surname>Drepper</surname> + <personname> + <firstname>Ulrich</firstname><surname>Drepper</surname> + </personname> </author> </biblioentry> <biblioentry> - <biblioid class="uri"> - <ulink url="http://www.arm.com/miscPDFs/8033.pdf"> - <citetitle> - C++ ABI for the ARM Architecture - </citetitle> - </ulink> + <biblioid xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.arm.com/miscPDFs/8033.pdf" class="uri"> </biblioid> + <citetitle> + C++ ABI for the ARM Architecture + </citetitle> </biblioentry> <biblioentry> - <biblioid class="uri"> - <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html"> - <citetitle> - Dynamic Shared Objects: Survey and Issues - </citetitle> - </ulink> + <biblioid xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html" class="uri"> </biblioid> + <citetitle> + Dynamic Shared Objects: Survey and Issues + </citetitle> <subtitle> ISO C++ J16/06-0046 </subtitle> - <author> - <firstname>Benjamin</firstname> - <surname>Kosnik</surname> - </author> + <author><personname><firstname>Benjamin</firstname><surname>Kosnik</surname></personname></author> </biblioentry> <biblioentry> - <biblioid class="uri"> - <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html"> - <citetitle> - Versioning With Namespaces - </citetitle> - </ulink> - </biblioid> + <biblioid xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html" class="uri"> + </biblioid> + <citetitle> + Versioning With Namespaces + </citetitle> <subtitle> ISO C++ J16/06-0083 </subtitle> - <author> - <firstname>Benjamin</firstname> - <surname>Kosnik</surname> - </author> + <author><personname><firstname>Benjamin</firstname><surname>Kosnik</surname></personname></author> </biblioentry> <biblioentry> - <biblioid class="uri"> - <ulink url="http://syrcose.ispras.ru/2009/files/SYRCoSE2009-CfP.pdf"> - <citetitle> - Binary Compatibility of Shared Libraries Implemented in C++ - on GNU/Linux Systems - </citetitle> - </ulink> + <biblioid xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://syrcose.ispras.ru/2009/files/SYRCoSE2009-CfP.pdf" class="uri"> </biblioid> + <citetitle> + Binary Compatibility of Shared Libraries Implemented in C++ + on GNU/Linux Systems + </citetitle> + <subtitle> SYRCoSE 2009 </subtitle> - <author> - <firstname>Pavel</firstname> - <surname>Shved</surname> - </author> - <author> - <firstname>Denis</firstname> - <surname>Silakov</surname> - </author> + <author><personname><firstname>Pavel</firstname><surname>Shved</surname></personname></author> + <author><personname><firstname>Denis</firstname><surname>Silakov</surname></personname></author> </biblioentry> </bibliography> -</sect1> +</section> |