gcc/libstdc++-v3/include
Jason Merrill 445cf5eb0d Add memory barriers to the double-checked locking used for static initialization.
libstdc++:
        Add memory barriers to the double-checked locking used for static
        initialization.
        * libsupc++/guard.cc (__test_and_acquire): Define default.
        (_GLIBCXX_GUARD_TEST_AND_ACQUIRE, __set_and_release)
        (_GLIBCXX_GUARD_SET_AND_RELEASE): Likewise.
        (recursion_push, recursion_pop): New abstraction functions.
        (__cxa_guard_acquire): Use _GLIBCXX_GUARD_TEST_AND_ACQUIRE.
        (__cxa_guard_release): Use _GLIBCXX_GUARD_SET_AND_RELEASE.
        * config/cpu/generic/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST): Rename
        from _GLIBCXX_GUARD_ACQUIRE and reverse sense.
        (_GLIBCXX_GUARD_SET): Rename from _GLIBCXX_GUARD_RELEASE.
        * config/cpu/arm/cxxabi_tweaks.h: Likewise.
        * config/cpu/alpha/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER)
        (_GLIBCXX_WRITE_MEM_BARRIER): Define.
        * config/cpu/powerpc/atomic_word.h: Likewise.
        * config/cpu/sparc/atomic_word.h: Likewise.
        * config/cpu/generic/atomic_word.h: Define them, commented out.
        * include/bits/atomicity.h: Define defaults.
        * config/cpu/ia64/atomic_word.h (__test_and_acquire)
        (__set_and_release): New inlines.
        (_GLIBCXX_GUARD_TEST_AND_ACQUIRE): Define.
        (_GLIBCXX_GUARD_SET_AND_RELEASE): Define.

        * libsupc++/guard.cc (acquire_1): Use __builtin_trap instead of
        abort();

gcc:
        * doc/tm.texi (TARGET_RELAXED_ORDERING): Document.
        * target.h (struct gcc_target): Add relaxed_ordering field.
        * target-def.h (TARGET_RELAXED_ORDERING): Define default.
        (TARGET_INITIALIZER): Add it.
        * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Define.
        * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Define.
        * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Define.
        * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define.
        * cp/decl.c (expand_static_init): Don't use shortcut if
        targetm.relaxed_ordering.

From-SVN: r92659
2004-12-27 23:36:54 -05:00
..
backward re PR libstdc++/12854 (libstdc++ vs. -Weffc++) 2004-05-22 23:46:34 +00:00
bits Add memory barriers to the double-checked locking used for static initialization. 2004-12-27 23:36:54 -05:00
c std_cctype.h, [...]: Remove trailing whitespace. 2003-12-09 04:41:52 +01:00
c_compatibility iso646.h, [...]: Remove trailing whitespace. 2003-12-09 04:51:46 +01:00
c_std cmath.tcc (__cmath_power): Revert previous commit: actually the warning is a front-end bug (c++/17120). 2004-08-20 14:56:29 +00:00
debug re PR libstdc++/16813 (compiler error in DEBUG version of range insertion std::map::insert) 2004-07-29 10:52:49 +00:00
ext bitmap_allocator.h: Make doxygen style comments for internal functions and classes. 2004-12-19 11:17:40 +00:00
std doxygroups.cc: Add std::tr1 namespace. 2004-11-24 04:11:23 +00:00
tr1 type_traits: Rework the _DEFINE_SPEC* macros. 2004-12-27 18:51:12 +00:00
Makefile.am type_traits_fwd.h: New, forward declarations. 2004-12-22 18:40:52 +00:00
Makefile.in type_traits_fwd.h: New, forward declarations. 2004-12-22 18:40:52 +00:00
stdc++.h