| diff -Naur Python-3.8.0-orig/Include/internal/pycore_condvar.h Python-3.8.0/Include/internal/pycore_condvar.h |
| --- Python-3.8.0-orig/Include/internal/pycore_condvar.h 2019-10-14 16:34:47.000000000 +0300 |
| +++ Python-3.8.0/Include/internal/pycore_condvar.h 2019-10-22 10:02:30.231300600 +0300 |
| @@ -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 -Naur Python-3.8.0-orig/Include/pythread.h Python-3.8.0/Include/pythread.h |
| --- Python-3.8.0-orig/Include/pythread.h 2019-10-14 16:34:47.000000000 +0300 |
| +++ Python-3.8.0/Include/pythread.h 2019-10-22 10:02:30.652501400 +0300 |
| @@ -9,6 +9,12 @@ |
| 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 { |