]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-36146: Fix inc_dirs in setup.py on macOS (GH-12098)
authorVictor Stinner <vstinner@redhat.com>
Fri, 1 Mar 2019 12:53:46 +0000 (13:53 +0100)
committerGitHub <noreply@github.com>
Fri, 1 Mar 2019 12:53:46 +0000 (13:53 +0100)
Fix setup.py on macOS: only add /usr/include/ffi to include
directories of _ctypes, not for all extensions.

Misc/NEWS.d/next/Build/2019-02-28-18-09-01.bpo-36146.IwPJVT.rst [new file with mode: 0644]
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 (file)
index 0000000..93c1e1a
--- /dev/null
@@ -0,0 +1,2 @@
+Fix setup.py on macOS: only add ``/usr/include/ffi`` to include
+directories of _ctypes, not for all extensions.
index 2fef0ad468a49d8f71a289a653747c4068ff7e16..56a1df327399ad015ba8cbe1d1a7beaa52c41229 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -2003,16 +2003,17 @@ class PyBuildExt(build_ext):
                      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):