From 6c59ffd1ac3a56fc1819282ce820ec8d95922f38 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Mon, 11 Feb 2013 23:30:10 +0000 Subject: [PATCH] re PR libitm/55693 (libitm.c++/eh-1.C execution test fails on darwin from r193271) /libgcc 2013-02-11 Iain Sandoe Jack Howarth Patrick Marlier PR libitm/55693 * config/darwin-crt-tm.c: Remove dummy functions hack. /gcc 2013-02-11 Iain Sandoe Jack Howarth Patrick Marlier PR libitm/55693 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and define ENDFILE_SPEC as TM_DESTRUCTOR. * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR. /libitm 2013-02-11 Iain Sandoe Jack Howarth Patrick Marlier PR libitm/55693 * alloc_cpp.cc: Enable function declarations on darwin. * eh_cpp.cc: Likewise. Co-Authored-By: Jack Howarth Co-Authored-By: Patrick Marlier From-SVN: r195960 --- gcc/ChangeLog | 9 +++++++++ gcc/config/darwin.h | 3 ++- gcc/config/i386/darwin.h | 3 +-- libgcc/ChangeLog | 7 +++++++ libgcc/config/darwin-crt-tm.c | 43 ------------------------------------------- libitm/ChangeLog | 8 ++++++++ libitm/alloc_cpp.cc | 2 +- libitm/eh_cpp.cc | 2 +- 8 files changed, 29 insertions(+), 48 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1337da8..b99a9e5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2013-02-11 Iain Sandoe + Jack Howarth + Patrick Marlier + + PR libitm/55693 + * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and + define ENDFILE_SPEC as TM_DESTRUCTOR. + * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR. + 2013-02-11 Alexander Potapenko Jack Howarth Jakub Jelinek diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index 6964518..82a42c8 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -363,7 +363,8 @@ extern GTY(()) int darwin_ms_struct; %{shared-libgcc:%:version-compare(< 10.5 mmacosx-version-min= crt3.o%s)}" /* We want a destructor last in the list. */ -#define ENDFILE_SPEC "%{fgnu-tm: -lcrttme.o}" +#define TM_DESTRUCTOR "%{fgnu-tm: -lcrttme.o}" +#define ENDFILE_SPEC TM_DESTRUCTOR #define DARWIN_EXTRA_SPECS \ { "darwin_crt1", DARWIN_CRT1_SPEC }, \ diff --git a/gcc/config/i386/darwin.h b/gcc/config/i386/darwin.h index c2e9f20..594ec99 100644 --- a/gcc/config/i386/darwin.h +++ b/gcc/config/i386/darwin.h @@ -131,8 +131,7 @@ extern int darwin_emit_branch_islands; "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ %{mpc32:crtprec32.o%s} \ %{mpc64:crtprec64.o%s} \ - %{mpc80:crtprec80.o%s} \ - %{fgnu-tm: -lcrttme.o}" + %{mpc80:crtprec80.o%s}" TM_DESTRUCTOR #undef SUBTARGET_EXTRA_SPECS #define SUBTARGET_EXTRA_SPECS \ diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 13fc01d..0eadc32 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,10 @@ +2013-02-11 Iain Sandoe + Jack Howarth + Patrick Marlier + + PR libitm/55693 + * config/darwin-crt-tm.c: Remove dummy functions hack. + 2013-02-08 Georg-Johann Lay PR target/54222 diff --git a/libgcc/config/darwin-crt-tm.c b/libgcc/config/darwin-crt-tm.c index 41734a8..4f4d444 100644 --- a/libgcc/config/darwin-crt-tm.c +++ b/libgcc/config/darwin-crt-tm.c @@ -39,7 +39,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #endif #define WEAK __attribute__((weak)) -#define UNUSED __attribute__((unused)) extern void _ITM_registerTMCloneTable (void *, size_t) WEAK; extern void _ITM_deregisterTMCloneTable (void *) WEAK; @@ -103,46 +102,4 @@ void __doTMdeRegistrations (void) _ITM_deregisterTMCloneTable (tmct); } -/* Provide dummy functions to satisfy linkage for versions of the Darwin - tool-chain that that can't handle undefined weak refs at the link stage. - ??? Define these dummy functions only when !HAVE_ELF_STYLE_WEAKREF. */ - -extern void *__cxa_allocate_exception (size_t) WEAK; -extern void __cxa_throw (void *, void *, void *) WEAK; -extern void *__cxa_begin_catch (void *) WEAK; -extern void *__cxa_end_catch (void) WEAK; -extern void __cxa_tm_cleanup (void *, void *, unsigned int) WEAK; - -extern void *_ZnwX (size_t) WEAK; -extern void _ZdlPv (void *) WEAK; -extern void *_ZnaX (size_t) WEAK; -extern void _ZdaPv (void *) WEAK; - -typedef const struct nothrow_t { } *c_nothrow_p; - -extern void *_ZnwXRKSt9nothrow_t (size_t, c_nothrow_p) WEAK; -extern void _ZdlPvRKSt9nothrow_t (void *, c_nothrow_p) WEAK; -extern void *_ZnaXRKSt9nothrow_t (size_t, c_nothrow_p) WEAK; -extern void _ZdaPvRKSt9nothrow_t (void *, c_nothrow_p) WEAK; - -void *__cxa_allocate_exception (size_t s UNUSED) { return NULL; } -void __cxa_throw (void * a UNUSED, void * b UNUSED, void * c UNUSED) - { return; } -void *__cxa_begin_catch (void * a UNUSED) { return NULL; } -void *__cxa_end_catch (void) { return NULL; } -void __cxa_tm_cleanup (void * a UNUSED, void * b UNUSED, unsigned int c UNUSED) - { return; } - -void *_ZnwX (size_t s UNUSED) { return NULL; } -void _ZdlPv (void * a UNUSED) { return; } -void *_ZnaX (size_t s UNUSED) { return NULL; } -void _ZdaPv (void * a UNUSED) { return; } - -void *_ZnwXRKSt9nothrow_t (size_t s UNUSED, c_nothrow_p b UNUSED) - { return NULL; } -void _ZdlPvRKSt9nothrow_t (void * a UNUSED, c_nothrow_p b UNUSED) { return; } -void *_ZnaXRKSt9nothrow_t (size_t s UNUSED, c_nothrow_p b UNUSED) - { return NULL; } -void _ZdaPvRKSt9nothrow_t (void * a UNUSED, c_nothrow_p b UNUSED) { return; } - #endif diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 56423c3..a0e3c52 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,11 @@ +2013-02-11 Iain Sandoe + Jack Howarth + Patrick Marlier + + PR libitm/55693 + * alloc_cpp.cc: Enable function declarations on darwin. + * eh_cpp.cc: Likewise. + 2013-02-03 Richard Sandiford Update copyright years. diff --git a/libitm/alloc_cpp.cc b/libitm/alloc_cpp.cc index 654b942..a65d01d 100644 --- a/libitm/alloc_cpp.cc +++ b/libitm/alloc_cpp.cc @@ -60,7 +60,7 @@ extern void _ZdlPvRKSt9nothrow_t (void *, c_nothrow_p) __attribute__((weak)); extern void *_ZnaXRKSt9nothrow_t (size_t, c_nothrow_p) __attribute__((weak)); extern void _ZdaPvRKSt9nothrow_t (void *, c_nothrow_p) __attribute__((weak)); -#if !defined (HAVE_ELF_STYLE_WEAKREF) && !defined (__MACH__) +#if !defined (HAVE_ELF_STYLE_WEAKREF) void *_ZnwX (size_t) { return NULL; } void _ZdlPv (void *) { return; } void *_ZnaX (size_t) { return NULL; } diff --git a/libitm/eh_cpp.cc b/libitm/eh_cpp.cc index 00eac5f..929053d 100644 --- a/libitm/eh_cpp.cc +++ b/libitm/eh_cpp.cc @@ -39,7 +39,7 @@ extern void *__cxa_begin_catch (void *) WEAK; extern void __cxa_end_catch (void) WEAK; extern void __cxa_tm_cleanup (void *, void *, unsigned int) WEAK; -#if !defined (HAVE_ELF_STYLE_WEAKREF) && !defined (__MACH__) +#if !defined (HAVE_ELF_STYLE_WEAKREF) void *__cxa_allocate_exception (size_t) { return NULL; } void __cxa_throw (void *, void *, void *) { return; } void *__cxa_begin_catch (void *) { return NULL; } -- 2.7.4