[pypy-svn] r49083 - in pypy/branch/rewrite-compilation-logic/pypy: module/_ffi/test module/struct rlib

fijal at codespeak.net fijal at codespeak.net
Sun Nov 25 15:45:54 CET 2007


Author: fijal
Date: Sun Nov 25 15:45:53 2007
New Revision: 49083

Modified:
   pypy/branch/rewrite-compilation-logic/pypy/module/_ffi/test/test__ffi.py
   pypy/branch/rewrite-compilation-logic/pypy/module/struct/nativefmttable.py
   pypy/branch/rewrite-compilation-logic/pypy/rlib/libffi.py
Log:
Fix few modules


Modified: pypy/branch/rewrite-compilation-logic/pypy/module/_ffi/test/test__ffi.py
==============================================================================
--- pypy/branch/rewrite-compilation-logic/pypy/module/_ffi/test/test__ffi.py	(original)
+++ pypy/branch/rewrite-compilation-logic/pypy/module/_ffi/test/test__ffi.py	Sun Nov 25 15:45:53 2007
@@ -1,7 +1,7 @@
 
 
 from pypy.conftest import gettestobjspace
-from pypy.translator.tool.cbuild import compile_c_module
+from pypy.translator.tool.cbuild import compile_c_module, ExternalCompilationInfo
 
 import os, sys, py
 
@@ -90,7 +90,7 @@
         }
 
         '''))
-        compile_c_module([c_file], 'x')
+        compile_c_module([c_file], 'x', ExternalCompilationInfo())
         return str(udir.join('x.so'))
     prepare_c_example = staticmethod(prepare_c_example)
     

Modified: pypy/branch/rewrite-compilation-logic/pypy/module/struct/nativefmttable.py
==============================================================================
--- pypy/branch/rewrite-compilation-logic/pypy/module/struct/nativefmttable.py	(original)
+++ pypy/branch/rewrite-compilation-logic/pypy/module/struct/nativefmttable.py	Sun Nov 25 15:45:53 2007
@@ -3,6 +3,7 @@
 from pypy.rpython.tool import rffi_platform
 from pypy.rpython.lltypesystem import lltype, rffi
 from pypy.rlib.rarithmetic import r_singlefloat
+from pypy.translator.tool.cbuild import ExternalCompilationInfo
 
 native_is_bigendian = struct.pack("=i", 1) == struct.pack(">i", 1)
 
@@ -83,16 +84,21 @@
                'd': 'double',
                }
 
-    class CConfig:
-        _header_ = ""
-
+    pre_include_lines = []
     for fmtchar, ctype in INSPECT.items():
-        CConfig._header_ += """
+        pre_include_lines += ("""
             struct about_%s {
                 char pad;
                 %s field;
             };
-        """ % (fmtchar, ctype)
+        """ % (fmtchar, ctype)).split("\n")
+
+    class CConfig:
+        _compilation_info_ = ExternalCompilationInfo(
+            pre_include_lines = pre_include_lines
+        )
+
+    for fmtchar, ctype in INSPECT.items():
         setattr(CConfig, fmtchar, rffi_platform.Struct(
             "struct about_%s" % (fmtchar,),
             [('field', lltype.FixedSizeArray(rffi.CHAR, 1))]))

Modified: pypy/branch/rewrite-compilation-logic/pypy/rlib/libffi.py
==============================================================================
--- pypy/branch/rewrite-compilation-logic/pypy/rlib/libffi.py	(original)
+++ pypy/branch/rewrite-compilation-logic/pypy/rlib/libffi.py	Sun Nov 25 15:45:53 2007
@@ -8,6 +8,7 @@
 from pypy.rlib.rarithmetic import intmask
 from pypy.rlib.objectmodel import we_are_translated
 from pypy.tool.autopath import pypydir
+from pypy.translator.tool.cbuild import ExternalCompilationInfo
 import py
 
 includes = ['dlfcn.h', 'ffi.h']
@@ -24,10 +25,12 @@
 FFI_TYPE_PP = rffi.CArrayPtr(FFI_TYPE_P)
 
 class CConfig:
-    _includes_ = includes
-    _libraries_ = ['ffi']
-    _include_dirs_ = include_dirs
-    _library_dirs_ = lib_dirs
+    _compilation_info_ = ExternalCompilationInfo(
+        includes = includes,
+        libraries = ['ffi', 'dl'],
+        include_dirs = include_dirs,
+        library_dirs = lib_dirs,
+    )
 
     RTLD_LOCAL = rffi_platform.DefinedConstantInteger('RTLD_LOCAL')
     RTLD_GLOBAL = rffi_platform.DefinedConstantInteger('RTLD_GLOBAL')
@@ -95,9 +98,8 @@
     }
 
 def external(name, args, result, **kwds):
-    return rffi.llexternal(name, args, result, includes=includes,
-                           include_dirs=include_dirs, library_dirs=lib_dirs,
-                           libraries=['dl', 'ffi'], **kwds)
+    return rffi.llexternal(name, args, result,
+                           compilation_info=CConfig._compilation_info_, **kwds)
 
 c_dlopen = external('dlopen', [rffi.CCHARP, rffi.INT], rffi.VOIDP,
                     _nowrapper=True)
@@ -111,9 +113,7 @@
 FFI_OK = cConfig.FFI_OK
 FFI_BAD_TYPEDEF = cConfig.FFI_BAD_TYPEDEF
 FFI_DEFAULT_ABI = rffi.cast(rffi.USHORT, cConfig.FFI_DEFAULT_ABI)
-FFI_CIFP = rffi.COpaquePtr('ffi_cif', includes=includes,
-                           include_dirs=include_dirs,
-                           library_dirs=lib_dirs)
+FFI_CIFP = rffi.COpaquePtr('ffi_cif', compilation_info=CConfig._compilation_info_)
 
 VOIDPP = rffi.CArrayPtr(rffi.VOIDP)
 



More information about the Pypy-commit mailing list