Commit 6c59ffd1 by Iain Sandoe Committed by Mike Stump

re PR libitm/55693 (libitm.c++/eh-1.C execution test fails on darwin from r193271)

/libgcc
2013-02-11  Iain Sandoe  <iain@codesourcery.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR libitm/55693
	* config/darwin-crt-tm.c: Remove dummy functions hack.

/gcc
2013-02-11  Iain Sandoe  <iain@codesourcery.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	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  <iain@codesourcery.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR libitm/55693
	* alloc_cpp.cc: Enable function declarations on darwin.
	* eh_cpp.cc: Likewise.

Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu>
Co-Authored-By: Patrick Marlier <patrick.marlier@gmail.com>

From-SVN: r195960
parent 53b03cce
2013-02-11 Iain Sandoe <iain@codesourcery.com>
Jack Howarth <howarth@bromo.med.uc.edu>
Patrick Marlier <patrick.marlier@gmail.com>
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 <glider@google.com> 2013-02-11 Alexander Potapenko <glider@google.com>
Jack Howarth <howarth@bromo.med.uc.edu> Jack Howarth <howarth@bromo.med.uc.edu>
Jakub Jelinek <jakub@redhat.com> Jakub Jelinek <jakub@redhat.com>
......
...@@ -363,7 +363,8 @@ extern GTY(()) int darwin_ms_struct; ...@@ -363,7 +363,8 @@ extern GTY(()) int darwin_ms_struct;
%{shared-libgcc:%:version-compare(< 10.5 mmacosx-version-min= crt3.o%s)}" %{shared-libgcc:%:version-compare(< 10.5 mmacosx-version-min= crt3.o%s)}"
/* We want a destructor last in the list. */ /* 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 \ #define DARWIN_EXTRA_SPECS \
{ "darwin_crt1", DARWIN_CRT1_SPEC }, \ { "darwin_crt1", DARWIN_CRT1_SPEC }, \
......
...@@ -131,8 +131,7 @@ extern int darwin_emit_branch_islands; ...@@ -131,8 +131,7 @@ extern int darwin_emit_branch_islands;
"%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
%{mpc32:crtprec32.o%s} \ %{mpc32:crtprec32.o%s} \
%{mpc64:crtprec64.o%s} \ %{mpc64:crtprec64.o%s} \
%{mpc80:crtprec80.o%s} \ %{mpc80:crtprec80.o%s}" TM_DESTRUCTOR
%{fgnu-tm: -lcrttme.o}"
#undef SUBTARGET_EXTRA_SPECS #undef SUBTARGET_EXTRA_SPECS
#define SUBTARGET_EXTRA_SPECS \ #define SUBTARGET_EXTRA_SPECS \
......
2013-02-11 Iain Sandoe <iain@codesourcery.com>
Jack Howarth <howarth@bromo.med.uc.edu>
Patrick Marlier <patrick.marlier@gmail.com>
PR libitm/55693
* config/darwin-crt-tm.c: Remove dummy functions hack.
2013-02-08 Georg-Johann Lay <avr@gjlay.de> 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
PR target/54222 PR target/54222
......
...@@ -39,7 +39,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ...@@ -39,7 +39,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#endif #endif
#define WEAK __attribute__((weak)) #define WEAK __attribute__((weak))
#define UNUSED __attribute__((unused))
extern void _ITM_registerTMCloneTable (void *, size_t) WEAK; extern void _ITM_registerTMCloneTable (void *, size_t) WEAK;
extern void _ITM_deregisterTMCloneTable (void *) WEAK; extern void _ITM_deregisterTMCloneTable (void *) WEAK;
...@@ -103,46 +102,4 @@ void __doTMdeRegistrations (void) ...@@ -103,46 +102,4 @@ void __doTMdeRegistrations (void)
_ITM_deregisterTMCloneTable (tmct); _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 #endif
2013-02-11 Iain Sandoe <iain@codesourcery.com>
Jack Howarth <howarth@bromo.med.uc.edu>
Patrick Marlier <patrick.marlier@gmail.com>
PR libitm/55693
* alloc_cpp.cc: Enable function declarations on darwin.
* eh_cpp.cc: Likewise.
2013-02-03 Richard Sandiford <rdsandiford@googlemail.com> 2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
Update copyright years. Update copyright years.
......
...@@ -60,7 +60,7 @@ extern void _ZdlPvRKSt9nothrow_t (void *, c_nothrow_p) __attribute__((weak)); ...@@ -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 *_ZnaXRKSt9nothrow_t (size_t, c_nothrow_p) __attribute__((weak));
extern void _ZdaPvRKSt9nothrow_t (void *, 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 *_ZnwX (size_t) { return NULL; }
void _ZdlPv (void *) { return; } void _ZdlPv (void *) { return; }
void *_ZnaX (size_t) { return NULL; } void *_ZnaX (size_t) { return NULL; }
......
...@@ -39,7 +39,7 @@ extern void *__cxa_begin_catch (void *) WEAK; ...@@ -39,7 +39,7 @@ extern void *__cxa_begin_catch (void *) WEAK;
extern void __cxa_end_catch (void) WEAK; extern void __cxa_end_catch (void) WEAK;
extern void __cxa_tm_cleanup (void *, void *, unsigned int) 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_allocate_exception (size_t) { return NULL; }
void __cxa_throw (void *, void *, void *) { return; } void __cxa_throw (void *, void *, void *) { return; }
void *__cxa_begin_catch (void *) { return NULL; } void *__cxa_begin_catch (void *) { return NULL; }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment