diff -rupN --no-dereference Python-3.10.9/Modules/_multiprocessing/semaphore.c Python-3.10.9-new/Modules/_multiprocessing/semaphore.c --- Python-3.10.9/Modules/_multiprocessing/semaphore.c 2022-12-06 19:31:21.000000000 +0100 +++ Python-3.10.9-new/Modules/_multiprocessing/semaphore.c 2022-12-08 09:37:00.242024881 +0100 @@ -8,6 +8,9 @@ */ #include "multiprocessing.h" +#ifdef __MINGW32__ +#include <semaphore.h> +#endif enum { RECURSIVE_MUTEX, SEMAPHORE }; 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.234024881 +0100 +++ Python-3.10.9-new/setup.py 2022-12-08 09:37:00.243024881 +0100 @@ -1888,6 +1888,7 @@ class PyBuildExt(build_ext): def detect_multiprocessing(self): # Richard Oudkerk's multiprocessing module + multiproc_libs = [] if MS_WINDOWS: multiprocessing_srcs = ['_multiprocessing/multiprocessing.c', '_multiprocessing/semaphore.c'] @@ -1896,8 +1897,10 @@ class PyBuildExt(build_ext): if (sysconfig.get_config_var('HAVE_SEM_OPEN') and not sysconfig.get_config_var('POSIX_SEMAPHORES_NOT_ENABLED')): multiprocessing_srcs.append('_multiprocessing/semaphore.c') + if HOST_PLATFORM.startswith(('mingw', 'win')): + multiproc_libs += ['ws2_32'] self.add(Extension('_multiprocessing', multiprocessing_srcs, - include_dirs=["Modules/_multiprocessing"])) + include_dirs=["Modules/_multiprocessing"], libraries=multiproc_libs)) if (not MS_WINDOWS and sysconfig.get_config_var('HAVE_SHM_OPEN') and