Questions tagged [binary-reproducibility]

the goal or quality of consistently reproducing identical build output given identical source input, or often more specifically the goal of byte-for-byte identical executable files when built repeatedly, perhaps on different machines or at different times

Binary reproducibility is the goal or quality of consistently reproducing identical build output given identical source input, or often more specifically the goal of byte-for-byte identical executable files (or identical checksums, hashes or other digests of those files) when built repeatedly, perhaps on different machines or at different times. The process by which this is achieved is often called a deterministic build or reproducible build.

For software subject to a requirement to be able to determine whether an arbitrary executable resulted from building a specific set of sources, binary reproducibility provides a straightforward, easily explained answer to that requirement. This requirement is often applied to software that is security-sensitive (e.g. Bitcoin Core, Tor), or used in a heavily regulated market (e.g. avionics, health care equipment, licensed gambling).

A number of tools or elements involved in builds may hamper this goal for a variety of reasons. Inclusion of environmental information such as timestamps, compiler versions, user and computer names and absolute paths is common, as is inclusion of a random UUID on every run to simplify matching of an executable with related files such as detached debug symbols or platform-specific native images. Many compilers produce nondeterministic compiler-generated symbol names, either for constructs explicitly defined but not named by in source code, or as an artifact of an implementation detail not surfaced in source code at all. Finally, highly optimizing compilers may employ nondeterministic optimization techniques such as Monte Carlo simulation guided optimization or profile guided optimization.

66 questions
0
votes
1 answer

Why can't this code get me reproducibility from my Keras LSTM?

I have tried using the various resources here on StackExchange and those provided by Keras to obtain reproducible results from my LSTM. I am currently doing the following (and failing) to ensure reproducibility, in this order: I set the…
0
votes
0 answers

Reproducible results with Keras with Tensorflow background

I have my own network. But it is giving me different outputs each time I run the code. I'm using keras (with Tensorflow backend), write the following code for reproducibility. My training sample: 280, validation sample # 27, test sample # 21. #…
0
votes
2 answers

Same sources but compiled binary different

Hi I develop C/C++ for VxWorks on WinXP using ccarm compiler. And I would like to add a hot fix for on top of a released delivery which was build long time ago. Sources are kept on Clear Case and every delivery is labeled. So it's possible to access…
tguclu
  • 689
  • 3
  • 10
  • 25
0
votes
1 answer

Is Assembly.Evidence consistent between repeat builds?

I understand that repeat builds of an assembly from the same source code produce binaries with tiny differences: http://blog.paranoidcoding.com/2016/04/05/deterministic-builds-in-roslyn.html MVID: a GUID identifying the PE which is newly…
Colonel Panic
  • 132,665
  • 89
  • 401
  • 465
0
votes
1 answer

C++: get the same binary after strip with and without "-g"

I'm trying to improve the build time on a 1GB shared library that's built from ~400 dependencies and then stripped to 100MB. The dependencies are not stripped, so I'm thinking it might build faster if I pre-strip the dependencies before (or simply…
abo-abo
  • 20,038
  • 3
  • 50
  • 71
0
votes
1 answer

binary reproduction of boost 1.50

I have a need to see whether or not it is possible to make boost 1.50 binary reproducible with as little change to the source code as possible for the sake of source integrity. The challenge is to do it without changing any .cpp or .hpp file. Simply…
sbrett
  • 606
  • 4
  • 20
1 2 3 4
5