diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2014-10-10 19:29:18 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2014-10-10 19:29:18 +0400 |
commit | 3ab591cf71a5302ead4eaa1eeff9242717cfdcad (patch) | |
tree | b7affacc2be2bb796e9606186d6287b4bdffcbed /winsup/cygwin/dlfcn.cc | |
parent | 7a84e9c4bcf9d38a7400bf797e5a4ec8d200b916 (diff) |
* dlfcn.cc (dlopen): Disable old 32 bit code on 64 bit.
* dcrt0.cc (check_sanity_and_sync): Ditto.
* dll_init.cc (dll_dllcrt0_1): Fix typo in comment.
Diffstat (limited to 'winsup/cygwin/dlfcn.cc')
-rw-r--r-- | winsup/cygwin/dlfcn.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/winsup/cygwin/dlfcn.cc b/winsup/cygwin/dlfcn.cc index c27adf675..6bcdac92d 100644 --- a/winsup/cygwin/dlfcn.cc +++ b/winsup/cygwin/dlfcn.cc @@ -135,6 +135,7 @@ dlopen (const char *name, int flags) if (last_bs && !wcschr (last_bs, L'.')) wcscat (last_bs, L"."); +#ifndef __x86_64__ /* Workaround for broken DLLs built against Cygwin versions 1.7.0-49 up to 1.7.0-57. They override the cxx_malloc pointer in their DLL initialization code even if loaded dynamically. This is a @@ -150,6 +151,7 @@ dlopen (const char *name, int flags) /* Store original cxx_malloc pointer. */ struct per_process_cxx_malloc *tmp_malloc; tmp_malloc = __cygwin_user_data.cxx_malloc; +#endif if (!(flags & RTLD_NOLOAD) || (ret = GetModuleHandleW (path)) != NULL) @@ -160,8 +162,10 @@ dlopen (const char *name, int flags) (HMODULE *) &ret); } +#ifndef __x86_64__ /* Restore original cxx_malloc pointer. */ __cygwin_user_data.cxx_malloc = tmp_malloc; +#endif if (!ret) __seterrno (); |