From 96b2dd5997735f417526758cbe3ab497850baf71 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Sun, 18 Sep 2016 14:33:30 +0200 Subject: [PATCH] Issue #26661: setup.py now detects system libffi with multiarch wrapper. --- Misc/NEWS | 2 ++ setup.py | 16 +++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS index 49879f542e..c23ec97dc3 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 174ce720c8..29ff1a836d 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'): -- 2.40.0