The non-reproducibility observed in binaries built on different architectures appears to come from guix store paths being present in the debug info. These guix store paths appear to differ depending on the architecture. These paths can be mapped to /usr
using the GCC option -ffile-prefix-map
. As the paths will change as the package versions change, we use find
to search for all guix store paths to build a CFLAGS
that has all guix store paths mapped to /usr
.
Some glibc code ends up in our binaries as well and these also contain debug info with guix store paths. So glibc is also patched to map guix store paths to /usr
Alternative to #24569