[pypy-commit] pypy py3.5: fix for win32

mattip pypy.commits at gmail.com
Mon Dec 25 15:03:13 EST 2017


Author: Matti Picus <matti.picus at gmail.com>
Branch: py3.5
Changeset: r93561:85e44c9458db
Date: 2017-12-25 22:02 +0200
http://bitbucket.org/pypy/pypy/changeset/85e44c9458db/

Log:	fix for win32

diff --git a/pypy/module/errno/interp_errno.py b/pypy/module/errno/interp_errno.py
--- a/pypy/module/errno/interp_errno.py
+++ b/pypy/module/errno/interp_errno.py
@@ -1,6 +1,7 @@
 from rpython.rlib.objectmodel import not_rpython
 from rpython.rtyper.tool.rffi_platform import DefinedConstantInteger, configure
 from rpython.translator.tool.cbuild import ExternalCompilationInfo
+import sys
 
 # from CPython 3.5
 errors = [
@@ -40,7 +41,7 @@
     "WSAEREMOTE", "WSAEINVAL", "WSAEINPROGRESS", "WSAGETSELECTEVEN",
     "WSAESOCKTNOSUPPORT", "WSAGETASYNCERRO", "WSAMAKESELECTREPL",
     "WSAGETASYNCBUFLE", "WSAEDESTADDRREQ", "WSAECONNREFUSED", "WSAENETRESET",
-    "WSAN",]
+    "WSAN", "WSAEDQUOT"]
 
 more_errors = [
     "ENOMEDIUM", "EMEDIUMTYPE", "ECANCELED", "ENOKEY", "EKEYEXPIRED",
@@ -55,10 +56,12 @@
     "EFTYPE", "ENEEDAUTH", "ENOATTR", "ENOPOLICY", "EPROCLIM", "EPROCUNAVAIL",
     "EPROGMISMATCH", "EPROGUNAVAIL", "EPWROFF", "ERPCMISMATCH", "ESHLIBVERS"]
 
-
+includes = ['errno.h']
+if sys.platform == 'win32':
+    includes.append('winsock2.h')
 
 class CConfig:
-    _compilation_info_ = ExternalCompilationInfo(includes=['errno.h'])
+    _compilation_info_ = ExternalCompilationInfo(includes=includes)
 
 for err_name in errors + win_errors + more_errors:
     setattr(CConfig, err_name, DefinedConstantInteger(err_name))
@@ -77,7 +80,7 @@
     assert name.startswith('WSA')
     code = config[name]
     if code is not None:
-        if name[3:] in errors:
+        if name[3:] in errors and name[3:] not in name2code:
             # errno.EFOO = <WSAEFOO>
             name2code[name[3:]] = code
         # errno.WSABAR = <WSABAR>


More information about the pypy-commit mailing list