From: Christian Heimes Date: Sun, 18 Sep 2016 12:34:13 +0000 (+0200) Subject: Issue #26661: setup.py now detects system libffi with multiarch wrapper. X-Git-Tag: v3.6.0b2~172 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=85c98bf9682a46f7b15e9c79c68d38af8a9109b0;p=python Issue #26661: setup.py now detects system libffi with multiarch wrapper. --- 85c98bf9682a46f7b15e9c79c68d38af8a9109b0 diff --cc Misc/NEWS index 15a7e0e66a,c23ec97dc3..671a9b41c9 --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -17,118 -13,8 +17,120 @@@ Core and Builtin - Issue #28131: Fix a regression in zipimport's compile_source(). zipimport should use the same optimization level as the interpreter. -- Issue #25221: Fix corrupted result from PyLong_FromLong(0) when - Python is compiled with NSMALLPOSINTS = 0. +- Issue #28126: Replace Py_MEMCPY with memcpy(). Visual Studio can properly + optimize memcpy(). + +- Issue #28120: Fix dict.pop() for splitted dictionary when trying to remove a + "pending key" (Not yet inserted in split-table). Patch by Xiang Zhang. + +- Issue #26182: Raise DeprecationWarning when async and await keywords are + used as variable/attribute/class/function name. + +Library +------- + +- Issue #27932: Prevent memory leak in win32_ver(). + +- Fix UnboundLocalError in socket._sendfile_use_sendfile. + +- Issue #28075: Check for ERROR_ACCESS_DENIED in Windows implementation of + os.stat(). Patch by Eryk Sun. + +- Issue #22493: Warning message emitted by using inline flags in the middle of + regular expression now contains a (truncated) regex pattern. + Patch by Tim Graham. + +- Issue #25270: Prevent codecs.escape_encode() from raising SystemError when + an empty bytestring is passed. + +- Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam. + +- Issue #25895: Enable WebSocket URL schemes in urllib.parse.urljoin. + Patch by Gergely Imreh and Markus Holtermann. + +- Issue #28114: Fix a crash in parse_envlist() when env contains byte strings. + Patch by Eryk Sun. + +- Issue #27599: Fixed buffer overrun in binascii.b2a_qp() and binascii.a2b_qp(). + +- Issue #27906: Fix socket accept exhaustion during high TCP traffic. + Patch by Kevin Conway. + +- Issue #28174: Handle when SO_REUSEPORT isn't properly supported. + Patch by Seth Michael Larson. + +- Issue #26654: Inspect functools.partial in asyncio.Handle.__repr__. + Patch by iceboy. + +- Issue #26909: Fix slow pipes IO in asyncio. + Patch by INADA Naoki. + +- Issue #28176: Fix callbacks race in asyncio.SelectorLoop.sock_connect. + +- Issue #27759: Fix selectors incorrectly retain invalid file descriptors. + Patch by Mark Williams. + +Windows +------- + +- Issue #28110: launcher.msi has different product codes between 32-bit and + 64-bit + +- Issue #28161: Opening CON for write access fails + +- Issue #28162: WindowsConsoleIO readall() fails if first line starts with + Ctrl+Z + +- Issue #28163: WindowsConsoleIO fileno() passes wrong flags to + _open_osfhandle + +- Issue #28164: _PyIO_get_console_type fails for various paths + +- Issue #28137: Renames Windows path file to ._pth + +- Issue #28138: Windows ._pth file should allow import site + +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. + + +What's New in Python 3.6.0 beta 1 +================================= + +*Release date: 2016-09-12* + +Core and Builtins +----------------- + +- Issue #23722: The __class__ cell used by zero-argument super() is now + initialized from type.__new__ rather than __build_class__, so class methods + relying on that will now work correctly when called from metaclass methods + during class creation. Patch by Martin Teichmann. + +- Issue #25221: Fix corrupted result from PyLong_FromLong(0) when Python + is compiled with NSMALLPOSINTS = 0. + +- Issue #27080: Implement formatting support for PEP 515. Initial patch + by Chris Angelico. + +- Issue #27199: In tarfile, expose copyfileobj bufsize to improve throughput. + Patch by Jason Fried. + +- Issue #27948: In f-strings, only allow backslashes inside the braces + (where the expressions are). This is a breaking change from the 3.6 + alpha releases, where backslashes are allowed anywhere in an + f-string. Also, require that expressions inside f-strings be + enclosed within literal braces, and not escapes like + f'\x7b"hi"\x7d'. + +- Issue #28046: Remove platform-specific directories from sys.path. + +- Issue #28071: Add early-out for differencing from an empty set. - Issue #25758: Prevents zipimport from unnecessarily encoding a filename (patch by Eryk Sun) diff --cc setup.py index b752a671c6,29ff1a836d..a1989aa3cc --- a/setup.py +++ b/setup.py @@@ -2025,17 -1997,19 +2025,19 @@@ 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'): + for lib_name in ('ffi', 'ffi_pic'): if (self.compiler.find_library_file(lib_dirs, lib_name)): ffi_lib = lib_name break