Skip to content

Conversation

@kotlarmilos
Copy link
Member

@kotlarmilos kotlarmilos commented Oct 27, 2025

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

Copilot AI review requested due to automatic review settings October 27, 2025 15:28
@github-actions github-actions bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Oct 27, 2025
@kotlarmilos kotlarmilos added area-Infrastructure-coreclr os-ios Apple iOS and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Oct 27, 2025
@kotlarmilos kotlarmilos added this to the 11.0.0 milestone Oct 27, 2025
Copy link
Contributor

Copilot AI left a 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

@kotlarmilos kotlarmilos requested a review from janvorli October 29, 2025 11:08
@kotlarmilos
Copy link
Member Author

/azp run runtime-ios

@azure-pipelines
Copy link

No pipelines are associated with this pull request.

@kotlarmilos
Copy link
Member Author

/azp run runtime-ioslike

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kotlarmilos
Copy link
Member Author

/azp run runtime-ioslike

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kotlarmilos
Copy link
Member Author

/azp run runtime-ioslike

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kotlarmilos
Copy link
Member Author

@vitek-karas @matouskozak Please take a look, this will enable iOS SDK integration

Copy link
Member

@vitek-karas vitek-karas left a 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.

@kotlarmilos
Copy link
Member Author

/azp run runtime-ioslike

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Member

@janvorli janvorli left a 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.

@kotlarmilos
Copy link
Member Author

/azp run runtime-ioslike

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kotlarmilos
Copy link
Member Author

/azp run runtime-ioslike

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kotlarmilos
Copy link
Member Author

/ba-g Android timeouts dotnet/dnceng#6408

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

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[clr-interp] Interpreter doesn't build with Release

4 participants