Skip to content

gcc: undeterministic info pages #229470

@raboof

Description

@raboof

Building this package twice does not produce the bit-by-bit identical result each time, making it harder to detect CI breaches. You can read more about this at https://reproducible-builds.org/ .

Fixing bit-by-bit reproducibility also has additional advantages, such as avoiding hard-to-reproduce bugs, making content-addressed storage more effective and reducing rebuilds in such systems.

Steps To Reproduce

nix-build '<nixpkgs>' -A pkgsStatic.buildPackages.gccCrossStageStatic.cc --check --keep-failed

You can use diffoscope to analyze the differences in the output of the two builds.

To view the build log of the build that produced the artifact in the binary cache:

nix-store --read-log $(nix-instantiate '<nixpkgs>' -A pkgsStatic.buildPackages.gccCrossStageStatic.cc)

Additional context

An example of a diff can be found at https://reproducible.nixos.org/nixos-iso-minimal-r13y/diff/a7ca61e3544ed4d048e59882fae1eb24dbc04f0f5e7b832202581193b2eeca67-ee6aa0602d40df3930bb7192c44be53c703d9b49512904e39ee93b7b09333eb7.html (in /nix/store/4rll8l0q3ycfpykwn1wqk93x1jqayqkl-x86_64-unknown-linux-musl-stage-static-gcc-12.2.0.drv which was built from da45bf6)

Metadata

Metadata

Assignees

Labels

Projects

Status

Minimal ISO runtime

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions