On 12/08/19 17:41 +0100, Jonathan Wakely wrote:
The src/c++17/string-inst.cc file needs to override the default string
ABI so that it still contains the expected symbols even when the library
is configured with --with-default-libstdcxx-abi=gcc4-compatible.
PR libstdc++/90361
* src/c++17/string-inst.cc: Use _GLIBCXX_USE_CXX11_ABI=1 by default.
Tested x86_64-linux, committed to trunk.
This documents the bug in the gcc-9 release notes.
Committed to CVS.
Index: htdocs/gcc-9/changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-9/changes.html,v
retrieving revision 1.74
diff -u -r1.74 changes.html
--- htdocs/gcc-9/changes.html 12 Aug 2019 07:31:04 -0000 1.74
+++ htdocs/gcc-9/changes.html 14 Aug 2019 11:17:34 -0000
@@ -70,8 +70,18 @@
definition of <code>std::rotate</code> is not used.
</li>
<li>
- The automatic template instantiation at link time (<a href="https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-frepo"><code>-frepo</code></a>) has been deprecated and
- will be removed in a future release.
+ The automatic template instantiation at link time
+ (<a href="https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-frepo"><code>-frepo</code></a>)
+ has been deprecated and will be removed in a future release.
+ </li>
+ <li>
+ The <code>--with-default-libstdcxx-abi=gcc4-compatible</code> configure
+ option is broken in the 9.1 and 9.2 releases, producing a shared library
+ with missing symbols
+ (see <a href="https://gcc.gnu.org/PR90361">Bug 90361</a>).
+ As a workaround, configure without that option and build GCC as normal,
+ then edit the installed <code><bits/c++config.h></code> headers
+ to define the <code>_GLIBCXX_USE_CXX11_ABI</code> macro to <code>0</code>.
</li>
</ul>