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.
PR libstdc++/80448
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
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
as the de facto standard ABI on many common architectures (including x86).
G++ can also use the ARM architecture's EABI, for embedded
alignment and in a particular layout, mangling names according to a
well-defined algorithm, has specific arrangements for the support of
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 <a class="link" href="http://mentorembedded.github.io/cxx-abi/abi.html" target="_top">ABI
- specification</a>.
+ Application Binary Interface, or ABI. From GCC version 3 onwards the
+ GNU C++ compiler uses an industry-standard C++ ABI, the
+ <a class="link" href="abi.html#biblio.cxxabi" title="Itanium C++ ABI">Itanium C++ ABI</a>.
</p><p>
The GNU C++ compiler, g++, has a compiler command line option to
switch between various different C++ ABIs. This explicit version
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 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>
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>
ABIcheck
</a>
</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">
- C++ ABI Summary
+ <a class="link" href="https://itanium-cxx-abi.github.io/cxx-abi/" target="_top">
+ Itanium C++ ABI
</a>
</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>
</td><td align="center"> 6.1 </td><td align="left"><code class="code"> __cpp_lib_map_try_emplace >= 201411</code>,
<code class="code"> __cpp_lib_unordered_map_try_emplace >= 201411</code>
- </td></tr><tr><td align="left"> Return type of <code class="code">emplace</code> </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">
+ </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">
P0083R3
</a>
the <code class="varname">CXXFLAGS</code> variable when running
<span class="command"><strong>make</strong></span>, or via options for the DejaGnu test framework
(described below). The latter approach uses the
- <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>
+ <code class="option">--target_board</code> option that was shown earlier,
+ 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:
</p><pre class="programlisting"> make RUNTESTFLAGS=--target_board=unix/-O1/-D_GLIBCXX_ASSERTIONS</pre><p>
</p><p>
alignment and in a particular layout, mangling names according to a
well-defined algorithm, has specific arrangements for the support of
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 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://itanium-cxx-abi.github.io/cxx-abi/">ABI
- specification</link>.
+ Application Binary Interface, or ABI. From GCC version 3 onwards the
+ GNU C++ compiler uses an industry-standard C++ ABI, the
+ <link linkend="biblio.cxxabi">Itanium C++ ABI</link>.
</para>
<para>
<title>
<link xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="https://itanium-cxx-abi.github.io/cxx-abi/">
- C++ ABI Summary
+ Itanium C++ ABI
</link>
</title>
</biblioentry>
the <varname>CXXFLAGS</varname> variable when running
<command>make</command>, or via options for the DejaGnu test framework
(described below). The latter approach uses the
- <option>--target_board</option> option that was shown earlier.
- For example, to run the tests with <option>-O1 -D_GLIBCXX_ASSERTIONS</option>
+ <option>--target_board</option> option that was shown earlier,
+ 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:
<programlisting> make RUNTESTFLAGS=--target_board=unix/-O1/-D_GLIBCXX_ASSERTIONS</programlisting>
</para>