-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Epic: Support Apple Silicon #43313
Comments
By the time .NET 6 is released, it will have been more than five years since Apple renamed this operating system to "macOS". It's not called "OS X" any more. If it can be done correctly in TFMs, it can be done correctly in RIDs. |
Yup. Please file an issue @warrenrumak. |
For Mono, I think the work item "Modify code generation to support osx-arm64 interop with native libraries" is done in the sense that the ABI is the same as ios which we already support. Is that right, @vargaz ? |
Indeed. Apple has confirmed to me that the Apple silicon Mac ABI is precisely the same as their iOS ARM ABI. |
Yes, we don't support the arm64e stuff, but otherwise mono works on osx/arm64, both in the old mono repo and in dotnet/runtime. Couldn't run test suites because the sdk tools were hanging. |
@jeffschwMSFT I'm not sure if this is supposed to be a team epic. This was created with @richlander. I thought it was supposed to be a customer facing epic. |
This feels like the right level of scope to me. Thank you for helping to keep our progress tracked and visible. |
Given how quick things are coming for true arm64 for apple in 6.0 perhaps it makes sense to make the changes for 5.0 rather than trying to make it work on rosetta 2? |
The belief is that people will want a supported .NET product on Apple Silicon before November 2021. That's why we are enabling 5.0 in R2 as well as enabling 6.0 to run natively. Also, there will be scenarios where 6.0 will need to run in R2 as well, so we might as well get that scenario working with 5.0. |
SDK should not allow to build anything for <6 osx-arm64 RID. But that's not what @taidang1902 failure is. That failure is the expected failure right now. The publish command chose 3.1 SDK (I'm guessing, but it's a pretty good guess), so it wants to run it on 3.1. The 6.0 arm64 hostfxr resolves the x64 3.1 framework installed and tries to load hostpolicy from it - and fails (arch mismatch). If it worked, that command should still fail if the app is targeting 3.1 (and it probably does fail since it won't find the osx-arm64 runtime pack for 3.1). |
OK. There is a different failure when publishing for osx-arm4 < NET6. Basically the cryptic message in that case is about no suitable AppHost found. |
This would happen for any unsupported RID really - pick any RID which is supported in 6 and not supported in 3.1 and try it on 3.1 - the experience will be the same I'm afraid. But I understand that maybe we want to do better for this case, as it's more likely to happen. |
Is there a plan to have .NET Core 3.1 run on M1/Silicon Macs without Rosetta? Our problem:
|
Theoretically it could work but it would be a bad experience for the customer. Same problem with QT. |
@gnida-rada There is no current plan to support 3.1 natively on Apple Silicon. If this is a significant issue, you should open a separate issue for it, so that it can be discussed in a separate thread. |
Will be closing this user story now. Only remaining issue is the intermittent NRE which we are continuing to investigate. There are some additional bugs which are tracked separately. |
What’s with renaming osx to macOS? |
Will need to move that to .net 7. |
Oh no :( |
Hey, @mangod9 do you have a link to the NullReferenceExceptions that you are tracking? I am interested in following that. We are hitting some NREs on non-macOS arm64 platforms as well, which might be the same or a different issue. |
Apple has announced plans to transition its Mac hardware line to a new Arm64-based chip that they refer to as “Apple Silicon”. This epic tracks the high level status of the milestones required to ship this feature in .NET 6.
.NET 6 will include new runtime id --
osx-arm64
-- for targeting this hardware. It refers to the macOS operating system running on Apple Silicon devices..NET Rosetta Emulation
.NET 6 - CoreCLR Native
Functionality
Testing
Stability
Availability
Details
See Enable .NET Core on Apple Silicon for the full set of related PRs and issues.
.NET 6 - Mono
Functionality
Testing
Stability
Availability
/cc @richlander @mangod9 @janvorli @JulieLeeMSFT @sandreenko @tommcdon @steveisok @directhex @akoeplinger @jeffschwMSFT
The text was updated successfully, but these errors were encountered: