From 8377e5e5461f7370489eb849e8af4cde4a75831f Mon Sep 17 00:00:00 2001
From: Richard Henderson <rth@redhat.com>
Date: Mon, 9 Jan 2012 19:16:07 -0800
Subject: [PATCH] libitm_i.h (_Unwind_DeleteException): Declare weak.

	* libitm_i.h (_Unwind_DeleteException): Declare weak.
	* eh_cpp.cc (_Unwind_DeleteException): Define for
	!HAVE_ELF_STYLE_WEAKREF.

From-SVN: r183049
---
 libitm/ChangeLog  | 6 ++++++
 libitm/eh_cpp.cc  | 3 ++-
 libitm/libitm_i.h | 4 ++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/libitm/ChangeLog b/libitm/ChangeLog
index 0931fcda5c8d..fa12e8c0fa62 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 6f302cdc4aee..352a313bee68 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 f922d22d89f1..c00389d51150 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 {
-- 
GitLab