| 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 |
| |