summarylogtreecommitdiffstats
path: root/0010-MINGW-build-in-windows-modules-winreg.patch
diff options
context:
space:
mode:
Diffstat (limited to '0010-MINGW-build-in-windows-modules-winreg.patch')
-rw-r--r--0010-MINGW-build-in-windows-modules-winreg.patch79
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
+