Uh oh!
There was an error while loading. Please reload this page.
Enable building NativeAOT for Apple mobile platforms - #81780
Conversation
These changes allow the NativeAOT runtime to compile for and run on iOS, tvOS and MacCatalyst. Contributes to dotnet#81024
ghost
commented
Feb 7, 2023
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas Issue DetailsThese changes allow the NativeAOT runtime to compile for and run on iOS, tvOS and MacCatalyst. Contributes to #81024, to actually compile an app we still have a few more changes that need to be upstreamed. /cc @dotnet/ilc-contrib @ivanpovazan
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
W.r.t. thunk mapping: I believe NativeAOT implements two strategies for how to generate these thunks. The current default ( |
ivanpovazan
commented
Feb 8, 2023
Good point! My understanding is that |
filipnavara
commented
Feb 8, 2023
Yes. It's used for delegates that have closure over some variables and need an associated context to reference the closure object, and the delegate is passed to native code. There's some test for it in
I think it may be worth creating an issue so that the knowledge about |
Turns out there are actually three different code paths for the thunks:
Currently there's no Unix code for anything but the UPD: I updated my prototype to generate the static thunks, on macOS it passes the PInvoke test, so that's a good start. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
5cebff1 to
c28bfd1Compare| endif(FEATURE_MERGE_JIT_AND_ENGINE) | ||
| if (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST) | ||
| if (CLR_CMAKE_TARGET_OSX) |
There was a problem hiding this comment.
this was erroneously added in 45887d1, MacCatalyst isn't building this piece.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
These changes allow the NativeAOT runtime to compile for and run on iOS, tvOS and MacCatalyst.
Contributes to #81024, to actually compile an app we still have a few more changes that need to be upstreamed.
/cc @dotnet/ilc-contrib @ivanpovazan