From: Jonathan Wakely DT_SONAME
as the
preceding release.
It is versioned as follows: -
GCC 3.0.0: libstdc++.so.3.0.0
GCC 3.0.1: libstdc++.so.3.0.1
GCC 3.0.2: libstdc++.so.3.0.2
GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)
GCC 3.0.4: libstdc++.so.3.0.4
GCC 3.1.0: libstdc++.so.4.0.0 (Incompatible with previous)
GCC 3.1.1: libstdc++.so.4.0.1
GCC 3.2.0: libstdc++.so.5.0.0 (Incompatible with previous)
GCC 3.2.1: libstdc++.so.5.0.1
GCC 3.2.2: libstdc++.so.5.0.2
GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)
GCC 3.3.0: libstdc++.so.5.0.4
GCC 3.3.1: libstdc++.so.5.0.5
GCC 3.4.0: libstdc++.so.6.0.0 (Incompatible with previous)
GCC 3.4.1: libstdc++.so.6.0.1
GCC 3.4.2: libstdc++.so.6.0.2
GCC 3.4.3: libstdc++.so.6.0.3
GCC 4.0.0: libstdc++.so.6.0.4
GCC 4.0.1: libstdc++.so.6.0.5
GCC 4.0.2: libstdc++.so.6.0.6
GCC 4.0.3: libstdc++.so.6.0.7
GCC 4.1.0: libstdc++.so.6.0.7
GCC 4.1.1: libstdc++.so.6.0.8
GCC 4.2.0: libstdc++.so.6.0.9
GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)
GCC 4.2.2: libstdc++.so.6.0.9
GCC 4.3.0: libstdc++.so.6.0.10
GCC 4.4.0: libstdc++.so.6.0.11
GCC 4.4.1: libstdc++.so.6.0.12
GCC 4.4.2: libstdc++.so.6.0.13
GCC 4.5.0: libstdc++.so.6.0.14
GCC 4.6.0: libstdc++.so.6.0.15
GCC 4.6.1: libstdc++.so.6.0.16
GCC 4.7.0: libstdc++.so.6.0.17
GCC 4.8.0: libstdc++.so.6.0.18
GCC 4.8.3: libstdc++.so.6.0.19
GCC 4.9.0: libstdc++.so.6.0.20
+
GCC 3.0.0: libstdc++.so.3.0.0
GCC 3.0.1: libstdc++.so.3.0.1
GCC 3.0.2: libstdc++.so.3.0.2
GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)
GCC 3.0.4: libstdc++.so.3.0.4
GCC 3.1.0: libstdc++.so.4.0.0 (Incompatible with previous)
GCC 3.1.1: libstdc++.so.4.0.1
GCC 3.2.0: libstdc++.so.5.0.0 (Incompatible with previous)
GCC 3.2.1: libstdc++.so.5.0.1
GCC 3.2.2: libstdc++.so.5.0.2
GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)
GCC 3.3.0: libstdc++.so.5.0.4
GCC 3.3.1: libstdc++.so.5.0.5
GCC 3.4.0: libstdc++.so.6.0.0 (Incompatible with previous)
GCC 3.4.1: libstdc++.so.6.0.1
GCC 3.4.2: libstdc++.so.6.0.2
GCC 3.4.3: libstdc++.so.6.0.3
GCC 4.0.0: libstdc++.so.6.0.4
GCC 4.0.1: libstdc++.so.6.0.5
GCC 4.0.2: libstdc++.so.6.0.6
GCC 4.0.3: libstdc++.so.6.0.7
GCC 4.1.0: libstdc++.so.6.0.7
GCC 4.1.1: libstdc++.so.6.0.8
GCC 4.2.0: libstdc++.so.6.0.9
GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)
GCC 4.2.2: libstdc++.so.6.0.9
GCC 4.3.0: libstdc++.so.6.0.10
GCC 4.4.0: libstdc++.so.6.0.11
GCC 4.4.1: libstdc++.so.6.0.12
GCC 4.4.2: libstdc++.so.6.0.13
GCC 4.5.0: libstdc++.so.6.0.14
GCC 4.6.0: libstdc++.so.6.0.15
GCC 4.6.1: libstdc++.so.6.0.16
GCC 4.7.0: libstdc++.so.6.0.17
GCC 4.8.0: libstdc++.so.6.0.18
GCC 4.8.3: libstdc++.so.6.0.19
GCC 4.9.0: libstdc++.so.6.0.20
GCC 5.1.0: libstdc++.so.6.0.21
Note 1: Error should be libstdc++.so.3.0.3.
Note 2: Not strictly required. @@ -129,7 +129,7 @@ compatible. GLIBCPP_3.2 for symbols that were introduced in the GCC 3.2.0 release.) If a particular release is not listed, it has the same version labels as the preceding release. -
GCC 3.0.0: (Error, not versioned)
GCC 3.0.1: (Error, not versioned)
GCC 3.0.2: (Error, not versioned)
GCC 3.0.3: (Error, not versioned)
GCC 3.0.4: (Error, not versioned)
GCC 3.1.0: GLIBCPP_3.1, CXXABI_1
GCC 3.1.1: GLIBCPP_3.1, CXXABI_1
GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2
GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2
GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2
GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2
GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1
GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1
GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1
GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1
GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3
GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3
GCC 3.4.2: GLIBCXX_3.4.2
GCC 3.4.3: GLIBCXX_3.4.3
GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1
GCC 4.0.1: GLIBCXX_3.4.5
GCC 4.0.2: GLIBCXX_3.4.6
GCC 4.0.3: GLIBCXX_3.4.7
GCC 4.1.1: GLIBCXX_3.4.8
GCC 4.2.0: GLIBCXX_3.4.9
GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2
GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3
GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3
GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3
GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4
GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5
GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5
GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6
GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7
GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7
GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8
Incremental bumping of a compiler pre-defined macro, +
GCC 3.0.0: (Error, not versioned)
GCC 3.0.1: (Error, not versioned)
GCC 3.0.2: (Error, not versioned)
GCC 3.0.3: (Error, not versioned)
GCC 3.0.4: (Error, not versioned)
GCC 3.1.0: GLIBCPP_3.1, CXXABI_1
GCC 3.1.1: GLIBCPP_3.1, CXXABI_1
GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2
GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2
GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2
GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2
GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1
GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1
GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1
GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1
GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3
GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3
GCC 3.4.2: GLIBCXX_3.4.2
GCC 3.4.3: GLIBCXX_3.4.3
GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1
GCC 4.0.1: GLIBCXX_3.4.5
GCC 4.0.2: GLIBCXX_3.4.6
GCC 4.0.3: GLIBCXX_3.4.7
GCC 4.1.1: GLIBCXX_3.4.8
GCC 4.2.0: GLIBCXX_3.4.9
GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2
GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3
GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3
GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3
GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4
GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5
GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5
GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6
GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7
GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7
GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8
GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9
Incremental bumping of a compiler pre-defined macro, __GXX_ABI_VERSION. This macro is defined as the version of the compiler v3 ABI, with g++ 3.0 being version 100. This macro will be automatically defined whenever g++ is used (the curious can @@ -184,7 +184,7 @@ compatible. file's macro GLIBCXX_CONFIGURE (GLIBCPP_CONFIGURE before GCC 3.4.0).
C++ includes are versioned as follows: -
GCC 3.0.0: include/g++-v3
GCC 3.0.1: include/g++-v3
GCC 3.0.2: include/g++-v3
GCC 3.0.3: include/g++-v3
GCC 3.0.4: include/g++-v3
GCC 3.1.0: include/g++-v3
GCC 3.1.1: include/c++/3.1.1
GCC 3.2.0: include/c++/3.2
GCC 3.2.1: include/c++/3.2.1
GCC 3.2.2: include/c++/3.2.2
GCC 3.2.3: include/c++/3.2.3
GCC 3.3.0: include/c++/3.3
GCC 3.3.1: include/c++/3.3.1
GCC 3.3.2: include/c++/3.3.2
GCC 3.3.3: include/c++/3.3.3
GCC 3.4.x: include/c++/3.4.x
GCC 4.x.y: include/c++/4.x.y
+
GCC 3.0.0: include/g++-v3
GCC 3.0.1: include/g++-v3
GCC 3.0.2: include/g++-v3
GCC 3.0.3: include/g++-v3
GCC 3.0.4: include/g++-v3
GCC 3.1.0: include/g++-v3
GCC 3.1.1: include/c++/3.1.1
GCC 3.2.0: include/c++/3.2
GCC 3.2.1: include/c++/3.2.1
GCC 3.2.2: include/c++/3.2.2
GCC 3.2.3: include/c++/3.2.3
GCC 3.3.0: include/c++/3.3
GCC 3.3.1: include/c++/3.3.1
GCC 3.3.2: include/c++/3.3.2
GCC 3.3.3: include/c++/3.3.3
GCC 3.4.x: include/c++/3.4.x
GCC 4.x.y: include/c++/4.x.y
GCC 5.x.0: include/c++/5.x.0
Taken together, these techniques can accurately specify interface
and implementation changes in the GNU C++ tools themselves. Used
properly, they allow both the GNU C++ tools implementation, and
diff --git a/libstdc++-v3/doc/xml/manual/abi.xml b/libstdc++-v3/doc/xml/manual/abi.xml
index 86c591d6ece..a2ed57b3f69 100644
--- a/libstdc++-v3/doc/xml/manual/abi.xml
+++ b/libstdc++-v3/doc/xml/manual/abi.xml
@@ -264,6 +264,7 @@ compatible.