]> granicus.if.org Git - python/commitdiff
Issue #26661: setup.py now detects system libffi with multiarch wrapper.
authorChristian Heimes <christian@python.org>
Sun, 18 Sep 2016 12:40:15 +0000 (14:40 +0200)
committerChristian Heimes <christian@python.org>
Sun, 18 Sep 2016 12:40:15 +0000 (14:40 +0200)
Misc/NEWS
setup.py

index 9ef88bf07b5ca0ba6f657b375fd42379dd2ba6ac..49cafbb2b4294f65d8dc8548412d64c6c23b6bbc 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -186,6 +186,8 @@ Tests
 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.
 
index e15350c56e45ebe4b636defceb482c5c261e055a..54054c208a76441de0d9c2a5041f7a11cc54fce4 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -2132,14 +2132,16 @@ class PyBuildExt(build_ext):
             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'):