[release/11.0-preview6] Avoid stripping IL of non-async Task-returning methods#129975
Merged
svick merged 1 commit intoJun 30, 2026
Merged
Conversation
The IL of these may be needed at runtime to compile async versions.
jkotas
approved these changes
Jun 29, 2026
JulieLeeMSFT
approved these changes
Jun 29, 2026
Member
|
/ba-g all known test errors. |
Member
Member
|
@jakobbotsch, is this PR still needed or do we need the new PR - #129999? |
Member
Yes, we need this PR, it is a separate issue from what #129999 is solving. |
Member
|
I don't have perms to JIT and merge this |
kotlarmilos
approved these changes
Jun 30, 2026
rolfbjarne
pushed a commit
to dotnet/macios
that referenced
this pull request
Jul 3, 2026
…ons and re-enable the x64 CoreLib composite root (#25876) ## Description This PR improves R2R on Apple mobile in Debug. The first fix addresses the crossgen2 failure in #25867. The `_SelectR2RAssemblies` target excluded user assemblies from the ReadyToRun composite by bare file name, but loose assemblies copied into resource subfolders of the app bundle, such as Uno's `uno.ai.xamlgeneration.assets` tooling assets, have a `PublishFolderType` of Resource and an empty `NuGetPackageId`, so they were misclassified as user assemblies and added to `PublishReadyToRunExclude`. The second change re-enables the `System.Private.CoreLib` composite-root optimization on x64. That optimization was scoped to arm64 RuntimeIdentifiers in #25787 because it regressed x64 builds with a `System.Runtime.Intrinsics.Vector256` crash, but the underlying crossgen2 issue is fixed by dotnet/runtime#129975, now backported to release/11.0-preview6, so the arm64-only restriction is removed and `PublishReadyToRunCompositeRoots` is applied to all RuntimeIdentifiers again. Fixes #25867 Fixes #25734 --------- Co-authored-by: Milos Kotlar <kotlarmilos@gmail.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #129884 to release/11.0-preview6
/cc @jakobbotsch
Customer Impact
Crossgen2 may strip IL of Task-returning methods that will be needed at runtime if runtime async is enabled. This results in
NullReferenceExceptionat runtime. Reported in #129813.Regression
Introduced in #128384 that started depending on user IL when compiling async variants of non-async Task/ValueTask-returning methods.
Testing
Verified that customer's test case progresses further when IL stripping is disabled.
Risk
Low. Disable stripping of IL for non-async Task-returning methods.