libstdc++: Ensure C++20 std::stringstream definitions use correct ABI
authorJonathan Wakely <jwakely@redhat.com>
Tue, 30 Nov 2021 22:04:49 +0000 (22:04 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Tue, 30 Nov 2021 23:10:03 +0000 (23:10 +0000)
The definitions of the new C++20 members of std::stringstream etc are
missing when --with-default-libstdcxx-abi=gcc4-compatible is used,
because all the explicit instantiations in src/c++20/sstream-inst.cc are
skipped.

This ensures the contents of that file are compiled with the new ABI, so
the same set of symbols are exported regardless of which ABI is active
by default.

libstdc++-v3/ChangeLog:

* src/c++20/sstream-inst.cc (_GLIBCXX_USE_CXX11_ABI): Define to
select new ABI.

libstdc++-v3/src/c++20/sstream-inst.cc

index b3fbd6e..55d1fe5 100644 (file)
@@ -26,7 +26,9 @@
 // ISO C++ 14882:
 //
 
-// Instantiations in this file are only for the new SSO std::string ABI
+// Instantiations in this file are only for the new SSO std::string ABI.
+#define _GLIBCXX_USE_CXX11_ABI 1
+
 #include <sstream>
 
 #if _GLIBCXX_USE_CXX11_ABI