Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ILASM] Add option to produce deterministic outputs #8293

Closed
MichalStrehovsky opened this issue Jun 6, 2017 · 6 comments · Fixed by #109091
Closed

[ILASM] Add option to produce deterministic outputs #8293

MichalStrehovsky opened this issue Jun 6, 2017 · 6 comments · Fixed by #109091
Assignees
Labels
area-ILTools-coreclr enhancement Product code improvement that does NOT require public API changes/additions in-pr There is an active PR which will close this issue when it is merged Priority:2 Work that is important, but not critical for the release
Milestone

Comments

@MichalStrehovsky
Copy link
Member

Various .NET compilers started adding /deterministic command line option that makes them produce deterministic output (multiple invocations of the compiler produce byte-for-byte identical outputs for the same input).

This includes fields such as:

  • The timestamp hardcoded in the PE header
  • The MVID value
  • PDB guid
  • Full paths to the source files
  • Maybe more
@RussKeldorph
Copy link
Contributor

@MichalStrehovsky I get the general goodness of this, but is this blocking anyone's real scenario currently, or is this just something you noticed?

@MichalStrehovsky
Copy link
Member Author

@RussKeldorph Just something I noticed. dotnet/corefx#20644 touched a test that relies on a binary that needs to be checked into the CoreFX repo only because the MVID is not stable when IL gets recompiled. /deterministic would likely avoid that (people might still have to touch the test when ILASM gets upgraded and something about the algorithm to generate stable MVID changes, but that would likely happen rarely). Definitely Pri3 (up-for-grabs?) issue in my view.

@msftgits msftgits transferred this issue from dotnet/coreclr Jan 31, 2020
@msftgits msftgits added this to the Future milestone Jan 31, 2020
MichalStrehovsky pushed a commit to MichalStrehovsky/runtime that referenced this issue Oct 12, 2020
Add FEATURE_MANUALLY_MANAGED_CARD_BUNDLES support
Add FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP support

If both features are enabled the GC can use Background GC without the need of hardware write watch support.
@joemmett
Copy link
Contributor

This would be valuable to the Microsoft C++ team. We have a broad goal to produce bit-for-bit identical build outputs and the lack of a deterministic ilasm is impacting a small number of artifacts we build with this tool.

@TIHan
Copy link
Contributor

TIHan commented Apr 24, 2023

I have added a deterministic flag /DET to the Framework's version of ILASM last year. We should be able to easily port those changes over to here.

@TIHan TIHan added the Priority:2 Work that is important, but not critical for the release label Apr 24, 2023
@TIHan TIHan self-assigned this Apr 24, 2023
@TIHan TIHan modified the milestones: Future, 8.0.0 Apr 24, 2023
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Apr 25, 2023
@ghost ghost added in-pr There is an active PR which will close this issue when it is merged and removed in-pr There is an active PR which will close this issue when it is merged labels May 27, 2023
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Jun 30, 2023
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Jul 14, 2023
@TIHan TIHan modified the milestones: 8.0.0, 9.0.0 Jul 17, 2023
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Aug 23, 2023
@dotnet-policy-service dotnet-policy-service bot added the in-pr There is an active PR which will close this issue when it is merged label Jun 4, 2024
@JulieLeeMSFT
Copy link
Member

We will not have time to work on this in .NET 9. Moving to .NET 10.

@JulieLeeMSFT JulieLeeMSFT modified the milestones: 9.0.0, 10.0.0 Jul 31, 2024
@JulieLeeMSFT JulieLeeMSFT assigned amanasifkhalid and unassigned TIHan Oct 15, 2024
@JulieLeeMSFT
Copy link
Member

@amanasifkhalid, reassigned the ILAsm issue to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-ILTools-coreclr enhancement Product code improvement that does NOT require public API changes/additions in-pr There is an active PR which will close this issue when it is merged Priority:2 Work that is important, but not critical for the release
Projects
None yet
7 participants