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_TIMESTAMP
as 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-map
options for user-space - linux-perf: Remove remaining source filename from executable
- linux-perf: Work around gcc bug with
-ffile-prefix-map
and assembly sources - Documentation: Use relative source filenames in ABI documentation
- kbuild, bpf: Fix BTF reproducibility
- d/rules.real: Add
-fdebug-prefix-map
option 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
vmlinux
differs.
- 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