-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[5.0] [Serialization] Use full target architectures for swiftmodule files #21096
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[5.0] [Serialization] Use full target architectures for swiftmodule files #21096
Conversation
@swift-ci Please test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved to be merged once the tests pass.
Build failed |
Build failed |
…wiftlang#21053) Previously these used the same "major architecture" names that the `#if os(...)` query accepts, but that can be a problem when building for, say, both armv7 and armv7s, even if the content is "the same". For a transition period where external build tools are involved, the compiler will look for "arm.swiftmodule" if it fails to find "armv7.swiftmodule" or any other 32-bit ARM architecture. No other Apple platform architectures are affected, and AFAIK no one's using the architecture-based layout on Linux or any other platforms. rdar://problem/45174692 (cherry picked from commit 06f3c11)
8b3b79c
to
f934caf
Compare
*sigh* Resolved the master/5.0 differences wrong. @swift-ci Please test |
@swift-ci Please test source compatibility |
Build failed |
Build failed |
Source compat failures are UPASSs; what's more, they're UPASSs in SwiftPM projects, which are not affected by this. |
… files (swiftlang#21096)" This reverts commit b5e2b94.
Explanation: Swiftmodules in frameworks are stored under the name of their "major architecture" (the name used by
#if arch(…)
), but that creates complications for platforms that have more than one architecture variant per major architecture, like armv7 and armv7s, even if the content is "the same".Scope: In practice, only affects how the compiler imports frameworks, which only Xcode builds.
Issue: rdar://problem/45174692
Risk: Low. This change is backwards-compatible for all shipping Apple platforms, and non-Apple platforms don't use multi-architecture Swift modules.
Testing: Passed regression tests and the source compat suite.
Reviewed by: @rjmccall, @jakepetroules