Sophie

Sophie

distrib > Mageia > 9 > armv7hl > media > core-release-src > by-pkgid > d8c679353daa984effd8ef75a56451e3 > files > 15

mingw-python3-3.10.9-1.mga9.src.rpm

diff -rupN --no-dereference Python-3.10.9/Lib/ctypes/__init__.py Python-3.10.9-new/Lib/ctypes/__init__.py
--- Python-3.10.9/Lib/ctypes/__init__.py	2022-12-06 19:31:21.000000000 +0100
+++ Python-3.10.9-new/Lib/ctypes/__init__.py	2022-12-08 09:37:00.565024888 +0100
@@ -456,7 +456,9 @@ class LibraryLoader(object):
 cdll = LibraryLoader(CDLL)
 pydll = LibraryLoader(PyDLL)
 
-if _os.name == "nt":
+if _os.name == "nt" and _sys.version.find('GCC') >= 0:
+    pythonapi = PyDLL("libpython%d.%d%s.dll" % (_sys.version_info[:2] + (_sys.abiflags,)), None)
+elif _os.name == "nt":
     pythonapi = PyDLL("python dll", None, _sys.dllhandle)
 elif _sys.platform == "cygwin":
     pythonapi = PyDLL("libpython%d.%d.dll" % _sys.version_info[:2])
diff -rupN --no-dereference Python-3.10.9/setup.py Python-3.10.9-new/setup.py
--- Python-3.10.9/setup.py	2022-12-08 09:37:00.561024888 +0100
+++ Python-3.10.9-new/setup.py	2022-12-08 09:37:00.566024888 +0100
@@ -2267,6 +2267,10 @@ class PyBuildExt(build_ext):
         return True
 
     def configure_ctypes(self, ext):
+        if HOST_PLATFORM == 'win32':
+            ext.libraries.extend(['ole32', 'oleaut32', 'uuid'])
+            ext.export_symbols.extend(['DllGetClassObject PRIVATE',
+                                       'DllCanUnloadNow PRIVATE'])
         return True
 
     def detect_ctypes(self):
@@ -2317,9 +2321,12 @@ class PyBuildExt(build_ext):
         self.add(ext)
         if TEST_EXTENSIONS:
             # function my_sqrt() needs libm for sqrt()
+            ext_test_libs = ['m']
+            if HOST_PLATFORM.startswith(('mingw', 'win')):
+                ext_test_libs.extend(['oleaut32'])
             self.add(Extension('_ctypes_test',
                                sources=['_ctypes/_ctypes_test.c'],
-                               libraries=['m']))
+                               libraries=ext_test_libs))
 
         ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR")
         ffi_lib = None
@@ -2364,6 +2371,8 @@ class PyBuildExt(build_ext):
 
             ext.include_dirs.append(ffi_inc)
             ext.libraries.append(ffi_lib)
+            if HOST_PLATFORM.startswith(('mingw', 'win')):
+                ext.libraries.extend(['ole32', 'oleaut32', 'uuid'])
             self.use_system_libffi = True
 
         if sysconfig.get_config_var('HAVE_LIBDL'):