summarylogtreecommitdiffstats
path: root/0009-MINGW-init-system-calls.patch
diff options
context:
space:
mode:
Diffstat (limited to '0009-MINGW-init-system-calls.patch')
-rw-r--r--0009-MINGW-init-system-calls.patch124
1 files changed, 124 insertions, 0 deletions
diff --git a/0009-MINGW-init-system-calls.patch b/0009-MINGW-init-system-calls.patch
new file mode 100644
index 000000000000..c7a18c9280b3
--- /dev/null
+++ b/0009-MINGW-init-system-calls.patch
@@ -0,0 +1,124 @@
+From c6e239410fcc24e73eb239b391b5670f7ec41c2f 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:19 +0530
+Subject: [PATCH 009/N] MINGW init system calls
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Co-authored-by: Алексей <alexey.pawlow@gmail.com>
+---
+ Modules/Setup | 1 -
+ Modules/Setup.config.in | 3 +++
+ Modules/posixmodule.c | 29 +++++++++++++++++++++++++----
+ configure.ac | 8 ++++++++
+ 4 files changed, 36 insertions(+), 5 deletions(-)
+
+diff --git a/Modules/Setup b/Modules/Setup
+index 02cfb67..6b6926d 100644
+--- a/Modules/Setup
++++ b/Modules/Setup
+@@ -101,7 +101,6 @@ PYTHONPATH=$(COREPYTHONPATH)
+ # This only contains the minimal set of modules required to run the
+ # setup.py script in the root of the Python source tree.
+
+-posix -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.c # posix (UNIX) system calls
+ errno errnomodule.c # posix (UNIX) errno values
+ pwd pwdmodule.c # this is needed to find out the user's home dir
+ # if $HOME is not set
+diff --git a/Modules/Setup.config.in b/Modules/Setup.config.in
+index 5c1299d..9b364fe 100644
+--- a/Modules/Setup.config.in
++++ b/Modules/Setup.config.in
+@@ -3,3 +3,6 @@
+ # The purpose of this file is to conditionally enable certain modules
+ # based on configure-time options.
+
++# init system calls(posix/nt/...) for INITFUNC (used by makesetup)
++@INITSYS@ -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.c
++
+diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
+index c984e2e..3f3e1f3 100644
+--- a/Modules/posixmodule.c
++++ b/Modules/posixmodule.c
+@@ -310,6 +310,27 @@ corresponding Unix manual entries for more information on calls.");
+ # define HAVE_CWAIT 1
+ # define HAVE_FSYNC 1
+ # define fsync _commit
++# elif defined(__MINGW32__) /* GCC for windows hosts */
++/* getlogin is detected by configure on mingw-w64 */
++# undef HAVE_GETLOGIN
++/*# define HAVE_GETCWD 1 - detected by configure*/
++# define HAVE_GETPPID 1
++# define HAVE_GETLOGIN 1
++# define HAVE_SPAWNV 1
++# define HAVE_WSPAWNV 1
++# define HAVE_WEXECV 1
++/*# define HAVE_EXECV 1 - detected by configure*/
++# define HAVE_PIPE 1
++# define HAVE_POPEN 1
++# define HAVE_SYSTEM 1
++# define HAVE_CWAIT 1
++# define HAVE_FSYNC 1
++# define fsync _commit
++# include <windows.h>
++# include <winioctl.h>
++# ifndef _MAX_ENV
++# define _MAX_ENV 32767
++# endif
+ # else
+ /* Unix functions that the configure script doesn't check for */
+ # ifndef __VXWORKS__
+@@ -410,7 +431,7 @@ extern char *ctermid_r(char *);
+ # endif
+ #endif
+
+-#ifdef _MSC_VER
++#ifdef MS_WINDOWS
+ # ifdef HAVE_DIRECT_H
+ # include <direct.h>
+ # endif
+@@ -432,7 +453,7 @@ extern char *ctermid_r(char *);
+ # include <shellapi.h> // ShellExecute()
+ # include <lmcons.h> // UNLEN
+ # define HAVE_SYMLINK
+-#endif /* _MSC_VER */
++#endif /* MS_WINDOWS */
+
+ #ifndef MAXPATHLEN
+ # if defined(PATH_MAX) && PATH_MAX > 1024
+@@ -1521,9 +1542,9 @@ win32_get_reparse_tag(HANDLE reparse_point_handle, ULONG *reparse_tag)
+ ** man environ(7).
+ */
+ #include <crt_externs.h>
+-#elif !defined(_MSC_VER) && (!defined(__WATCOMC__) || defined(__QNX__) || defined(__VXWORKS__))
++#elif !defined(MS_WINDOWS) && (!defined(__WATCOMC__) || defined(__QNX__) || defined(__VXWORKS__))
+ extern char **environ;
+-#endif /* !_MSC_VER */
++#endif /* !MS_WINDOWS */
+
+ static PyObject *
+ convertenviron(void)
+diff --git a/configure.ac b/configure.ac
+index f335c48..19c3ec2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -601,6 +601,14 @@ then
+ AC_DEFINE(_INCLUDE__STDC_A1_SOURCE, 1, Define to include mbstate_t for mbrtowc)
+ fi
+
++AC_MSG_CHECKING([for init system calls])
++AC_SUBST(INITSYS)
++case $host in
++ *-*-mingw*) INITSYS=nt;;
++ *) INITSYS=posix;;
++esac
++AC_MSG_RESULT([$INITSYS])
++
+ # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
+ # it may influence the way we can build extensions, so distutils
+ # needs to check it
+--
+2.32.0
+