Repository navigation
Restore Windows Arm64 support for CPUs without LSE - #132345
tannergooding merged 1 commit into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: Successfully started running 3 pipeline(s). 13 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
Tagging subscribers to this area: @agocke |
There was a problem hiding this comment.
Pull request overview
This PR restores the Windows Arm64 runtime (JIT + NativeAOT) minimum CPU baseline to Armv8-A by treating LSE (Armv8.1 atomics) as an optional feature on Windows, allowing supported Windows 10 IoT Arm64 devices without LSE to run. The ReadyToRun baseline remains higher, so older CPUs will reject incompatible R2R images and fall back to JIT as intended.
Changes:
- Update Windows Arm64 CPU feature detection so missing LSE no longer marks the CPU as baseline-invalid, while still advertising Atomics when present.
- Adjust CoreCLR and NativeAOT startup fatal error messaging so Windows Arm64 no longer claims LSE is part of the baseline.
- Remove the Windows-only LSE requirement from tool-time baseline selection for ARM64 (non-R2R), aligning NativeAOT minimum requirements with Armv8-A.
Show a summary per file
| File | Description |
|---|---|
| src/native/minipal/cpufeatures.c | Treats LSE/Armv8.1 atomics as optional on Windows Arm64 while still reporting the feature when available. |
| src/coreclr/vm/codeman.cpp | Updates the Arm64 baseline-missing fatal error message so Windows no longer lists LSE as required. |
| src/coreclr/tools/Common/InstructionSetHelpers.cs | Removes the Windows-only “lse” baseline requirement for non-R2R ARM64 builds (NativeAOT minimum). |
| src/coreclr/nativeaot/Runtime/startup.cpp | Mirrors the CoreCLR baseline-missing fatal error message change for NativeAOT startup on Windows Arm64. |
Review details
- Files reviewed: 4/4 changed files
- Comments generated: 0
- Review effort level: Lite
|
Could you please to submit a matching PR to update https://github.com/dotnet/docs/blob/main/docs/core/compatibility/jit/11/minimum-hardware-requirements.md as well? |
|
/ba-g net.httplistener timeouts |
Yes, was going to work on that after I got the product changes done and in for RC1 |
Restore the Windows Arm64 JIT and NativeAOT minimum to Armv8-A by treating LSE as an optional CPU feature. Windows 10 IoT supports NXP i.MX 8 processors without LSE, but the current baseline rejects them during runtime startup.
The ReadyToRun baseline remains Armv8.2-A + RCPC. On affected hardware, R2R images are rejected and execution falls back to the JIT, preserving the existing R2R contract while allowing the process to run.
Fixes #132340
Note
This pull request was created with GitHub Copilot.