-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
Description
Bug report
Bug description:
Python includes shims for compiler tools on iOS to match GNU conventions for compiler names (e.g., arm64-apple-ios-clang) to avoid encoding a user-specific location to a compiler in sysconfig, and to avoid issues with UNIX build tools that expect CC/CXX to be single arguments without spaces.
Using this approach arm64-apple-ios-clang expands internal as xcrun --sdk iphoneos clang -target arm64-apple-ios-clang
Unfortunately, Apple has 3 ways to define a minimum iOS version, in order of priority:
- the
IPHONEOS_DEPLOYMENT_TARGET=12.0environment variable - the
-mios-min-version=12.0command line argument - a version number encoded in a
-target arm64-apple-ios12.0-simulatorargument
If you specify all three options, (1) will be ignored, and (2) will raise a warning if the version it specifies doesn't match the version specified by (3).
The problem arises if you specify -target arm64-apple-ios-simulator- which is what the shim currently encodes.
If the -target doesn't specify a version, this is interpreted as "no min version". An explicitly provided -mios-version-min definition will override this minimum without warning; but any IPHONEOS_DEPLOYMENT_VERSION value will be ignored.
Thus, using the compiler shims in an environment where IPHONEOS_DEPLOYMENT_VERSION is defined will result in this value being ignored unless the minimum version is also passed in as a -mios-version-min argument.
CPython versions tested on:
3.13
Operating systems tested on:
Other