Narrow search to match contents of SDKs, namely only files in ``/System/Library``,
``/System/IOSSupport``, and ``/usr`` other than ``/usr/local``. Previously,
anything under ``/System`` was assumed to be in an SDK which causes problems
with the new file system layout in 10.15+ where user file systems may appear
to be mounted under ``/System``. Paths in ``/Library`` were also
incorrectly treated as SDK locations.
Co-authored-by: Ned Deily <nad@python.org>
(cherry picked from commit
d52bbde9421987d216c600557ef5bc931d03efcc)
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
--- /dev/null
+Fix check for macOS SDK paths when building Python. Narrow search to match
+contents of SDKs, namely only files in ``/System/Library``,
+``/System/IOSSupport``, and ``/usr`` other than ``/usr/local``. Previously,
+anything under ``/System`` was assumed to be in an SDK which causes problems
+with the new file system layout in 10.15+ where user file systems may appear
+to be mounted under ``/System``. Paths in ``/Library`` were also
+incorrectly treated as SDK locations.
def is_macosx_sdk_path(path):
"""
- Returns True if 'path' can be located in an OSX SDK
+ Returns True if 'path' can be located in a macOS SDK
"""
return ( (path.startswith('/usr/') and not path.startswith('/usr/local'))
- or path.startswith('/System/')
- or path.startswith('/Library/') )
+ or path.startswith('/System/Library')
+ or path.startswith('/System/iOSSupport') )
def grep_headers_for(function, headers):