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.