Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2014-10-10 19:29:18 +0400
committerCorinna Vinschen <corinna@vinschen.de>2014-10-10 19:29:18 +0400
commit3ab591cf71a5302ead4eaa1eeff9242717cfdcad (patch)
treeb7affacc2be2bb796e9606186d6287b4bdffcbed /winsup/cygwin/dlfcn.cc
parent7a84e9c4bcf9d38a7400bf797e5a4ec8d200b916 (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.cc4
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 ();