Skip to content

Conversation

@kotlarmilos
Copy link
Member

@kotlarmilos kotlarmilos commented Aug 28, 2025

Description

This PR enables the CoreCLR interpreter functional test on iOS and MacCatalyst. It updates the build system to support cached interface dispatch to avoid RWX pages and updates the executable allocator to use RW pages instead of RWX. R2R is disabled by default when the interpreter is used.

Changes

  • Enabled cached interface dispatch
  • Updated executable allocator to use RW pages instead of RWX
  • Skipped calls into PAL_JitWriteProtect on Apple mobile
  • Updated MacCatalyst build to run OS feature checks
  • Linked the interpreter into the coreclr library
  • Setup CI build

Out of scope / Follow-up

  • Dynamic linking for debug builds
  • tvOS support
  • x64 architecture

Fixes #118647

@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 Aug 28, 2025
@kotlarmilos
Copy link
Member Author

/azp run runtime-ioslike,runtime-ioslikesimulator,runtime-maccatalyst

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kotlarmilos
Copy link
Member Author

/azp list

@azure-pipelines

This comment was marked as off-topic.

@kotlarmilos
Copy link
Member Author

/azp run runtime-ioslike

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@kotlarmilos
Copy link
Member Author

/azp run runtime-extra-platforms

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kotlarmilos
Copy link
Member Author

/azp run runtime-extra-platforms

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kotlarmilos
Copy link
Member Author

/azp run runtime-extra-platforms

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kotlarmilos
Copy link
Member Author

This PR is ready for review. The new jobs are:

  • ios-arm64 Checked AllSubsets_CoreCLR
  • maccatalyst-arm64 Checked AllSubsets_CoreCLR
  • iossimulator-arm64 Checked AllSubsets_CoreCLR

@kotlarmilos
Copy link
Member Author

/azp run runtime-extra-platforms

@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.

LGTM, thank you!

@kotlarmilos kotlarmilos enabled auto-merge (squash) September 4, 2025 17:03
@kotlarmilos kotlarmilos merged commit 07bc73e into dotnet:main Sep 4, 2025
165 checks passed
/// R2R
///
RETAIL_CONFIG_STRING_INFO(INTERNAL_NativeImageSearchPaths, W("NativeImageSearchPaths"), "Extra search paths for native composite R2R images")
#if defined(TARGET_IOS) || defined(TARGET_TVOS) || defined(TARGET_MACCATALYST)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MACCATALIST isn't mobile?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is a different feature in the build system, but it is treated the same as mobile where JIT is not allowed.

@github-actions github-actions bot locked and limited conversation to collaborators Oct 5, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[clr-interp] Set up fully interpreted functional test on iOS and MacCatalyst

3 participants