diff options
Diffstat (limited to '0029-MINGW-support-stdcall-without-underscore.patch')
-rw-r--r-- | 0029-MINGW-support-stdcall-without-underscore.patch | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/0029-MINGW-support-stdcall-without-underscore.patch b/0029-MINGW-support-stdcall-without-underscore.patch deleted file mode 100644 index 8275227ab444..000000000000 --- a/0029-MINGW-support-stdcall-without-underscore.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 8353a7f30f7dc0a33111f43ad2ce7acfa6de0a32 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= - <alexey.pawlow@gmail.com> -Date: Thu, 17 Jun 2021 18:51:39 +0530 -Subject: [PATCH 029/N] MINGW support stdcall without underscore -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Co-authored-by: Алексей <alexey.pawlow@gmail.com> ---- - Modules/_ctypes/_ctypes.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c -index ceae67e..b9cf96b 100644 ---- a/Modules/_ctypes/_ctypes.c -+++ b/Modules/_ctypes/_ctypes.c -@@ -3406,6 +3406,18 @@ static PPROC FindAddress(void *handle, const char *name, PyObject *type) - mangled_name = alloca(strlen(name) + 1 + 1 + 1 + 3); /* \0 _ @ %d */ - if (!mangled_name) - return NULL; -+ /* Issue: for stdcall decorated export functions MSVC compiler adds -+ * underscore, but GCC compiler create them without. This is -+ * visible by example for _ctypes_test.pyd module. -+ * As well functions from system libraries are without underscore. -+ * Solutions: -+ * - If a python module is build with gcc option --add-stdcall-alias -+ * the module will contain XXX as alias for function XXX@ as result -+ * first search in this method will succeed. -+ * - Distutil may use compiler to create def-file, to modify it as -+ * add underscore alias and with new def file to create module. -+ * - Or may be just to search for function without underscore. -+ */ - for (i = 0; i < 32; ++i) { - sprintf(mangled_name, "_%s@%d", name, i*4); - Py_BEGIN_ALLOW_THREADS -@@ -3413,6 +3425,13 @@ static PPROC FindAddress(void *handle, const char *name, PyObject *type) - Py_END_ALLOW_THREADS - if (address) - return address; -+ /* search for function without underscore as weel */ -+ sprintf(mangled_name, "%s@%d", name, i*4); -+ Py_BEGIN_ALLOW_THREADS -+ address = (PPROC)GetProcAddress(handle, mangled_name); -+ Py_END_ALLOW_THREADS -+ if (address) -+ return address; - } - return NULL; - #endif --- -2.32.0 - |