Skip to content
Commits on Source (2)
......@@ -16,11 +16,16 @@ other tools might be sufficiently easy.
In most cases however, post-processing is required to either remove the
build path or to normalize it to a predefined value.
For the specific case of [DWARF
For the specific case of [debug
symbols](https://en.wikipedia.org/wiki/DWARF), there is currently no good
tool to
change them to a pre-determined value after a build[^debugedit]. A work-around is to
[define the build path as part of the build environment]({{ "/docs/perimeter/" | prepend: site.baseurl }}).
post-processing tool to
change them to a pre-determined value[^debugedit]. A work-around is to
[define the build path as part of the build environment]({{ "/docs/perimeter/" | prepend: site.baseurl }}),
however `reprotest` changes it so this makes it harder to assess reproducibility.
Another work-around is GCC's `-fdebug-prefix-map`, though it does not
fix other sources of irreproducibility such as `__FILE__`, and in some
packages the option itself is saved into other parts of the build
output by another tool.
[^debugedit]: [debugedit](https://fedoraproject.org/wiki/Releases/FeatureBuildId) can replace the path used at build time by a predefined one but it does that by rewriting bytes in place. As this does not reorder the hash table of strings, the resulting bytes are still depending on the original build path.
......