Reproducible Builds on Windows

James Addison jay at jp-hosting.net
Mon Dec 2 11:18:01 UTC 2024


Hi Danilo,

On Mon, 2 Dec 2024 at 11:06, Danilo <mail at dbrgn.ch> wrote:
> [ ... snip ... ]
> Does someone have a hunch from looking at that diffoscope output on what
> the reason could be? I already set /Brepro, /DEBUG:NONE and
> /INCREMENTAL:NO, see
> https://github.com/threema-ch/node-argon2/blob/9bcd7f73805d9ea3aef318db40d40581e2fc2577/binding.gyp#L17-L23

I'm not an expert on the relevant toolchains here, but I do note that
since a file hash noted in the objdump output is changing, we may
expect that to be caused by the differences in the other files --
making an assumption that they are included in the hash input.

In particular, I reckon the assembly code -- and the LEA (load
effective address, if I understand correctly) instructions that differ
are likely to be the problem.  I don't know why the compiler is
producing different values as arguments to those instructions -- nor
where in the source code is the relevant high-level-language code that
produces those assembly instructions -- but that's where I'd begin
investigating.  If you're able to open the argon2.node file in an
assembly-code viewer and locate those instructions, you may be able to
find clues in the preceding/subsequent instructions that can help you
narrow down where in the source code they originate from.

Regards,
James


More information about the rb-general mailing list