[Python-checkins] cpython (2.7): Issue #26661: setup.py now detects system libffi with multiarch wrapper.

christian.heimes python-checkins at python.org
Sun Sep 18 08:40:24 EDT 2016


https://hg.python.org/cpython/rev/2a3e4fa42464
changeset:   103924:2a3e4fa42464
branch:      2.7
parent:      103905:9b0d661a16de
user:        Christian Heimes <christian at python.org>
date:        Sun Sep 18 14:40:15 2016 +0200
summary:
  Issue #26661: setup.py now detects system libffi with multiarch wrapper.

files:
  Misc/NEWS |   2 ++
  setup.py  |  16 +++++++++-------
  2 files changed, 11 insertions(+), 7 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -186,6 +186,8 @@
 Build
 -----
 
+- Issue #26661: setup.py now detects system libffi with multiarch wrapper.
+
 - Issue #15819: The Include directory in the build tree is already searched;
   drop unused code trying to add it again.
 
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -2132,14 +2132,16 @@
             ffi_inc = find_file('ffi.h', [], inc_dirs)
         if ffi_inc is not None:
             ffi_h = ffi_inc[0] + '/ffi.h'
-            fp = open(ffi_h)
-            while 1:
-                line = fp.readline()
-                if not line:
+            with open(ffi_h) as f:
+                for line in f:
+                    line = line.strip()
+                    if line.startswith(('#define LIBFFI_H',
+                                        '#define ffi_wrapper_h')):
+                        break
+                else:
                     ffi_inc = None
-                    break
-                if line.startswith('#define LIBFFI_H'):
-                    break
+                    print('Header file {} does not define LIBFFI_H or '
+                          'ffi_wrapper_h'.format(ffi_h))
         ffi_lib = None
         if ffi_inc is not None:
             for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'):

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list