diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2013-04-23 09:44:36 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2013-04-23 09:44:36 +0000 |
commit | 61522196c71593da09572fce9af9e0d7dad61bc3 (patch) | |
tree | 9bf74facd67974fa2f780d6ce68b14eb7a94e371 /winsup/cygwin/libstdcxx_wrapper.cc | |
parent | 1875ee55d31d3673059373c8f9837bf98f93c713 (diff) | |
download | cygnal-61522196c71593da09572fce9af9e0d7dad61bc3.tar.gz cygnal-61522196c71593da09572fce9af9e0d7dad61bc3.tar.bz2 cygnal-61522196c71593da09572fce9af9e0d7dad61bc3.zip |
* Merge in cygwin-64bit-branch.
Diffstat (limited to 'winsup/cygwin/libstdcxx_wrapper.cc')
-rwxr-xr-x | winsup/cygwin/libstdcxx_wrapper.cc | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/winsup/cygwin/libstdcxx_wrapper.cc b/winsup/cygwin/libstdcxx_wrapper.cc index a6492f243..80861b738 100755 --- a/winsup/cygwin/libstdcxx_wrapper.cc +++ b/winsup/cygwin/libstdcxx_wrapper.cc @@ -22,23 +22,34 @@ details. */ around the standard C++ memory management operators; these are the wrappers, but we want the compiler to know they are the malloc operators and not have it think they're just any old function matching 'extern "C" _wrap_*'. */ +#ifdef __x86_64__ +#define MANGLED_ZNWX "__wrap__Znwm" +#define MANGLED_ZNAX "__wrap__Znam" +#define MANGLED_ZNWX_NOTHROW_T "__wrap__ZnwmRKSt9nothrow_t" +#define MANGLED_ZNAX_NOTHROW_T "__wrap__ZnamRKSt9nothrow_t" +#else +#define MANGLED_ZNWX "___wrap__Znwj" +#define MANGLED_ZNAX "___wrap__Znaj" +#define MANGLED_ZNWX_NOTHROW_T "___wrap__ZnwjRKSt9nothrow_t" +#define MANGLED_ZNAX_NOTHROW_T "___wrap__ZnajRKSt9nothrow_t" +#endif extern void *operator new(std::size_t sz) throw (std::bad_alloc) - __asm__ ("___wrap__Znwj"); + __asm__ (MANGLED_ZNWX); extern void *operator new[](std::size_t sz) throw (std::bad_alloc) - __asm__ ("___wrap__Znaj"); + __asm__ (MANGLED_ZNAX); extern void operator delete(void *p) throw() - __asm__ ("___wrap__ZdlPv"); + __asm__ (_SYMSTR (__wrap__ZdlPv)); extern void operator delete[](void *p) throw() - __asm__ ("___wrap__ZdaPv"); + __asm__ (_SYMSTR (__wrap__ZdaPv)); extern void *operator new(std::size_t sz, const std::nothrow_t &nt) throw() - __asm__ ("___wrap__ZnwjRKSt9nothrow_t"); + __asm__ (MANGLED_ZNWX_NOTHROW_T); extern void *operator new[](std::size_t sz, const std::nothrow_t &nt) throw() - __asm__ ("___wrap__ZnajRKSt9nothrow_t"); + __asm__ (MANGLED_ZNAX_NOTHROW_T); extern void operator delete(void *p, const std::nothrow_t &nt) throw() - __asm__ ("___wrap__ZdlPvRKSt9nothrow_t"); + __asm__ (_SYMSTR (__wrap__ZdlPvRKSt9nothrow_t)); extern void operator delete[](void *p, const std::nothrow_t &nt) throw() - __asm__ ("___wrap__ZdaPvRKSt9nothrow_t"); + __asm__ (_SYMSTR (__wrap__ZdaPvRKSt9nothrow_t)); extern void * operator new(std::size_t sz) throw (std::bad_alloc) |