diff options
author | Paolo Carlini <pcarlini@suse.de> | 2006-11-11 17:32:12 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2006-11-11 17:32:12 +0000 |
commit | eebbe2c70e1dc028b3d8a858397e923073a0abb7 (patch) | |
tree | d2e8480331466efe424bf65b11128513e9df650a /libstdc++-v3/config | |
parent | bc0a33d315e597f6d5c07a8a0b071de91d6aa20b (diff) | |
download | gcc-eebbe2c70e1dc028b3d8a858397e923073a0abb7.zip gcc-eebbe2c70e1dc028b3d8a858397e923073a0abb7.tar.gz gcc-eebbe2c70e1dc028b3d8a858397e923073a0abb7.tar.bz2 |
re PR libstdc++/29496 (_M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode)
2006-11-11 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/29496
* include/debug/safe_base.h (_Safe_sequence_base::_M_get_mutex,
_Safe_iterator_base::_M_get_mutex, _M_attach_single, _M_detach_single):
New.
* src/debug.cc: Define the latter.
(_Safe_sequence_base::_M_detach_all, _M_detach_singular,
_M_revalidate_singular, _M_swap): Use the mutex.
(_Safe_iterator_base::_M_attach, _M_detach): Adjust, forward to the
*_single version.
* include/debug/safe_iterator.h (_Safe_iterator<>::_M_attach_single,
_M_invalidate_single): New.
* include/debug/safe_iterator.tcc: Define.
(_Safe_iterator<>::_M_invalidate): Adjust, forward to
_M_invalidate_single.
* include/debug/safe_sequence.h (_Safe_sequence<>::_M_invalidate_if,
_M_transfer_iter): Use the mutex, adjust, forward to the *_single
versions of _M_invalidate and _M_attach.
* config/abi/pre/gnu.ver (_Safe_sequence_base::_M_get_mutex,
_Safe_iterator_base::_M_get_mutex, _M_attach_single, _M_detach_single):
Add @GLIBCXX_3.4.10; adjust.
* configure.ac (libtool_VERSION): To 6:10:0.
* testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.10.
* configure: Regenerate.
From-SVN: r118701
Diffstat (limited to 'libstdc++-v3/config')
-rw-r--r-- | libstdc++-v3/config/abi/pre/gnu.ver | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index dd6854c..327222d 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -120,13 +120,21 @@ GLIBCXX_3.4 { std::__moneypunct_cache*; std::__numpunct_cache*; std::__timepunct_cache*; - __gnu_debug::_Safe_iterator_base*; - __gnu_debug::_Safe_sequence_base*; __gnu_debug::_Error_formatter* }; # Names not in an 'extern' block are mangled names. + # __gnu_debug::_Safe_sequence_base and _Safe_iterator_base + _ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv; + _ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv; + _ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv; + _ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_; + _ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb; + _ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv; + _ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv; + _ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_; + # std::string _ZNSsC*; _ZNSsD*; @@ -662,8 +670,17 @@ GLIBCXX_3.4.9 { _ZNSo9_M_insertEPKc[il]; _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertEPKw[il]; + } GLIBCXX_3.4.8; +GLIBCXX_3.4.10 { + + _ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv; + _ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb; + _ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv; + _ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv; + +} GLIBCXX_3.4.9; # Symbols in the support library (libsupc++) have their own tag. CXXABI_1.3 { |