gcc/libstdc++-v3/libsupc++
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
..
cxxabi.h doxygroups.cc: Add std::tr1 namespace. 2004-11-24 04:11:23 +00:00
del_op.cc c++config: Spacing. 2004-11-03 04:07:22 +00:00
del_opnt.cc c++config: Spacing. 2004-11-03 04:07:22 +00:00
del_opv.cc c++config: Spacing. 2004-11-03 04:07:22 +00:00
del_opvnt.cc c++config: Spacing. 2004-11-03 04:07:22 +00:00
eh_alloc.cc
eh_aux_runtime.cc
eh_catch.cc
eh_exception.cc
eh_globals.cc re PR libstdc++/18185 ([3.4 only] Unhandled exceptions leak) 2004-11-01 22:47:33 +00:00
eh_personality.cc
eh_term_handler.cc
eh_terminate.cc
eh_throw.cc
eh_type.cc
eh_unex_handler.cc
exception
exception_defines.h
guard.cc Add memory barriers to the double-checked locking used for static initialization. 2004-12-27 23:36:54 -05:00
Makefile.am
Makefile.in Makefile.in, aclocal.m4: Regenerate with automake 1.9.3. 2004-11-24 21:12:26 +00:00
new
new_handler.cc
new_op.cc c++config: Spacing. 2004-11-03 04:07:22 +00:00
new_opnt.cc c++config: Spacing. 2004-11-03 04:07:22 +00:00
new_opv.cc c++config: Spacing. 2004-11-03 04:07:22 +00:00
new_opvnt.cc c++config: Spacing. 2004-11-03 04:07:22 +00:00
pure.cc
tinfo2.cc
tinfo.cc
tinfo.h
typeinfo bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define. 2004-09-03 00:43:59 +00:00
unwind-cxx.h
vec.cc cxxabi_tweaks.h (__cxa_cdtor_return_type): Define. 2004-09-16 03:41:19 +00:00
vterminate.cc