On 26/10/20 21:09 +0000, Jonathan Wakely wrote:
On 26/10/20 13:47 -0700, Thomas Rodgers wrote:
From: Thomas Rodgers <trodg...@redhat.com>
New ctors and ::view() accessor for -
* basic_stingbuf
* basic_istringstream
* basic_ostringstream
* basic_stringstreamm
New ::get_allocator() accessor for basic_stringbuf.
libstdc++-v3/ChangeLog:
* acinclude.m4 (glibcxx_SUBDIRS): Add src/c++20.
* config/abi/pre/gnu.ver: Update GLIBCXX_3.4.29 for the addition of -
basic_stringbuf::basic_stringbuf(allocator const&),
basic_stringbuf::basic_stringbuf(openmode, allocator const&),
basic_stringbuf::basic_stringbuf(basic_string&&, openmode),
basic_stringbuf::basic_stringbuf(basic_stringbuf&&, allocator const&),
basic_stringbuf::get_allocator(),
basic_stringbuf::view(),
basic_istringstream::basic_istringstream(basic_string&&, openmode),
basic_istringstream::basic_istringstream(openmode, allocator const&),
basic_istringstream::view(),
basic_ostringstream::basic_ostringstream(basic_string&&, openmode),
basic_ostringstream::basic_ostringstream(openmode, allocator const&),
basic_ostringstream::view(),
basic_stringstream::basic_stringstream(basic_string&&, openmode),
basic_stringstream::basic_stringstream(openmode, allocator const&),
basic_stringstream::view().
As discussed on IRC< please don't name every one of these functions
for the linker script changes, it's just redundant noise. They're
already listed below in the include/std/sstream changes.
Look at past changelog entries for the gnu.ver file.
* configure: Regenerate.
* include/std/sstream:
(basic_stringbuf::basic_stringbuf(allocator const&)): New constructor.
(basic_stringbuf::basic_stringbuf(openmode, allocator const&)):
Likewise.
(basic_stringbuf::basic_stringbuf(basic_string&&, openmode)): Likewise.
(basic_stringbuf::basic_stringbuf(basic_stringbuf&&, allocator
const&)): Likewise.
New line before the Likewise.
There are a few formatting changes mentioned below. OK for trunk with
those changes. Thanks. Go ahead and commit the <syncstream> patch
after this one too.
The patch that was committed broke the linker script. The attached
patch restores the piece that got lost, and removes the duplicate
patterns added for the new symbols. Pushed to trunk.
This fixes all the failures related to exception_ptr. I'm still seeing
four new failures which weren't there before:
FAIL: 24_iterators/istream_iterator/sentinel.cc execution test
FAIL: 24_iterators/istreambuf_iterator/sentinel.cc execution test
FAIL: 27_io/basic_istream/extractors_character/char/lwg2499.cc execution test
FAIL: std/ranges/istream_view.cc execution test
I'm not sure what's happening there. It looks like some symbols I
added recently are not present now. I'm investigating.
Also, it looks like the get_allocator() members of the streams are not
exported (only basic_stringbuf::get_allocator() is).
commit f4f9364d2074e027490c1b08956ac1cbd9617575
Author: Jonathan Wakely <jwak...@redhat.com>
Date: Wed Oct 28 23:10:21 2020
libstdc++: Fix linker script
libstdc++-v3/ChangeLog:
* config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Remove duplicate
patterns.
(CXXABI_1.3.13): Restore missing piece.
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index 2648c813616..80994b203df 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -2335,51 +2335,6 @@ GLIBCXX_3.4.29 {
# std::__throw_bad_array_new_length()
_ZSt28__throw_bad_array_new_lengthv;
- # basic_stringbuf::basic_stringbuf(allocator const&)
- _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EEC1ERKS3_;
-
- # basic_stringbuf::basic_stringbuf(ios_base::openmode, allocator const&)
- _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EEC1ESt13_Ios_OpenmodeRKS3;
-
- # basic_stringbuf::basic_stringbuf(basic_string&&, ios_base::openmode)
- _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EEC1EONS_12basic_stringI[cw]S2_S3_EESt13_Ios_Openmode;
-
- # basic_stringbuf::basic_stringbuf(basic_stringbuf&&, allocator const&)
- _ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaIcEEC1EOS4_RKS3_;
-
- # basic_stringbuf::get_allocator()
- _ZNKSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE13get_allocatorEv;
-
- # basic_stringbuf::view()
- _ZNKSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE4viewEv;
-
- # basic_istringstream::basic_istringstream(basic_string&&, ios_base::openmode)
- _ZNSt7__cxx1119basic_istringstreamI[cw]St11char_traitsI[cw]ESaIcEEC1EONS_12basic_stringI[cw]S2_S3_EESt13_Ios_Openmode;
-
- # basic_istringstream::basic_istringstream(ios_base::openmode, allocator const&)
- _ZNSt7__cxx1119basic_istringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EEC1ESt13_Ios_OpenmodeRKS3_;
-
- # basic_istringstream::view()
- _ZNKSt7__cxx1119basic_istringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EE4viewEv;
-
- # basic_ostringstream::basic_ostringstream(basic_string&&, ios_base::openmode)
- _ZNSt7__cxx1119basic_ostringstreamI[cw]St11char_traitsI[cw]ESaIcEEC1EONS_12basic_stringI[cw]S2_S3_EESt13_Ios_Openmode;
-
- # basic_ostringstream::basic_ostringstream(ios_base::openmode, allocator const&)
- _ZNSt7__cxx1119basic_ostringstreamI[cw]St11char_traitsI[cw]ESaIcEEC1ESt13_Ios_OpenmodeRKS3_;
-
- # basic_ostringstream::view()
- _ZNKSt7__cxx1119basic_ostringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EE4viewEv;
-
- # basic_stringstream::basic_stringstream(basic_string&&, ios_base::openmode)
- _ZNSt7__cxx1119basic_stringstreamI[cw]St11char_traitsI[cw]ESaIcEEC1EONS_12basic_stringI[cw]S2_S3_EESt13_Ios_Openmode;
-
- # basic_stringstream::basic_stringstream(ios_base::openmode, allocator const&)
- _ZNSt7__cxx1119basic_stringstreamI[cw]St11char_traitsI[cw]ESaIcEEC1ESt13_Ios_OpenmodeRKS3_;
-
- # basic_stringstream::view()
- _ZNKSt7__cxx1119basic_stringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EE4viewEv;
-
# basic_stringbuf::basic_stringbuf(allocator const&)
_ZNSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKS3_;
@@ -2398,13 +2353,13 @@ GLIBCXX_3.4.29 {
# basic_stringbuf::view()
_ZNKSt7__cxx1115basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE4viewEv;
- # basic_istringstream::basic_istringstream(basic_string&&, ios_base::openmode)
+ # basic_[io]stringstream::basic_[io]stringstream(basic_string&&, ios_base::openmode)
_ZNSt7__cxx1119basic_[io]stringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]EONS_12basic_stringI[cw]S2_S3_EESt13_Ios_Openmode;
# basic_[io]stringstream::basic_[io]stringstream(ios_base::openmode, allocator const&)
_ZNSt7__cxx1119basic_[io]stringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ESt13_Ios_OpenmodeRKS3_;
- # basic_istringstream::view()
+ # basic_[io]stringstream::view()
_ZNKSt7__cxx1119basic_[io]stringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EE4viewEv;
# basic_stringstream::basic_stringstream(basic_string&&, ios_base::openmode)
@@ -2716,6 +2671,15 @@ CXXABI_1.3.12 {
} CXXABI_1.3.11;
+CXXABI_1.3.13 {
+
+ # std::exception_ptr::_M_addref()
+ _ZNSt15__exception_ptr13exception_ptr9_M_addrefEv;
+ # std::exception_ptr::_M_release()
+ _ZNSt15__exception_ptr13exception_ptr10_M_releaseEv;
+
+} CXXABI_1.3.12;
+
# Symbols in the support library (libsupc++) supporting transactional memory.
CXXABI_TM_1 {