Commit db7ab54f by Jonathan Wakely Committed by Jonathan Wakely

Rationalise ABI links in libstdc++ manual

	* doc/xml/manual/abi.xml: Rephrase one of the references to the
	Itanium C++ ABI.
	* doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
	* doc/html/*: Regenerate.

From-SVN: r247003
parent f19e6a9c
2017-04-19 Jonathan Wakely <jwakely@redhat.com> 2017-04-19 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/abi.xml: Rephrase one of the references to the
Itanium C++ ABI.
* doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
* doc/html/*: Regenerate.
* libsupc++/new: Update comment on #endif directive. * libsupc++/new: Update comment on #endif directive.
PR libstdc++/80448 PR libstdc++/80448
......
...@@ -847,7 +847,7 @@ ...@@ -847,7 +847,7 @@
details than for C, and most CPU designers (for good reasons elaborated details than for C, and most CPU designers (for good reasons elaborated
below) have not stepped up to publish C++ ABIs. Such an ABI has been below) have not stepped up to publish C++ ABIs. Such an ABI has been
defined for the Itanium architecture (see defined for the Itanium architecture (see
<a class="link" href="http://mentorembedded.github.io/cxx-abi/" target="_top">C++ <a class="link" href="https://itanium-cxx-abi.github.io/cxx-abi/" target="_top">C++
ABI for Itanium</a>) and that is used by G++ and other compilers ABI for Itanium</a>) and that is used by G++ and other compilers
as the de facto standard ABI on many common architectures (including x86). as the de facto standard ABI on many common architectures (including x86).
G++ can also use the ARM architecture's EABI, for embedded G++ can also use the ARM architecture's EABI, for embedded
......
...@@ -18,10 +18,9 @@ ...@@ -18,10 +18,9 @@
alignment and in a particular layout, mangling names according to a alignment and in a particular layout, mangling names according to a
well-defined algorithm, has specific arrangements for the support of well-defined algorithm, has specific arrangements for the support of
virtual functions, etc. These details are defined as the compiler virtual functions, etc. These details are defined as the compiler
Application Binary Interface, or ABI. The GNU C++ compiler uses an Application Binary Interface, or ABI. From GCC version 3 onwards the
industry-standard C++ ABI starting with version 3. Details can be GNU C++ compiler uses an industry-standard C++ ABI, the
found in the <a class="link" href="http://mentorembedded.github.io/cxx-abi/abi.html" target="_top">ABI <a class="link" href="abi.html#biblio.cxxabi" title="Itanium C++ ABI">Itanium C++ ABI</a>.
specification</a>.
</p><p> </p><p>
The GNU C++ compiler, g++, has a compiler command line option to The GNU C++ compiler, g++, has a compiler command line option to
switch between various different C++ ABIs. This explicit version switch between various different C++ ABIs. This explicit version
...@@ -334,7 +333,7 @@ class that would otherwise have implicit versions. This will change ...@@ -334,7 +333,7 @@ class that would otherwise have implicit versions. This will change
the way the compiler deals with this class in by-value return the way the compiler deals with this class in by-value return
statements or parameters: instead of passing instances of this statements or parameters: instead of passing instances of this
class in registers, the compiler will be forced to use memory. See the class in registers, the compiler will be forced to use memory. See the
section on <a class="link" href="http://mentorembedded.github.io/cxx-abi/abi.html#calls" target="_top">Function section on <a class="link" href="https://itanium-cxx-abi.github.io/cxx-abi/abi.html#calls" target="_top">Function
Calling Conventions and APIs</a> Calling Conventions and APIs</a>
of the C++ ABI documentation for further details. of the C++ ABI documentation for further details.
</p></li></ol></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="abi.impl"></a>Implementation</h3></div></div></div><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> </p></li></ol></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="abi.impl"></a>Implementation</h3></div></div></div><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
...@@ -532,8 +531,8 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so. ...@@ -532,8 +531,8 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.
ABIcheck ABIcheck
</a> </a>
</em>. </span></p></div><div class="biblioentry"><a id="biblio.cxxabi"></a><p>[biblio.cxxabi] <span class="title"><em> </em>. </span></p></div><div class="biblioentry"><a id="biblio.cxxabi"></a><p>[biblio.cxxabi] <span class="title"><em>
<a class="link" href="http://mentorembedded.github.io/cxx-abi/" target="_top"> <a class="link" href="https://itanium-cxx-abi.github.io/cxx-abi/" target="_top">
C++ ABI Summary Itanium C++ ABI
</a> </a>
</em>. </span></p></div><div class="biblioentry"><a id="id-1.3.6.3.6.10.4"></a><p><span class="title"><em> </em>. </span></p></div><div class="biblioentry"><a id="id-1.3.6.3.6.10.4"></a><p><span class="title"><em>
<a class="link" href="https://software.intel.com/en-us/articles/intel-compilers-for-linux-compatibility-with-gnu-compilers" target="_top"> <a class="link" href="https://software.intel.com/en-us/articles/intel-compilers-for-linux-compatibility-with-gnu-compilers" target="_top">
......
...@@ -720,11 +720,7 @@ Feature-testing recommendations for C++</a>. ...@@ -720,11 +720,7 @@ Feature-testing recommendations for C++</a>.
</a> </a>
</td><td align="center"> 6.1 </td><td align="left"><code class="code"> __cpp_lib_map_try_emplace &gt;= 201411</code>, </td><td align="center"> 6.1 </td><td align="left"><code class="code"> __cpp_lib_map_try_emplace &gt;= 201411</code>,
<code class="code"> __cpp_lib_unordered_map_try_emplace &gt;= 201411</code> <code class="code"> __cpp_lib_unordered_map_try_emplace &gt;= 201411</code>
</td></tr><tr><td align="left"> Return type of <code class="code">emplace</code> </td><td align="left"> </td></tr><tr><td align="left"> Splicing Maps and Sets </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0084r2.pdf" target="_top">
P0084R2
</a>
</td><td align="center"> 7 </td><td class="auto-generated"> </td></tr><tr><td align="left"> Splicing Maps and Sets </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0083r3.pdf" target="_top"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0083r3.pdf" target="_top">
P0083R3 P0083R3
</a> </a>
......
...@@ -321,8 +321,11 @@ cat 27_io/objects/char/3_xin.in | a.out</pre></dd><dt><span class="term"><code c ...@@ -321,8 +321,11 @@ cat 27_io/objects/char/3_xin.in | a.out</pre></dd><dt><span class="term"><code c
the <code class="varname">CXXFLAGS</code> variable when running the <code class="varname">CXXFLAGS</code> variable when running
<span class="command"><strong>make</strong></span>, or via options for the DejaGnu test framework <span class="command"><strong>make</strong></span>, or via options for the DejaGnu test framework
(described below). The latter approach uses the (described below). The latter approach uses the
<code class="option">--target_board</code> option that was shown earlier. <code class="option">--target_board</code> option that was shown earlier,
For example, to run the tests with <code class="option">-O1 -D_GLIBCXX_ASSERTIONS</code> but requires DejaGnu version 1.5.3 or newer to work reliably, so that the
<code class="literal">dg-options</code> in the test aren't overridden.
For example, to run the tests with
<code class="option">-O1 -D_GLIBCXX_ASSERTIONS</code>
you could use: you could use:
</p><pre class="programlisting"> make RUNTESTFLAGS=--target_board=unix/-O1/-D_GLIBCXX_ASSERTIONS</pre><p> </p><pre class="programlisting"> make RUNTESTFLAGS=--target_board=unix/-O1/-D_GLIBCXX_ASSERTIONS</pre><p>
</p><p> </p><p>
......
...@@ -40,10 +40,9 @@ ...@@ -40,10 +40,9 @@
alignment and in a particular layout, mangling names according to a alignment and in a particular layout, mangling names according to a
well-defined algorithm, has specific arrangements for the support of well-defined algorithm, has specific arrangements for the support of
virtual functions, etc. These details are defined as the compiler virtual functions, etc. These details are defined as the compiler
Application Binary Interface, or ABI. The GNU C++ compiler uses an Application Binary Interface, or ABI. From GCC version 3 onwards the
industry-standard C++ ABI starting with version 3. Details can be GNU C++ compiler uses an industry-standard C++ ABI, the
found in the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://itanium-cxx-abi.github.io/cxx-abi/">ABI <link linkend="biblio.cxxabi">Itanium C++ ABI</link>.
specification</link>.
</para> </para>
<para> <para>
...@@ -1116,7 +1115,7 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so. ...@@ -1116,7 +1115,7 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.
<title> <title>
<link xmlns:xlink="http://www.w3.org/1999/xlink" <link xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="https://itanium-cxx-abi.github.io/cxx-abi/"> xlink:href="https://itanium-cxx-abi.github.io/cxx-abi/">
C++ ABI Summary Itanium C++ ABI
</link> </link>
</title> </title>
</biblioentry> </biblioentry>
......
...@@ -563,8 +563,11 @@ cat 27_io/objects/char/3_xin.in | a.out</programlisting> ...@@ -563,8 +563,11 @@ cat 27_io/objects/char/3_xin.in | a.out</programlisting>
the <varname>CXXFLAGS</varname> variable when running the <varname>CXXFLAGS</varname> variable when running
<command>make</command>, or via options for the DejaGnu test framework <command>make</command>, or via options for the DejaGnu test framework
(described below). The latter approach uses the (described below). The latter approach uses the
<option>--target_board</option> option that was shown earlier. <option>--target_board</option> option that was shown earlier,
For example, to run the tests with <option>-O1 -D_GLIBCXX_ASSERTIONS</option> but requires DejaGnu version 1.5.3 or newer to work reliably, so that the
<literal>dg-options</literal> in the test aren't overridden.
For example, to run the tests with
<option>-O1 -D_GLIBCXX_ASSERTIONS</option>
you could use: you could use:
<programlisting> make RUNTESTFLAGS=--target_board=unix/-O1/-D_GLIBCXX_ASSERTIONS</programlisting> <programlisting> make RUNTESTFLAGS=--target_board=unix/-O1/-D_GLIBCXX_ASSERTIONS</programlisting>
</para> </para>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment