Re:You don’t need reproducible builds
by sreevisakh on Wednesday August 05, 2020 @01:57PM
(#24063600)
How about using a different toolchain? (eg: gcc vs clang). Or even different versions of a toolchain? Or a dependency that has to be downloaded? Being able to build consistently requires way more effort than just following professional practices. One method I know is to pin everything that goes into a build - source, dependencies, toolchains, configurations and environment.
Results of non-consistent build can be as simple as a difference in performance. But it could also be a malware injected through the compiler.
Re:You don’t need reproducible builds
by AlexTWithBeard on Wednesday August 05, 2020 @03:06PM
(#24064331)
Yes, yes and yes.
The toolchain and the dependencies should be pinned.
Otherwise sooner or later you'll hit the customer's issue that you won't be able to reproduce - until you realize it's some subtle bug in the specific version of your compiler.
In Java for example you this might happen from generated classes in my case JAXB classes generated from xsd.
In in javascript minimizers are not deterministic leading to different .js files.
Running into this has nothing to do with professionalism.
If building the same source produces different binaries, then I'd like to know (a) what is causing the difference and (b) what other differences does it cause?
Being able to produce a consistent result is simply a sign of professionalism.