diff options
-rw-r--r-- | libitm/ChangeLog | 6 | ||||
-rw-r--r-- | libitm/eh_cpp.cc | 3 | ||||
-rw-r--r-- | libitm/libitm_i.h | 4 |
3 files changed, 12 insertions, 1 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 0931fcda5c8..fa12e8c0fa6 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,9 @@ +2012-01-10 Richard Henderson <rth@redhat.com> + + * libitm_i.h (_Unwind_DeleteException): Declare weak. + * eh_cpp.cc (_Unwind_DeleteException): Define for + !HAVE_ELF_STYLE_WEAKREF. + 2012-01-08 Torvald Riegel <triegel@redhat.com> * local.cc (GTM_LB): Use GTM::gtm_undolog. diff --git a/libitm/eh_cpp.cc b/libitm/eh_cpp.cc index 6f302cdc4ae..352a313bee6 100644 --- a/libitm/eh_cpp.cc +++ b/libitm/eh_cpp.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2009, 2011 Free Software Foundation, Inc. +/* Copyright (C) 2009, 2011, 2012 Free Software Foundation, Inc. Contributed by Richard Henderson <rth@redhat.com>. This file is part of the GNU Transactional Memory Library (libitm). @@ -45,6 +45,7 @@ void __cxa_throw (void *, void *, void *) { return; } void *__cxa_begin_catch (void *) { return NULL; } void *__cxa_end_catch (void) { return NULL; } void __cxa_tm_cleanup (void *, void *, unsigned int) { return; } +void _Unwind_DeleteException (_Unwind_Exception *) { return; } #endif /* HAVE_ELF_STYLE_WEAKREF */ } diff --git a/libitm/libitm_i.h b/libitm/libitm_i.h index f922d22d89f..c00389d5115 100644 --- a/libitm/libitm_i.h +++ b/libitm/libitm_i.h @@ -39,6 +39,10 @@ #include "local_type_traits" #include "local_atomic" +/* Don't require libgcc_s.so for exceptions. */ +extern void _Unwind_DeleteException (_Unwind_Exception*) __attribute__((weak)); + + #include "common.h" namespace GTM HIDDEN { |