-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[NativeAOT] Implement thunk page generation and mapping for iOS-like platforms #82317
Conversation
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas Issue DetailsFixes #82090 Marked as draft for the moment since there are still missing bits in the build and test infrastructure. I manually tested it using the PInvoke NativeAOT test compiled for maccatalyst-arm64. The x64 code is completely untested but it compiles.
|
src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets
Outdated
Show resolved
Hide resolved
Does this test create enough delegates to hit the |
src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets
Show resolved
Hide resolved
No, but I manually modified the thunk allocation to always take the path and it still succeeded. |
For reference, here are all the build hacks and steps I did to make the test run. Start with this branch - https://github.com/filipnavara/runtime/tree/build-hacks. It's PR #82086 and bunch of hacks/fixes stacked on top of it. Build with the following steps:
It should fail with
Then merge this feature branch on top, rebuild the runtime, rebuild the test and rerun it:
The test will succeed. In order to test the |
bcbbc17
to
59090b7
Compare
59090b7
to
6c447e3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thank you!
Fixes #82090
Marked as draft for the moment since there are still missing bits in the build and test infrastructure. I manually tested it using the PInvoke NativeAOT test compiled for maccatalyst-arm64 and maccatalyst-x64. The PAL interfaces could likely be cleaned up quite a bit since the implementation has different requirements from the old Windows-only code.