Fix most reproducibility issues
This MR fixes most of the outstanding reproducibility issues, but not all.
I built the full package using reprotest, disabling the fileordering
variation (which I couldn't get to work in a container) and the time
variation (which seemed to cause an infinite loop of Makefile updating).
diffoscope needed more than the available 16 GB RAM to compare all
packages, but I have been able to compare binary packages one-by-one and
only look at the "cloud-amd64" flavour in depth.
The changes are:
- Revert "perf tools: Use
$KBUILD_BUILD_TIMESTAMPas man page date". The actual fixes for man page reproducibility are upstream since 6.5-rc1, so this just removes our old broken patch for it. - d/rules.real: Fix missing
-ffile-prefix-mapoptions for user-space - linux-perf: Remove remaining source filename from executable
- linux-perf: Work around gcc bug with
-ffile-prefix-mapand assembly sources - Documentation: Use relative source filenames in ABI documentation
- kbuild, bpf: Fix BTF reproducibility
- d/rules.real: Add
-fdebug-prefix-mapoption for assembly sources in kernel
The remaining problems are:
-
linux-doc-6.11:- In
html/translations/zh_TW/process/license-rules.html, the "current" class is applied to some different elements. - The sidebar ToC sometimes changes.
- In
-
linux-image-6.11+unreleased-cloud-amd64-unsigned:- The built-in certificate changes.
- Module signatures change.
-
linux-image-6.11+unreleased-cloud-amd64-dbg:- diffoscope OOMs when trying to compare this but a simple diff of
the contents shows that only
vmlinuxdiffers.
- diffoscope OOMs when trying to compare this but a simple diff of
the contents shows that only
This is currently based on top of !1213 (merged), which is needed to make
objtool reproducible.
Edited by Ben Hutchings