diff options
Diffstat (limited to '0036-py3k-mingw-ntthreads-vs-pthreads.patch')
-rw-r--r-- | 0036-py3k-mingw-ntthreads-vs-pthreads.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/0036-py3k-mingw-ntthreads-vs-pthreads.patch b/0036-py3k-mingw-ntthreads-vs-pthreads.patch new file mode 100644 index 000000000000..ec8870b6b8eb --- /dev/null +++ b/0036-py3k-mingw-ntthreads-vs-pthreads.patch @@ -0,0 +1,64 @@ +From cef46d4d01202b0297badf3d715928e3b7406357 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:45 +0530 +Subject: [PATCH 036/N] py3k mingw ntthreads vs pthreads +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Co-authored-by: Алексей <alexey.pawlow@gmail.com> +Co-authored-by: Christoph Reiter <reiter.christoph@gmail.com> +--- + Include/internal/pycore_condvar.h | 10 ++++++++++ + Include/pythread.h | 6 ++++++ + 2 files changed, 16 insertions(+) + +diff --git a/Include/internal/pycore_condvar.h b/Include/internal/pycore_condvar.h +index 8b89d70..dd98245 100644 +--- a/Include/internal/pycore_condvar.h ++++ b/Include/internal/pycore_condvar.h +@@ -5,6 +5,12 @@ + # error "this header requires Py_BUILD_CORE define" + #endif + ++#ifdef __MINGW32__ ++# if !defined(HAVE_PTHREAD_H) || defined(NT_THREADS) ++# undef _POSIX_THREADS ++# endif ++#endif ++ + #ifndef _POSIX_THREADS + /* This means pthreads are not implemented in libc headers, hence the macro + not present in unistd.h. But they still can be implemented as an external +@@ -37,6 +43,10 @@ + /* include windows if it hasn't been done before */ + #define WIN32_LEAN_AND_MEAN + #include <windows.h> ++/* winpthreads are involved via windows header, so need undef _POSIX_THREADS after header include */ ++#if defined(_POSIX_THREADS) ++#undef _POSIX_THREADS ++#endif + + /* options */ + /* non-emulated condition variables are provided for those that want +diff --git a/Include/pythread.h b/Include/pythread.h +index bb9d864..f1e52c6 100644 +--- a/Include/pythread.h ++++ b/Include/pythread.h +@@ -8,6 +8,12 @@ typedef void *PyThread_type_lock; + extern "C" { + #endif + ++#ifdef __MINGW32__ ++# if !defined(HAVE_PTHREAD_H) || defined(NT_THREADS) ++# undef _POSIX_THREADS ++# endif ++#endif ++ + /* Return status codes for Python lock acquisition. Chosen for maximum + * backwards compatibility, ie failure -> 0, success -> 1. */ + typedef enum PyLockStatus { +-- +2.32.0 + |