dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.93k stars 4.64k forks source link

[Mono] An assertion that Android hit when using LLVM 14 with AOT #81610

Open fanyang-mono opened 1 year ago

fanyang-mono commented 1 year ago

Investigate and hopefully fix https://github.com/xamarin/xamarin-android/pull/6946. Then Android could remove the workaround.

Note that the LLVM version that Android team chooses to use here is not necessary align with what Mono uses for LLVM. This problem exist regardless Mono LLVM is enabled or not. This is related to LLVM 14 because the linker that Android team uses to create Android apps uses LLVM and that is part of NDK. So the LLVM version here was decided by the one used by Android NDK.

Mono AOT needs to learn to recognize the new pattern that lld generates starting LLVM 14.

akoeplinger commented 1 year ago

Shouldn't we put this in the 8.0 milestone?

fanyang-mono commented 1 year ago

As mono has been upgraded to LLVM 16, we may be able to remove the workaround?