diff options
Diffstat (limited to '0010-MINGW-build-in-windows-modules-winreg.patch')
-rw-r--r-- | 0010-MINGW-build-in-windows-modules-winreg.patch | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/0010-MINGW-build-in-windows-modules-winreg.patch b/0010-MINGW-build-in-windows-modules-winreg.patch new file mode 100644 index 000000000000..63e63c3c0a1b --- /dev/null +++ b/0010-MINGW-build-in-windows-modules-winreg.patch @@ -0,0 +1,79 @@ +From d00c155c97977adb8109f0764efb1100d6079800 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:20 +0530 +Subject: [PATCH 010/N] MINGW build in windows modules winreg +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> +--- + Modules/Setup.config.in | 3 +++ + PC/winreg.c | 19 +++++++++++++++++++ + configure.ac | 7 +++++++ + 3 files changed, 29 insertions(+) + +diff --git a/Modules/Setup.config.in b/Modules/Setup.config.in +index 9b364fe..612cabd 100644 +--- a/Modules/Setup.config.in ++++ b/Modules/Setup.config.in +@@ -6,3 +6,6 @@ + # init system calls(posix/nt/...) for INITFUNC (used by makesetup) + @INITSYS@ -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.c + ++# build-in modules for windows platform: ++@USE_WIN32_MODULE@winreg ../PC/winreg.c ++ +diff --git a/PC/winreg.c b/PC/winreg.c +index fd1ccb7..b6f1a8f 100644 +--- a/PC/winreg.c ++++ b/PC/winreg.c +@@ -17,6 +17,25 @@ + #include "structmember.h" // PyMemberDef + #include <windows.h> + ++#ifndef SIZEOF_HKEY ++/* used only here */ ++#if defined(MS_WIN64) ++# define SIZEOF_HKEY 8 ++#elif defined(MS_WIN32) ++# define SIZEOF_HKEY 4 ++#else ++# error "SIZEOF_HKEY is not defined" ++#endif ++#endif ++ ++#ifndef REG_LEGAL_CHANGE_FILTER ++#define REG_LEGAL_CHANGE_FILTER (\ ++ REG_NOTIFY_CHANGE_NAME |\ ++ REG_NOTIFY_CHANGE_ATTRIBUTES |\ ++ REG_NOTIFY_CHANGE_LAST_SET |\ ++ REG_NOTIFY_CHANGE_SECURITY ) ++#endif ++ + static BOOL PyHKEY_AsHKEY(PyObject *ob, HKEY *pRes, BOOL bNoneOK); + static BOOL clinic_HKEY_converter(PyObject *ob, void *p); + static PyObject *PyHKEY_FromHKEY(HKEY h); +diff --git a/configure.ac b/configure.ac +index 19c3ec2..e307fe3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3326,6 +3326,13 @@ else + fi]) + AC_MSG_RESULT($with_dbmliborder) + ++# Determine if windows modules should be used. ++AC_SUBST(USE_WIN32_MODULE) ++USE_WIN32_MODULE='#' ++case $host in ++ *-*-mingw*) USE_WIN32_MODULE=;; ++esac ++ + # Templates for things AC_DEFINEd more than once. + # For a single AC_DEFINE, no template is needed. + AH_TEMPLATE(_REENTRANT, +-- +2.32.0 + |