-
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
Enable non-blittable struct returns on UnmanagedCallersOnly #45625
Enable non-blittable struct returns on UnmanagedCallersOnly #45625
Conversation
…e JIT. Block UnmanagedCallersOnly in crossgen1 since the attribute parsing code isn't included.
07215bd
to
1b3ed1a
Compare
// Auto-generated message 69e114c which was merged 12/7 removed the intermediate src/coreclr/src/ folder. This PR needs to be updated as it touches files in that directory which causes conflicts. To update your commits you can use this bash script: https://gist.github.com/ViktorHofer/6d24f62abdcddb518b4966ead5ef3783. Feel free to use the comment section of the gist to improve the script for others. |
…lers-only-valuetype-return
This is ready for review. |
…ndle all calling convention resolution and support extensible calling conventions.
Co-authored-by: Jan Kotas <[email protected]>
Hello @jkoritzinsky! Because this pull request has the p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
…lers-only-valuetype-return
Could you please resolve the conflict? |
Will do! |
…eded on the entry-point functions.
…otnet#45625)" This reverts commit c64861b.
I have been investigating a failing merge in aspnetcore, and isolated a repro by switching from runtimes 35fbaef and c64861b The only commit in this range is from this PR. Here is an example of error messages we get while running some functional tests with this runtime. All tests pass with the runtime build preceding this commit. There are other very similar ones, most related to SslStream, like "bad frame". This only happens on Linux and MacOS agents.
Do you think there could be a reason for this change to be responsible? To reproduce, I cloned aspnetcore, updated the
|
Yes there was a bug in this change that we fixed last night. The next Maestro update should have the fix. |
Awesome, thanks for the quick feedback |
Fix issue introduced in dotnet#45625
Fix issue introduced in #45625
Now that #39294 is merged, we no longer need to require a stub when we return a non-primitive value type. This PR removes that restriction, which enabled using blittable value type returns with UnmanagedCallersOnly. This PR also enables passing the calling convention from UnmanagedCallersOnly to the JIT at both runtime and during crossgen with crossgen2. This enables the UnmanagedCallersOnly entrypoint to have the correct calling convention even though the entrypoint is technically managed.
This PR blocks crossgenning UnmangedCallersOnly methods in crossgen1 because the custom attribute parsing code is not currently included in crossgen1 and I didn't want to fight to get that hooked up since we're looking at deprecating/removing crossgen1 in the .NET 6 time frame anyway.
Fixes #35928.