[PATCH] Add _GLIBCXX_RELEASE macro to "Using" section of manual

Jonathan Wakely jwakely@redhat.com
Tue Mar 28 12:45:00 GMT 2017


This documents the new _GLIBCXX_RELEASE macro in the main manual, not
just the appendix on ABI version history.

	* doc/xml/manual/abi.xml: Add xml:id anchor.
	* doc/xml/manual/using.xml (manual.intro.using.macros): Document
	_GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
	(concurrency.io.structure): Add markup.
	* doc/html/*: Regenerate.

Committing to trunk shortly.
-------------- next part --------------
commit 4bf47e5a673d2d2be63b5bad6088c4d1ab29419e
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Mar 28 13:37:36 2017 +0100

    Add _GLIBCXX_RELEASE macro to "Using" section of manual
    
    	* doc/xml/manual/abi.xml: Add xml:id anchor.
    	* doc/xml/manual/using.xml (manual.intro.using.macros): Document
    	_GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
    	(concurrency.io.structure): Add markup.
    	* doc/html/*: Regenerate.

diff --git a/libstdc++-v3/doc/xml/manual/abi.xml b/libstdc++-v3/doc/xml/manual/abi.xml
index 3ef57d5..e79bf8c 100644
--- a/libstdc++-v3/doc/xml/manual/abi.xml
+++ b/libstdc++-v3/doc/xml/manual/abi.xml
@@ -383,7 +383,7 @@ compatible.
     <para/>
     </listitem>
 
-   <listitem>
+   <listitem xml:id="abi.versioning.__GLIBCXX__">
     <para>Incremental bumping of a library pre-defined macro. For releases
     before 3.4.0, the macro is <symbol>__GLIBCPP__</symbol>. For later
     releases, it's <symbol>__GLIBCXX__</symbol>. (The libstdc++ project
diff --git a/libstdc++-v3/doc/xml/manual/using.xml b/libstdc++-v3/doc/xml/manual/using.xml
index 3057a93..5c0e1b9 100644
--- a/libstdc++-v3/doc/xml/manual/using.xml
+++ b/libstdc++-v3/doc/xml/manual/using.xml
@@ -829,20 +829,37 @@ g++ -Winvalid-pch -I. -include stdc++.h -H -g -O2 hello.cc -o test.exe
       general public.
    </para>
 
-   <para>Below is the macro which users may check for library version
+   <para>Below are the macros which users may check for library version
       information. </para>
 
     <variablelist>
     <varlistentry>
+      <term><code>_GLIBCXX_RELEASE</code></term>
+      <listitem>
+	<para>The major release number for libstdc++.  This macro is defined
+        to the GCC major version that the libstdc++ headers belong to,
+        as an integer constant.
+        When compiling with GCC it has the same value as GCC's pre-defined
+        macro <symbol>__GNUC__</symbol>.
+        This macro can be used when libstdc++ is used with a non-GNU
+        compiler where <symbol>__GNUC__</symbol> is not defined, or has a
+        different value that doesn't correspond to the libstdc++ version.
+        This macro first appeared in the GCC 7.1 release and is not defined
+        for GCC 6.x or older releases.
+      </para>
+      </listitem>
+    </varlistentry>
+    <varlistentry>
       <term><code>__GLIBCXX__</code></term>
       <listitem>
-	<para>The current version of
-    libstdc++ in compressed ISO date format, as an unsigned
-    long. For details on the value of this particular macro for a
-    particular release, please consult the <link linkend="appendix.porting.abi">
-    ABI Policy and Guidelines</link> appendix.
-    </para>
-    </listitem>
+	<para>The revision date of the libstdc++ source code,
+        in compressed ISO date format, as an unsigned
+        long. For notes about using this macro and details on the value of
+        this macro for a particular release, please consult the
+        <link linkend="abi.versioning.__GLIBCXX__">ABI History</link>
+        appendix.
+        </para>
+      </listitem>
     </varlistentry>
     </variablelist>
 
@@ -1669,10 +1686,11 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
       and efficiency.  You, the programmer, are always required to take care
       with multiple threads.
    </para>
-   <para>(As an example, the POSIX standard requires that C stdio FILE*
-       operations are atomic.  POSIX-conforming C libraries (e.g, on Solaris
-       and GNU/Linux) have an internal mutex to serialize operations on
-       FILE*s.  However, you still need to not do stupid things like calling
+   <para>(As an example, the POSIX standard requires that C stdio
+       <code>FILE*</code> operations are atomic.  POSIX-conforming C libraries
+       (e.g, on Solaris and GNU/Linux) have an internal mutex to serialize
+       operations on <code>FILE*</code>s.
+       However, you still need to not do stupid things like calling
        <code>fclose(fs)</code> in one thread followed by an access of
        <code>fs</code> in another.)
    </para>


More information about the Gcc-patches mailing list