Skip to content

iOS compiler stubs override environment-based minimum version specifications #133183

Closed

Description

@freakboy3742

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:

  1. the IPHONEOS_DEPLOYMENT_TARGET=12.0 environment variable
  2. the -mios-min-version=12.0 command line argument
  3. a version number encoded in a -target arm64-apple-ios12.0-simulator argument

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

Linked PRs

Activity

  1. added a commit that references this issue on May 1, 2025
  2. added a commit that references this issue on May 1, 2025
  3. added a commit that references this issue on May 1, 2025
  4. added 3 commits that reference this issue on Feb 3, 2026
  5. added 2 commits that reference this issue on Jun 12, 2026
  6. added 2 commits that reference this issue on Oct 2, 2026
  7. added a commit that references this issue on Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    OS-iostype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions