[Python-checkins] cpython (merge 3.5 -> 3.6): 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/18825546acbc
changeset:   103922:18825546acbc
branch:      3.6
parent:      103919:554f49f7f909
parent:      103921:c4cec8f7c727
user:        Christian Heimes <christian at python.org>
date:        Sun Sep 18 14:34:13 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
@@ -93,6 +93,8 @@
 Build
 -----
 
+- Issue #26661: setup.py now detects system libffi with multiarch wrapper.
+
 - Issue #15819: Remove redundant include search directory option for building
   outside the source tree.
 
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -2025,14 +2025,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', 'ffi_pic'):

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


More information about the Python-checkins mailing list