[Python-checkins] cpython (3.5): 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/c4cec8f7c727
changeset:   103921:c4cec8f7c727
branch:      3.5
parent:      103918:82bd70f83796
user:        Christian Heimes <christian at python.org>
date:        Sun Sep 18 14:33:30 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
@@ -364,6 +364,8 @@
 Build
 -----
 
+- Issue #26661: setup.py now detects system libffi with multiarch wrapper.
+
 - Issue #28066: Fix the logic that searches build directories for generated
   include files when building outside the source tree.
 
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -1997,14 +1997,16 @@
             ffi_inc = find_file('ffi.h', [], inc_dirs)
         if ffi_inc is not None:
             ffi_h = ffi_inc[0] + '/ffi.h'
-            with open(ffi_h) as fp:
-                while 1:
-                    line = fp.readline()
-                    if not line:
-                        ffi_inc = None
+            with open(ffi_h) as f:
+                for line in f:
+                    line = line.strip()
+                    if line.startswith(('#define LIBFFI_H',
+                                        '#define ffi_wrapper_h')):
                         break
-                    if line.startswith('#define LIBFFI_H'):
-                        break
+                else:
+                    ffi_inc = None
+                    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