re PR libitm/52220 (FAIL: libitm.c++/eh-1.C execution test due to Xcode 4 weakref linker bug)
libitm/ 2012-02-15 Iain Sandoe <iains@gcc.gnu.org> Patrick Marlier <patrick.marlier@gmail.com> PR libitm/52220 * alloc_cpp.cc: No dummy definitions for darwin. * eh_cpp.cc: Likewise. libgcc/ 2012-02-15 Iain Sandoe <iains@gcc.gnu.org> Patrick Marlier <patrick.marlier@gmail.com> PR libitm/52220 * config/darwin-crt-tm.c: Generate dummy functions. Co-Authored-By: Patrick Marlier <patrick.marlier@gmail.com> From-SVN: r184293
This commit is contained in:
parent
e3a66c3884
commit
e948a1fbd4
@ -1,3 +1,9 @@
|
||||
2012-02-15 Iain Sandoe <iains@gcc.gnu.org>
|
||||
Patrick Marlier <patrick.marlier@gmail.com>
|
||||
|
||||
PR libitm/52220
|
||||
* config/darwin-crt-tm.c: Generate dummy functions.
|
||||
|
||||
2012-02-15 Iain Sandoe <iains@gcc.gnu.org>
|
||||
Patrick Marlier <patrick.marlier@gmail.com>
|
||||
|
||||
|
@ -39,6 +39,7 @@ 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,3 +104,46 @@ void __doTMdeRegistrations (void)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* 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; }
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
2012-02-15 Iain Sandoe <iains@gcc.gnu.org>
|
||||
Patrick Marlier <patrick.marlier@gmail.com>
|
||||
|
||||
PR libitm/52220
|
||||
* alloc_cpp.cc: No dummy definitions for darwin.
|
||||
* eh_cpp.cc: Likewise.
|
||||
|
||||
2012-02-14 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.
|
||||
|
@ -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)
|
||||
#if !defined (HAVE_ELF_STYLE_WEAKREF) && !defined (__MACH__)
|
||||
void *_ZnwX (size_t) { return NULL; }
|
||||
void _ZdlPv (void *) { return; }
|
||||
void *_ZnaX (size_t) { return NULL; }
|
||||
|
@ -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)
|
||||
#if !defined (HAVE_ELF_STYLE_WEAKREF) && !defined (__MACH__)
|
||||
void *__cxa_allocate_exception (size_t) { return NULL; }
|
||||
void __cxa_throw (void *, void *, void *) { return; }
|
||||
void *__cxa_begin_catch (void *) { return NULL; }
|
||||
|
Loading…
Reference in New Issue
Block a user