summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libitm/ChangeLog6
-rw-r--r--libitm/eh_cpp.cc3
-rw-r--r--libitm/libitm_i.h4
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 {