Reproducible Builds on Windows

Andrew Leonard anleonar at redhat.com
Tue Dec 3 11:04:54 UTC 2024


For reproducible Windows builds of OpenJDK, we found the build PATH "hash"
was an issue,
i'm not totally sure if all those deterministic options can avoid it. We
work around the issue
by always using "relative" build paths for compilation.
Have you tried also using the --pathmap: option to map source paths
generated by the compiler?
Not sure but it may make the "hashes" deterministic maybe...
ref:
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/advanced



On Mon, Dec 2, 2024 at 11:25 AM Chris Lamb <chris at reproducible-builds.org>
wrote:

> Danilo wrote:
>
> > https://try.diffoscope.org/hxsyehbrkftf.html (link valid for 30 days).
> > There are no paths embedded in the binary. To me, this looks like some
> > kind of optimization, but I don't know where it's coming from.
>
> I've come across more than one file format that _hashes_ the build
> path and then uses that value as a debug/interface/build identifier.
> Crucially, as the build path is hashed, it does not appear as a
> literal string in the binary, so not seeing the build path in
> diffoscope is not conclusive.
>
> Whilst I've seen this used as part of the Link-Time Optimisation
> puzzle, the switch to disable stuff like that might be in the linker
> or debug area of your compiler docs — not the optimisation part.
>
> That would be my guess anyway... Am throwing it over the wall given
> you seem to be working on this as we type. :)  No doubt someone much
> more informed about this file format will chime in and correct me.
>
>
> Best wishes,
>
> --
>       o
>     ⬋   ⬊      Chris Lamb
>    o     o     reproducible-builds.org 💠
>     ⬊   ⬋
>       o
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.reproducible-builds.org/pipermail/rb-general/attachments/20241203/2dcbcf3e/attachment.htm>


More information about the rb-general mailing list