[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