-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[clr-ios] Enable Release builds and dynamic linking on Apple mobile #121117
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
[clr-ios] Enable Release builds and dynamic linking on Apple mobile #121117
Conversation
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.
Pull Request Overview
This PR enables the CoreCLR interpreter by default on Apple mobile platforms (iOS, tvOS, macOS Catalyst) and transitions from static to dynamic linking for CoreCLR libraries in the AppleAppBuilder. This includes updating the build configuration, code signing logic for dynamic libraries, and ARM64 assembly constant offsets.
Key Changes:
- Enables the interpreter feature for Apple mobile platforms in the CoreCLR build system
- Switches from static linking (
shouldStaticLink = false) to dynamic linking for Apple mobile platforms - Updates code signing to handle dynamic libraries in iOS app bundles
- Corrects ARM64 assembly offsets for release builds on Unix
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/tasks/AppleAppBuilder/Xcode.cs | Modifies library linking logic to use dynamic libraries (.dylib) with force_load instead of static libraries (.a) for CoreCLR |
| src/tasks/AppleAppBuilder/Templates/CMakeLists.txt.template | Enhances code signing command to properly sign dylibs in iOS app bundles with improved certificate resolution |
| src/tasks/AppleAppBuilder/AppleAppBuilder.cs | Changes shouldStaticLink from true to false for Apple mobile platforms to enable dynamic linking |
| src/coreclr/vm/arm64/asmconstants.h | Adds conditional offset definition for Thread::m_pInterpThreadContext based on debug/release configuration |
| src/coreclr/clrfeatures.cmake | Enables FEATURE_INTERPRETER for iOS, tvOS, and macOS Catalyst platforms |
| eng/pipelines/performance/templates/perf-ios-scenarios-build-jobs.yml | Changes build configuration from checked to release for iOS performance testing |
|
/azp run runtime-ios |
|
No pipelines are associated with this pull request. |
|
/azp run runtime-ioslike |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-ioslike |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-ioslike |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@vitek-karas @matouskozak Please take a look, this will enable iOS SDK integration |
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.
The pipeline changes look good.. I didn't review the exact mechanics of handling dynamic libs in the app builder.
|
/azp run runtime-ioslike |
|
Azure Pipelines successfully started running 1 pipeline(s). |
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.
The runtime changes look good to me.
|
/azp run runtime-ioslike |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-ioslike |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/ba-g Android timeouts dotnet/dnceng#6408 |
Description
This PR enables the interpreter by default on Apple mobile platforms and enables dynamic linking in AppleAppBuilder used in the testing pipeline.
Contributes to #119006
Fixes #121023