linux: manual-config: use a non-random path for $buildRoot

Fixes reproducibility issues with x86/amd64 VDSO ELFs Build-IDs.

The kernel build system tries pretty hard to not leak build file paths
in its output. However, the embedded VDSO ELF files are built using
slightly different build options that do not include the path mapping
options that protect the rest of the kernel against this issue.

This should be fixed upstream eventually, but a lot of this logic is
duplicated across architecture, so I don't expect it will be a trivial
fix. Instead, make our derivation use a fixed build root directory so
this does not impact the build reproducibility.

Fixes #227800.
This commit is contained in:
Pierre Bourdon
2023-05-18 15:29:11 +00:00
committed by Alyssa Ross
parent bec974b12f
commit a695425e46
@@ -179,7 +179,8 @@ stdenv.mkDerivation ({
configurePhase = ''
runHook preConfigure
export buildRoot=$(mktemp -d)
export buildRoot=$TMPDIR/kernel-buildroot
mkdir -p $buildRoot
echo "manual-config configurePhase buildRoot=$buildRoot pwd=$PWD"