Using the full store hash as the random seed occasionally caused reference cycles when the invocation was stored in output artifacts. For example, cross-compiled gcc was failing due to this: https://hydra.nixos.org/eval/1631713#tabs-now-fail Simply truncating the hash is sufficient to avoid this.
10 lines
392 B
Bash
10 lines
392 B
Bash
# Use the last part of the out path as hash input for the build.
|
|
# This should ensure that it is deterministic across rebuilds of the same
|
|
# derivation and not easily collide with other builds.
|
|
# We also truncate the hash so that it cannot cause reference cycles.
|
|
export NIX_CFLAGS_COMPILE+=" -frandom-seed=$(
|
|
outbase="${out##*/}"
|
|
randomseed="${outbase:0:10}"
|
|
echo $randomseed
|
|
)"
|