diff options
author | Jonathan Wakely <jwakely.gcc@gmail.com> | 2012-02-07 09:19:27 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2012-02-07 09:19:27 +0000 |
commit | b59cbd503473a38ddc09ed69f36ff534eaa88d11 (patch) | |
tree | b3f505dfbd64bd876c4195d271a4aaff77b5422a /libstdc++-v3 | |
parent | 38cbc63a76d7502c58c82402d6227ba78f5e2dc0 (diff) | |
download | gcc-b59cbd503473a38ddc09ed69f36ff534eaa88d11.zip gcc-b59cbd503473a38ddc09ed69f36ff534eaa88d11.tar.gz gcc-b59cbd503473a38ddc09ed69f36ff534eaa88d11.tar.bz2 |
re PR libstdc++/51296 (Several 30_threads tests FAIL on Tru64 UNIX)
libgcc/
PR libstdc++/51296
PR libstdc++/51906
* gthr-posix.h: Allow static initializer macros to be disabled.
(__gthrw_pthread_cond_init): Define weak reference unconditionally.
libstdc++-v3/
PR libstdc++/51296
* include/std/mutex (__mutex_base::~__mutex_base): Declare noexcept.
* src/c++11/condition_variable.cc (condition_variable): Use macro for
initializer function.
PR libstdc++/51906
* config/os/bsd/darwin/os_defines.h: Disable static initializer for
recursive mutexes.
From-SVN: r183955
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 11 | ||||
-rw-r--r-- | libstdc++-v3/config/os/bsd/darwin/os_defines.h | 3 | ||||
-rw-r--r-- | libstdc++-v3/include/std/mutex | 2 | ||||
-rw-r--r-- | libstdc++-v3/src/c++11/condition_variable.cc | 5 |
4 files changed, 16 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 434fd98..b708ae0 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,14 @@ +2012-02-07 Jonathan Wakely <jwakely.gcc@gmail.com> + + PR libstdc++/51296 + * include/std/mutex (__mutex_base::~__mutex_base): Declare noexcept. + * src/c++11/condition_variable.cc (condition_variable): Use macro for + initializer function. + + PR libstdc++/51906 + * config/os/bsd/darwin/os_defines.h: Disable static initializer for + recursive mutexes. + 2012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com> PR libstdc++/52128 diff --git a/libstdc++-v3/config/os/bsd/darwin/os_defines.h b/libstdc++-v3/config/os/bsd/darwin/os_defines.h index ccefeaf..421478d 100644 --- a/libstdc++-v3/config/os/bsd/darwin/os_defines.h +++ b/libstdc++-v3/config/os/bsd/darwin/os_defines.h @@ -39,4 +39,7 @@ // -flat_namespace to work around the way that it doesn't. #define _GLIBCXX_WEAK_DEFINITION __attribute__ ((weak)) +// Static initializer macro is buggy in darwin, see libstdc++/51906 +#define _GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC + #endif diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex index 69e26e6..a7ebace 100644 --- a/libstdc++-v3/include/std/mutex +++ b/libstdc++-v3/include/std/mutex @@ -71,7 +71,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __GTHREAD_MUTEX_INIT_FUNCTION(&_M_mutex); } - ~__mutex_base() { __gthread_mutex_destroy(&_M_mutex); } + ~__mutex_base() noexcept { __gthread_mutex_destroy(&_M_mutex); } #endif __mutex_base(const __mutex_base&) = delete; diff --git a/libstdc++-v3/src/c++11/condition_variable.cc b/libstdc++-v3/src/c++11/condition_variable.cc index 400fcf3..9cd0763 100644 --- a/libstdc++-v3/src/c++11/condition_variable.cc +++ b/libstdc++-v3/src/c++11/condition_variable.cc @@ -36,10 +36,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #else condition_variable::condition_variable() noexcept { - int __e = __gthread_cond_init(&_M_cond, 0); - - if (__e) - __throw_system_error(__e); + __GTHREAD_COND_INIT_FUNCTION(&_M_cond); } condition_variable::~condition_variable() noexcept |