[release/5.0] Leftover Utf8String defines are causing ILLinker warnings #41680
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.
The CreateRuntimeRootILLinkDescriptorFile task, which generates most of S.P.CoreLib's ILLink.Descriptor file for coreclr, doesn't respect #ifdefs. So even though FEATURE_UTF8STRING is disabled in the release/5.0 branch, it is still generating entries for Char8 and Utf8String. But since these managed types do not exist in the release/5.0 branch, the ILLinker is raising warnings.
To fix this, comment the DEFINE_CLASS entries out of the header file.
Fix #41654
Customer Impact
This fixes #41654. If anyone tries to link a coreclr application (console, asp.net, winforms, etc) they are getting warnings that they cannot fix.
Testing
I verified that linking with the new System.Private.CoreLib is no longer producing warnings by default.
Risk
Low - I commented out code that is already behind a
#ifdef
that is turned off.Notes
I chose to go the surgical route of removing these from the .h file instead of the full blown route of removing the all the
FEATURE_UTF8STRING
code because it is a safer change to make at this point in 5.0.