-
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
Mono runtime fails to build cross-compilers for x86/x64 on arm/arm64 #82495
Comments
In case it's useful, unscientific testing on my M1 showed using arm64 binaries for |
This PR allows an `osx-arm64` or `osx-x64` machine to produce a `mono-aot-cross` compiler that will run on the following host and create AOT images for the following targets: | Host | Target | Test App runs | |--------|--------|--------| | osx-arm64 | iossimulator-x64 | ✅ | | osx-arm64 | android-x64 | ✅ | | osx-arm64 | android-x86 | ✅ - depends on a hack for #89039 | Additionally a `linux-x64` or `linux-arm64` machine can build a `mono-aot-cross` compiler for these host/target pairs: | Host | Target | Test App runs | |--------|--------|--------| | linux-arm64 | android-x64 | ❓ | | linux-arm64 | linux_musl-x64 | ❓ | | linux-arm64 | android-x86 | ❓ | Related to #82495 * [aot][ios] Build cross-compilers targeting x64 hosted on arm64 * Use MONO_CROSS_COMPILE instead of host checks * [android][x86] Build mono-aot-cross hosted on osx-arm64 targeting android-x86 * fix build of mono-aot-cross hosted on linux-arm64 targeting android-x64 * runtime pipeline changes to build arm64 artifacts on x64 hardware * Fix linux_musl-arm64 builds --------- Co-authored-by: Jo Shields <directhex@apebox.org>
After #74715 and #89027 I think this is our status now (updating the table from #74175 (comment)):
I'm not sure what "disabled in #74175 means" - I think it means the CI pipelines were disabled. Some of them may be back on as part of #89027 @directhex |
Just meant "disabled in the PR I'm trying to get merged" Do we still support any scenarios where iossimulator-x86 or ios-arm matter? IOS dropped support for 32-bit ARM with iOS 11 (2017). I can't easily determine when x86 support for the simulator was dropped, but I imagine it's the same thing if the whole-ass OS lost 32-bit support at once. What's the minimum iOS version we support? |
@directhex No, we do not support x86 and arm on ios any longer. @akoeplinger what's the min iOS version we are targeting in .NET 8? |
We should kill them for 8 then |
@akoeplinger did in #81965 I also found iOS 11 is the min we support for .NET 8 |
…, and android where possible As a result of dotnet#89027 and dotnet#74715, we can now build native arm64 cross compilers on linux and macos. This change adds the right references to the workload manifest so that they can be installed with maui and the mobile SDK's. win-arm64 is the only arm64 platform left and that is a work in progress. Contributes to dotnet#82495 Fixes dotnet/maui#4476
…, and android where possible (#89961) As a result of #89027 and #74715, we can now build native arm64 cross compilers on linux and macos. This change adds the right references to the workload manifest so that they can be installed with maui and the mobile SDK's. win-arm64 is the only arm64 platform left and that is a work in progress. Contributes to #82495 Fixes dotnet/maui#4476
Assigning to @directhex for accurate tracking. |
I think 9.0 is fine. There's really no time to test the win-arm64 cross compiler. That's the only one left in the bunch. |
Yeah I have no confidence that we can get windows arm64 tested adequately in time for 8. There's an open PR for now
|
Splitting out the issues described in #74175, especially the comments #74175 (comment) and #74175 (comment)
As-is, we cannot build cross-compilers from arm64 to x64, so we cannot build cross-compilers for osx-arm64 to iOS, tvOS, Android, or Mac Catalyst. The same problem applies for Linux cross-compilers to Android. The build system is ready on the mono.proj etc side, it's problems with the Mono runtime itself.
The text was updated successfully, but these errors were encountered: