[release/6.0] Disable R2R code for all associated components of a composite image #65536
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 #65482 to release/6.0
/cc @davidwrighton
Customer Impact
It is not safe to create a composite R2R image that uses a custom
-instruction-setswitch on .NET 6.0. The resulting binary will crash on a machine where the instruction set is not present instead of gracefully falling back to jit. See #61471 for details. While the--instruction-setswitch is not documented in docs.microsoft.com, @rickbrew indicates that he did see benefits for his customers, and we would like to get more coverage of this scenario in real world code as we explore using this feature of crossgen2 in upcoming .NET releases.Testing
Manual testing of a test case.
Risk
Low. This code only enables a new path for disabling R2R code, which is a well tested pathway.
IMPORTANT: If this change touches code that ships in a NuGet package, please make certain that you have added any necessary package authoring and gotten it explicitly reviewed.