diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-12-22 08:23:08 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-12-22 08:23:08 +0000 |
commit | a72916cb927e0ee9387924152cc0b2fc96ff2f7f (patch) | |
tree | 7119ede6221db6193bea2b4b190f55f725e8e9e7 | |
parent | 4a8fac65eddc8a99b39f4ab0cf9e9517e47367dc (diff) | |
download | gcc-a72916cb927e0ee9387924152cc0b2fc96ff2f7f.tar.gz |
2009-12-21 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/42456
* src/atomic.cc: Move _GLIBCXX_ASM_SYMVER define within guard.
* config/abi/pre/gnu.ver: Add non-volatile exports.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155393 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/config/abi/pre/gnu.ver | 4 | ||||
-rw-r--r-- | libstdc++-v3/src/atomic.cc | 16 |
3 files changed, 19 insertions, 7 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 5c68811e3b9..fca9703309b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,11 @@ 2009-12-21 Benjamin Kosnik <bkoz@redhat.com> + PR libstdc++/42456 + * src/atomic.cc: Move _GLIBCXX_ASM_SYMVER define within guard. + * config/abi/pre/gnu.ver: Add non-volatile exports. + +2009-12-21 Benjamin Kosnik <bkoz@redhat.com> + * scripts/run_doxygen: Update nested namespace exceptions. 2009-12-20 Benjamin Kosnik <bkoz@redhat.com> diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index cbd0596fa9b..2d4b0c3c363 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -1050,6 +1050,10 @@ GLIBCXX_3.4.13 { GLIBCXX_3.4.14 { + # atomic + _ZNSt9__atomic011atomic_flag12test_and_setESt12memory_order; + _ZNSt9__atomic011atomic_flag5clearESt12memory_order; + # future _ZSt15future_category; _ZNSt12future_errorD*; diff --git a/libstdc++-v3/src/atomic.cc b/libstdc++-v3/src/atomic.cc index bff8fa98c64..7ec08c5d7c0 100644 --- a/libstdc++-v3/src/atomic.cc +++ b/libstdc++-v3/src/atomic.cc @@ -78,15 +78,15 @@ namespace std { bool atomic_flag_test_and_set_explicit(__atomic_flag_base* __a, - memory_order __m) throw () + memory_order __m) throw() { atomic_flag* d = static_cast<volatile atomic_flag*>(__a); return d->test_and_set(__m); } void - atomic_flag_clear_explicit(__atomic_flag_base* __a, - memory_order __m) throw () + atomic_flag_clear_explicit(__atomic_flag_base* __a, + memory_order __m) throw() { atomic_flag* d = static_cast<volatile atomic_flag*>(__a); return d->clear(__m); @@ -94,14 +94,14 @@ namespace std void __atomic_flag_wait_explicit(__atomic_flag_base* __a, - memory_order __x) throw () + memory_order __x) throw() { while (atomic_flag_test_and_set_explicit(__a, __x)) { }; } __atomic_flag_base* - __atomic_flag_for_address(const void* __z) throw () + __atomic_flag_for_address(const void* __z) throw() { uintptr_t __u = reinterpret_cast<uintptr_t>(__z); __u += (__u >> 2) + (__u << 4); @@ -126,12 +126,14 @@ namespace std // In the future, GLIBCXX_ABI > 6 should remove all uses of // _GLIBCXX_*_SYMVER macros in this file. +#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ + && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) + #define _GLIBCXX_ASM_SYMVER(cur, old, version) \ asm (".symver " #cur "," #old "@@" #version); -#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ - && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) _GLIBCXX_ASM_SYMVER(_ZNSt9__atomic011atomic_flag5clearESt12memory_order, _ZNVSt9__atomic011atomic_flag5clearESt12memory_order, GLIBCXX_3.4.11) _GLIBCXX_ASM_SYMVER(_ZNSt9__atomic011atomic_flag12test_and_setESt12memory_order, _ZNVSt9__atomic011atomic_flag12test_and_setESt12memory_order, GLIBCXX_3.4.11) + #endif |