From db7ab54fbfcc9e4ccd046786d1c6b97a6ffe2316 Mon Sep 17 00:00:00 2001
From: Jonathan Wakely <jwakely@redhat.com>
Date: Wed, 19 Apr 2017 17:49:21 +0100
Subject: [PATCH] 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
---
 libstdc++-v3/ChangeLog                   |  5 +++++
 libstdc++-v3/doc/html/faq.html           |  2 +-
 libstdc++-v3/doc/html/manual/abi.html    | 13 ++++++-------
 libstdc++-v3/doc/html/manual/status.html |  6 +-----
 libstdc++-v3/doc/html/manual/test.html   |  7 +++++--
 libstdc++-v3/doc/xml/manual/abi.xml      |  9 ++++-----
 libstdc++-v3/doc/xml/manual/test.xml     |  7 +++++--
 7 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 4d282ad2c9df..46c20d1f7f96 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,10 @@
 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
diff --git a/libstdc++-v3/doc/html/faq.html b/libstdc++-v3/doc/html/faq.html
index 4e0fabae1ac7..953865544716 100644
--- a/libstdc++-v3/doc/html/faq.html
+++ b/libstdc++-v3/doc/html/faq.html
@@ -847,7 +847,7 @@
     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
diff --git a/libstdc++-v3/doc/html/manual/abi.html b/libstdc++-v3/doc/html/manual/abi.html
index 47425aabc229..2f01e37e7cdf 100644
--- a/libstdc++-v3/doc/html/manual/abi.html
+++ b/libstdc++-v3/doc/html/manual/abi.html
@@ -18,10 +18,9 @@
   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
@@ -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
 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>
@@ -532,8 +531,8 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.
 	  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">
diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html
index 0a9e91d05786..4d293cbe156f 100644
--- a/libstdc++-v3/doc/html/manual/status.html
+++ b/libstdc++-v3/doc/html/manual/status.html
@@ -720,11 +720,7 @@ Feature-testing recommendations for C++</a>.
 	</a>
       </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>
-      </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>
diff --git a/libstdc++-v3/doc/html/manual/test.html b/libstdc++-v3/doc/html/manual/test.html
index 61950d3c6294..70341779ca74 100644
--- a/libstdc++-v3/doc/html/manual/test.html
+++ b/libstdc++-v3/doc/html/manual/test.html
@@ -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
       <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>
diff --git a/libstdc++-v3/doc/xml/manual/abi.xml b/libstdc++-v3/doc/xml/manual/abi.xml
index 0e5606872586..1c816b1699b5 100644
--- a/libstdc++-v3/doc/xml/manual/abi.xml
+++ b/libstdc++-v3/doc/xml/manual/abi.xml
@@ -40,10 +40,9 @@
   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>
@@ -1116,7 +1115,7 @@ gcc test.c -g -O2 -L. -lone -ltwo /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.
       <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>
diff --git a/libstdc++-v3/doc/xml/manual/test.xml b/libstdc++-v3/doc/xml/manual/test.xml
index 8ae88b305e5f..7cb7dafd5df3 100644
--- a/libstdc++-v3/doc/xml/manual/test.xml
+++ b/libstdc++-v3/doc/xml/manual/test.xml
@@ -563,8 +563,11 @@ cat 27_io/objects/char/3_xin.in | a.out</programlisting>
       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>
-- 
GitLab