Skip to content

Use a platform-neutral name for Microsoft.DiaSymReader.Native#125165

Merged
akoeplinger merged 5 commits intodotnet:mainfrom
MichalStrehovsky:fixrebootstrap
Mar 4, 2026
Merged

Use a platform-neutral name for Microsoft.DiaSymReader.Native#125165
akoeplinger merged 5 commits intodotnet:mainfrom
MichalStrehovsky:fixrebootstrap

Conversation

@MichalStrehovsky
Copy link
Member

Fixes issues that we're running into when rebootstrapping the dotnet/dotnet build (dotnet/dotnet#5155 (comment)).

Microsoft.DiaSymReader.Native.(x86|x64|arm64).dll clashes with the same name DLL in the runtime pack. Not having a suffix is simpler in the end.

Cc @dotnet/appmodel

Fixes issues that we're running into when rebootstrapping the dotnet/dotnet build (dotnet/dotnet#5155 (comment)).

`Microsoft.DiaSymReader.Native.(x86|x64|arm64).dll` clashes with the same name DLL in the runtime pack. Not having a suffix is simpler in the end.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates CoreCLR tooling to use a platform-neutral Microsoft.DiaSymReader.Native.dll name (instead of arch-suffixed names) to avoid DLL name clashes during dotnet/dotnet build bootstrapping.

Changes:

  • Update crossgen2 publishing/layout to copy/link DiaSymReader native binary as Microsoft.DiaSymReader.Native.dll.
  • Simplify PdbWriter native library loading by removing the custom DllImportResolver (now relying on default resolution).
  • Add Microsoft.DiaSymReader.Native.dll to the SuperPMI collection ignore list.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
src/coreclr/tools/aot/crossgen2/crossgen2.props Renames the copied DiaSymReader native asset to a platform-neutral filename in crossgen2 output/publish.
src/coreclr/tools/aot/ILCompiler.Diagnostics/PdbWriter.cs Removes custom native DLL resolver so LibraryImport resolves via default loader behavior.
src/coreclr/scripts/superpmi_collect_setup.py Ignores the new neutral DiaSymReader DLL during SuperPMI payload partitioning.

You can also share your feedback on Copilot code review. Take the survey.

@MichalStrehovsky MichalStrehovsky marked this pull request as draft March 4, 2026 04:55
Copilot AI review requested due to automatic review settings March 4, 2026 05:42
@MichalStrehovsky MichalStrehovsky marked this pull request as ready for review March 4, 2026 05:42
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.


You can also share your feedback on Copilot code review. Take the survey.

@akoeplinger akoeplinger merged commit e524be6 into dotnet:main Mar 4, 2026
103 of 105 checks passed
@MichalStrehovsky MichalStrehovsky deleted the fixrebootstrap branch March 4, 2026 10:50
MichalStrehovsky added a commit to MichalStrehovsky/runtime that referenced this pull request Mar 9, 2026
I always wondered why we need to AOT compile ilc and crossgen2 twice, but never cared enough. With copilot cli I'm building clr.tools more often, so it crossed the threshold for me caring:

* I don't think we ever needed to do this for ilc
* We _possibly_ don't need this for crossgen2 after dotnet#125165
MichalStrehovsky added a commit that referenced this pull request Mar 10, 2026
I always wondered why we need to AOT compile ilc and crossgen2 twice,
but never cared enough. With copilot cli I'm building clr.tools more
often, so it crossed the threshold for me caring:

* I don't think we ever needed to do this for ilc
* We _possibly_ don't need this for crossgen2 after
#125165
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants