Uh oh!
There was an error while loading. Please reload this page.
Enable non-blittable struct returns on UnmanagedCallersOnly - #45625
Enable non-blittable struct returns on UnmanagedCallersOnly#45625jkoritzinsky merged 42 commits into
Conversation
…e JIT. Block UnmanagedCallersOnly in crossgen1 since the attribute parsing code isn't included.
07215bd to
1b3ed1aCompareUh 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.
ViktorHofer
commented
Dec 8, 2020
// 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. |
jkoritzinsky
commented
Dec 8, 2020
This is ready for review. |
Uh oh!
There was an error while loading. Please reload this page.
…ndle all calling convention resolution and support extensible calling conventions.
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.
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
ghost
commented
Dec 14, 2020
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
jkotas
commented
Dec 14, 2020
Could you please resolve the conflict? |
jkoritzinsky
commented
Dec 14, 2020
Will do! |
Uh oh!
There was an error while loading. Please reload this page.
…eded on the entry-point functions.
sebastienros
commented
Dec 17, 2020
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 |
jkoritzinsky
commented
Dec 17, 2020
Yes there was a bug in this change that we fixed last night. The next Maestro update should have the fix. |
sebastienros
commented
Dec 17, 2020
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.