Skip to content

22.1.8.3: the Apple rows, whose payload carries no compiler runtime for the platform - #1

Merged
Sunrisepeak merged 3 commits into
mainfrom
apple-rows
Sep 13, 2026
Merged

22.1.8.3: the Apple rows, whose payload carries no compiler runtime for the platform#1
Sunrisepeak merged 3 commits into
mainfrom
apple-rows

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

The official LLVM macOS payload builds libclang_rt.osx.a and no ios or iossim archive (measured on llvm 22.1.8, mcpp-community/mcpp#630), and clang's Darwin driver links the archive only when the file exists. A program that reaches an availability check then fails at link with __isPlatformVersionAtLeast undefined, and nothing said so earlier.

This release adds upstream's Darwin selection under cfg(os = "ios") (the six atomic-flag and fence units the M-profile rows withhold) and the x86_64/ directory for the x86_64 simulator; os_version_check.c, which defines the routine, is already in the package-wide list and compiles to nothing where __APPLE__ is not defined. The macOS row is not listed: its payload carries the archive.

CI gains a macOS job that builds both simulator rows and reads ___isPlatformVersionAtLeast out of the archive, since a build that succeeds can leave the routine out.

An iOS application declares the package beside its C++ standard library package:

[target.'cfg(os = "ios")'.dependencies]
llvm.compiler-rt-builtins = "22.1.8.3"
llvm.libcxx               = "22.1.8.1"

Design record: mcpp-community/mcpp .agents/docs/2026-09-13-630-what-a-framework-still-hits-in-the-engine.md, §5.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants