diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/acinclude.m4 | 2 | ||||
-rwxr-xr-x | libstdc++-v3/configure | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/atomicity.h | 10 |
4 files changed, 20 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 8fe4374..705b2ca 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2006-08-31 Benjamin Kosnik <bkoz@redhat.com> + + PR libstdc++/28671 continued + * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't use + CXXFLAGS when checking for atomic builtins. + * configure: Regenerate. + * include/bits/atomicity.h: Revert. + 2006-08-31 Richard Guenther <rguenther@suse.de> * include/ext/mt_allocator.h: Remove volatile qualifiers diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index a904427..8fe294d 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -2007,7 +2007,7 @@ int main() } EOF old_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -S" + CXXFLAGS=-S if AC_TRY_EVAL(ac_compile); then if grep __sync_fetch_and_add conftest.s >/dev/null 2>&1 ; then enable_atomic_builtins=no diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index cdabc3b..0050af3 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -8025,7 +8025,7 @@ int main() } EOF old_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -S" + CXXFLAGS=-S if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? diff --git a/libstdc++-v3/include/bits/atomicity.h b/libstdc++-v3/include/bits/atomicity.h index 75d9893f..79af99e 100644 --- a/libstdc++-v3/include/bits/atomicity.h +++ b/libstdc++-v3/include/bits/atomicity.h @@ -41,6 +41,15 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) +#ifdef _GLIBCXX_ATOMIC_BUILTINS + static inline _Atomic_word + __exchange_and_add(volatile _Atomic_word* __mem, int __val) + { return __sync_fetch_and_add(__mem, __val); } + + static inline void + __atomic_add(volatile _Atomic_word* __mem, int __val) + { __sync_fetch_and_add(__mem, __val); } +#else _Atomic_word __attribute__ ((__unused__)) __exchange_and_add(volatile _Atomic_word* __mem, int __val); @@ -48,6 +57,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) void __attribute__ ((__unused__)) __atomic_add(volatile _Atomic_word* __mem, int __val); +#endif static inline _Atomic_word __exchange_and_add_single(_Atomic_word* __mem, int __val) |