[pypy-svn] pypy mingw32-build: cpyext fixes for the mingw32 compiler

amauryfa commits-noreply at bitbucket.org
Fri Apr 29 12:07:19 CEST 2011


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: mingw32-build
Changeset: r43757:e935245ba765
Date: 2011-04-29 11:58 +0200
http://bitbucket.org/pypy/pypy/changeset/e935245ba765/

Log:	cpyext fixes for the mingw32 compiler

diff --git a/pypy/module/cpyext/test/test_cpyext.py b/pypy/module/cpyext/test/test_cpyext.py
--- a/pypy/module/cpyext/test/test_cpyext.py
+++ b/pypy/module/cpyext/test/test_cpyext.py
@@ -184,8 +184,9 @@
         api_library = state.api_lib
         if sys.platform == 'win32':
             kwds["libraries"] = [api_library]
-            # '%s' undefined; assuming extern returning int
-            kwds["compile_extra"] = ["/we4013"]
+            if platform.platform.name == "msvc":
+                # '%s' undefined; assuming extern returning int
+                kwds["compile_extra"] = ["/we4013"]
         else:
             kwds["link_files"] = [str(api_library + '.so')]
             if sys.platform == 'linux2':

diff --git a/pypy/module/cpyext/__init__.py b/pypy/module/cpyext/__init__.py
--- a/pypy/module/cpyext/__init__.py
+++ b/pypy/module/cpyext/__init__.py
@@ -12,46 +12,50 @@
     appleveldefs = {
     }
 
+    def __init__(self, space, w_name):
+        MixedModule.__init__(self, space, w_name)
+
+        # import these modules to register api functions by side-effect
+        import pypy.module.cpyext.thread
+        import pypy.module.cpyext.pyobject
+        import pypy.module.cpyext.boolobject
+        import pypy.module.cpyext.floatobject
+        import pypy.module.cpyext.modsupport
+        import pypy.module.cpyext.pythonrun
+        import pypy.module.cpyext.pyerrors
+        import pypy.module.cpyext.typeobject
+        import pypy.module.cpyext.object
+        import pypy.module.cpyext.stringobject
+        import pypy.module.cpyext.tupleobject
+        import pypy.module.cpyext.dictobject
+        import pypy.module.cpyext.intobject
+        import pypy.module.cpyext.longobject
+        import pypy.module.cpyext.listobject
+        import pypy.module.cpyext.sequence
+        import pypy.module.cpyext.eval
+        import pypy.module.cpyext.import_
+        import pypy.module.cpyext.mapping
+        import pypy.module.cpyext.iterator
+        import pypy.module.cpyext.unicodeobject
+        import pypy.module.cpyext.sysmodule
+        import pypy.module.cpyext.number
+        import pypy.module.cpyext.sliceobject
+        import pypy.module.cpyext.stubsactive
+        import pypy.module.cpyext.pystate
+        import pypy.module.cpyext.cdatetime
+        import pypy.module.cpyext.complexobject
+        import pypy.module.cpyext.weakrefobject
+        import pypy.module.cpyext.funcobject
+        import pypy.module.cpyext.frameobject
+        import pypy.module.cpyext.classobject
+        import pypy.module.cpyext.pypyintf
+        import pypy.module.cpyext.memoryobject
+        import pypy.module.cpyext.codecs
+        import pypy.module.cpyext.pyfile
+
+        # now that all rffi_platform.Struct types are registered, configure them
+        api.configure_types()
+
     def startup(self, space):
         space.fromcache(State).startup(space)
 
-# import these modules to register api functions by side-effect
-import pypy.module.cpyext.thread
-import pypy.module.cpyext.pyobject
-import pypy.module.cpyext.boolobject
-import pypy.module.cpyext.floatobject
-import pypy.module.cpyext.modsupport
-import pypy.module.cpyext.pythonrun
-import pypy.module.cpyext.pyerrors
-import pypy.module.cpyext.typeobject
-import pypy.module.cpyext.object
-import pypy.module.cpyext.stringobject
-import pypy.module.cpyext.tupleobject
-import pypy.module.cpyext.dictobject
-import pypy.module.cpyext.intobject
-import pypy.module.cpyext.longobject
-import pypy.module.cpyext.listobject
-import pypy.module.cpyext.sequence
-import pypy.module.cpyext.eval
-import pypy.module.cpyext.import_
-import pypy.module.cpyext.mapping
-import pypy.module.cpyext.iterator
-import pypy.module.cpyext.unicodeobject
-import pypy.module.cpyext.sysmodule
-import pypy.module.cpyext.number
-import pypy.module.cpyext.sliceobject
-import pypy.module.cpyext.stubsactive
-import pypy.module.cpyext.pystate
-import pypy.module.cpyext.cdatetime
-import pypy.module.cpyext.complexobject
-import pypy.module.cpyext.weakrefobject
-import pypy.module.cpyext.funcobject
-import pypy.module.cpyext.frameobject
-import pypy.module.cpyext.classobject
-import pypy.module.cpyext.pypyintf
-import pypy.module.cpyext.memoryobject
-import pypy.module.cpyext.codecs
-import pypy.module.cpyext.pyfile
-
-# now that all rffi_platform.Struct types are registered, configure them
-api.configure_types()

diff --git a/pypy/module/cpyext/api.py b/pypy/module/cpyext/api.py
--- a/pypy/module/cpyext/api.py
+++ b/pypy/module/cpyext/api.py
@@ -843,9 +843,10 @@
     compile_extra=['-DPy_BUILD_CORE']
 
     if building_bridge:
-        if sys.platform == "win32":
+        if platform.platform.name == "msvc":
             # '%s' undefined; assuming extern returning int
             compile_extra.append("/we4013")
+        if sys.platform == "win32":
             # Sometimes the library is wrapped into another DLL, ensure that
             # the correct bootstrap code is installed
             kwds["link_extra"] = ["msvcrt.lib"]


More information about the Pypy-commit mailing list