You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have hexdumps of the same binary produced by the same tools version on two different machines. They differ; I can't explain everything but most of it traces to emitting the version resource in arbitrary order; and most of the rest appears to be other string constants emitted in arbitrary order too.
To Reproduce
Have Linux-x64 (I am reporting this on Linux-x64 no point looking at Windows)
Either build patchdosstub (nasm -f bin patchdosstub patchdosstub.asm) or take the reference to it out of the build step. This step is irrelevant to the reproduction but if you don't resolve it one way or the other the build will bomb.
enter FileSystems and run dotnet build -c Release Emet.FileSystems.csproj
Exceptions (if any)
None
Further technical details
dotnet --info machine 1:
.NET SDK:
Version: 8.0.403
Commit: c64aa40a71
Workload version: 8.0.400-manifests.18f19b92
MSBuild version: 17.11.9+a69bbaaf5
Runtime Environment:
OS Name: debian
OS Version: 12
OS Platform: Linux
RID: linux-x64
Base Path: /usr/share/dotnet/sdk/8.0.403/
.NET workloads installed:
Configured to use loose manifests when installing new manifests.
There are no installed workloads to display.
Host:
Version: 8.0.10
Architecture: x64
Commit: 81cabf2857
.NET SDKs installed:
2.1.818 [/usr/share/dotnet/sdk]
3.1.426 [/usr/share/dotnet/sdk]
5.0.408 [/usr/share/dotnet/sdk]
6.0.427 [/usr/share/dotnet/sdk]
8.0.403 [/usr/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.All 2.1.30 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.30 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.32 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.35 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.10 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.30 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.32 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.35 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.10 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
Not set
global.json file:
Not found
dotnet --info machine 2:
NET SDK:
Version: 8.0.403
Commit: c64aa40a71
Workload version: 8.0.400-manifests.18f19b92
MSBuild version: 17.11.9+a69bbaaf5
Runtime Environment:
OS Name: debian
OS Version: 12
OS Platform: Linux
RID: linux-x64
Base Path: /usr/share/dotnet/sdk/8.0.403/
.NET workloads installed:
Configured to use loose manifests when installing new manifests.
There are no installed workloads to display.
Host:
Version: 8.0.10
Architecture: x64
Commit: 81cabf2857
.NET SDKs installed:
7.0.410 [/usr/share/dotnet/sdk]
8.0.403 [/usr/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.20 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.10 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.20 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.10 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
Not set
IDE: None
Checklist
The sequence of command-line parameters.
dotnet build -c Release Emet.FileSystems.csproj
The contents of the compiler's .rsp response file.
N/A
The precise version of the compiler used, and its referenced assemblies.
Same version number in dotnet --info
The current directory path.
Debug type is none so current directory doesn't go to output anyway
The binary contents of all files explicitly passed to the compiler either directly or indirectly, including:
Source files
Equivalent: rm -rf Filesystems/bin FileSystems/obj on both followed by tar -cf - Emet.FileSystems | ssh tar -xf -
Referenced assemblies
Equivalent due to same exact project file
Referenced modules
Equivalent due to same exact project file
Resources
Equivalent due to same exact project file
The strong name key file
None
@ response files
Equivalent due to same exact project file
Analyzers
Still at factory defaults on both machines
Rulesets
Still at factory defaults on both machines
Other files that may be used by analyzers
Still at factory defaults on both machines
The current culture (for the language in which diagnostics and exception messages are produced).
EN-US for both
The default encoding (or the current code page) if the encoding isn't specified.
All input files are 7 bit ASCII
The existence, non-existence, and contents of files on the compiler's search paths (specified, for example, by -lib or -recurse).
Equivalent due to same exact project file
The Common Language Runtime (CLR) platform on which the compiler is run.
dotnet --info is the same
The value of %LIBPATH%, which can affect analyzer dependency loading.
Seems to be a Windows thing; no such environment variable on Linux
Diff
This seems to be the important part of the diff of the hexdump of the files.
I have attached both original hexdumps and the diff in a zip file.hex.zip
Describe the bug
<Deterministic>true</Deterministic>
isn't.I have hexdumps of the same binary produced by the same tools version on two different machines. They differ; I can't explain everything but most of it traces to emitting the version resource in arbitrary order; and most of the rest appears to be other string constants emitted in arbitrary order too.
To Reproduce
dotnet build -c Release Emet.FileSystems.csproj
Exceptions (if any)
None
Further technical details
dotnet --info machine 1:
dotnet --info machine 2:
IDE: None
Checklist
dotnet build -c Release Emet.FileSystems.csproj
dotnet --info
rm -rf Filesystems/bin FileSystems/obj
on both followed bytar -cf - Emet.FileSystems | ssh tar -xf -
Diff
This seems to be the important part of the diff of the hexdump of the files.
I have attached both original hexdumps and the diff in a zip file.hex.zip
The text was updated successfully, but these errors were encountered: