[Python-checkins] bpo-36146: Fix inc_dirs in setup.py on macOS (GH-12098)

Victor Stinner webhook-mailer at python.org
Fri Mar 1 07:53:50 EST 2019


https://github.com/python/cpython/commit/96d81583be98cec9728636186ea32b662cb091d5
commit: 96d81583be98cec9728636186ea32b662cb091d5
branch: master
author: Victor Stinner <vstinner at redhat.com>
committer: GitHub <noreply at github.com>
date: 2019-03-01T13:53:46+01:00
summary:

bpo-36146: Fix inc_dirs in setup.py on macOS (GH-12098)

Fix setup.py on macOS: only add /usr/include/ffi to include
directories of _ctypes, not for all extensions.

files:
A Misc/NEWS.d/next/Build/2019-02-28-18-09-01.bpo-36146.IwPJVT.rst
M setup.py

diff --git a/Misc/NEWS.d/next/Build/2019-02-28-18-09-01.bpo-36146.IwPJVT.rst b/Misc/NEWS.d/next/Build/2019-02-28-18-09-01.bpo-36146.IwPJVT.rst
new file mode 100644
index 000000000000..93c1e1afac87
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2019-02-28-18-09-01.bpo-36146.IwPJVT.rst
@@ -0,0 +1,2 @@
+Fix setup.py on macOS: only add ``/usr/include/ffi`` to include
+directories of _ctypes, not for all extensions.
diff --git a/setup.py b/setup.py
index 2fef0ad468a4..56a1df327399 100644
--- a/setup.py
+++ b/setup.py
@@ -2003,16 +2003,17 @@ def detect_ctypes(self, inc_dirs, lib_dirs):
                      libraries=['m'])
         self.extensions.extend([ext, ext_test])
 
+        ffi_inc_dirs = inc_dirs.copy()
         if MACOS:
             if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"):
                 return
             # OS X 10.5 comes with libffi.dylib; the include files are
             # in /usr/include/ffi
-            inc_dirs.append('/usr/include/ffi')
+            ffi_inc_dirs.append('/usr/include/ffi')
 
         ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")]
         if not ffi_inc or ffi_inc[0] == '':
-            ffi_inc = find_file('ffi.h', [], inc_dirs)
+            ffi_inc = find_file('ffi.h', [], ffi_inc_dirs)
         if ffi_inc is not None:
             ffi_h = ffi_inc[0] + '/ffi.h'
             if not os.path.exists(ffi_h):



More information about the Python-checkins mailing list