summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2016-09-18 12:33:30 (GMT)
committerChristian Heimes <christian@python.org>2016-09-18 12:33:30 (GMT)
commit96b2dd5997735f417526758cbe3ab497850baf71 (patch)
treef102dd5c24c93d9b82069410f5fe15e64e9b6a51
parent5a5ae745ff5f18f1baf35438eb7f532e58e6b5a6 (diff)
downloadcpython-96b2dd5997735f417526758cbe3ab497850baf71.zip
cpython-96b2dd5997735f417526758cbe3ab497850baf71.tar.gz
cpython-96b2dd5997735f417526758cbe3ab497850baf71.tar.bz2
Issue #26661: setup.py now detects system libffi with multiarch wrapper.
-rw-r--r--Misc/NEWS2
-rw-r--r--setup.py16
2 files changed, 11 insertions, 7 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 49879f5..c23ec97 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -364,6 +364,8 @@ Windows
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
index 174ce72..29ff1a8 100644
--- a/setup.py
+++ b/setup.py
@@ -1997,14 +1997,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'
- with open(ffi_h) as fp:
- while 1:
- line = fp.readline()
- if not line:
- ffi_inc = None
- break
- if line.startswith('#define LIBFFI_H'):
+ 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
+ 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'):