ABI hashes are non-deterministic
While packaging GHC 9.0.2 for Debian, we noticed that every time we build GHC, it results to different ABI hashes for the various libraries of GHC (see also https://bugs.debian.org/1015733). This was not the case with previous versions of GHC, so I tried git-bisect, which results in this commit:
first bad commit: [327b29e1] Monotonic locations (#17632 (closed))
I am CC-ing @int-index here, who is the author of this commit.
So far, I have tried the following, but haven't managed to get reproducible ABI hashes:
- Use the make build system (this is what we use in Debian)
- Use the hadrian build system
- Test with GHC 9.0.2 (the one we are trying to package in Debian)
- Test with GHC 9.2.4
- Test with GHC 9.4.2
- Test with parallel and non-parallel builds
It seems that any GHC after 8.10 is broken in this regard, and produces non-deterministic ABI hashes. This is a serious issue that prevents us from packaging GHC in Debian, since we cannot have the ABI change every time we rebuild the package. Can you please help us sort this out?