[pypy-commit] pypy default: A crude hack to disable libffi

fijal noreply at buildbot.pypy.org
Wed May 8 17:35:54 CEST 2013


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: 
Changeset: r63911:70a3ebe126b7
Date: 2013-05-08 17:33 +0200
http://bitbucket.org/pypy/pypy/changeset/70a3ebe126b7/

Log:	A crude hack to disable libffi

diff --git a/rpython/rlib/clibffi.py b/rpython/rlib/clibffi.py
--- a/rpython/rlib/clibffi.py
+++ b/rpython/rlib/clibffi.py
@@ -64,6 +64,9 @@
 else:
     separate_module_sources = []
 
+def setup_after_config(config):
+    pass
+
 if not _WIN32:
     # On some platforms, we try to link statically libffi, which is small
     # anyway and avoids endless troubles for installing.  On other platforms
@@ -72,9 +75,13 @@
 
     if _MAC_OS:
         pre_include_bits = ['#define MACOSX']
-    else: 
+    else:
         pre_include_bits = []
 
+    def setup_after_config(config):
+        if config.translation.shared:
+            eci.link_files = []
+
     def find_libffi_a():
         dirlist = platform.library_dirs_for_libffi_a()
         for dir in dirlist:
@@ -357,7 +364,7 @@
                              lltype.Void)
 c_ffi_prep_closure = external('ffi_prep_closure', [FFI_CLOSUREP, FFI_CIFP,
                                                    CALLBACK_TP, rffi.VOIDP],
-                              rffi.INT)            
+                              rffi.INT)
 
 FFI_STRUCT_P = lltype.Ptr(lltype.Struct('FFI_STRUCT',
                                         ('ffistruct', FFI_TYPE_P.TO),
diff --git a/rpython/translator/goal/translate.py b/rpython/translator/goal/translate.py
--- a/rpython/translator/goal/translate.py
+++ b/rpython/translator/goal/translate.py
@@ -183,6 +183,13 @@
     # perform checks (if any) on the final config
     final_check_config(config)
 
+    try:
+        from rpython.rlib import clibffi
+    except ImportError:
+        pass # too bad
+    else:
+        clibffi.setup_after_config(config)
+
     return targetspec_dic, translateconfig, config, args
 
 def show_help(translateconfig, opt_parser, targetspec_dic, config):


More information about the pypy-commit mailing list