RFR: JDK-8241616: Timestamps on ct.sym entries lead to non-reproducible builds

Martin Buchholz martinrb at google.com
Mon May 11 15:32:17 UTC 2020

Build reproducibility has become more important over the years.
That is especially true at Google, where reproducible builds are
more efficient.
We have modified versions of various archivers that can generate
deterministic metadata in the archive.
And that includes the "jar" command.
The file timestamps are the obvious thing to make reproducible, but there
are other sources of non-determinism, e.g. file system traversal order.

On Thu, Apr 30, 2020 at 12:05 AM Jan Lahoda <jan.lahoda at oracle.com> wrote:

> Hi,
> The building of lib/ct.sym is not reproducible, due to timestamps of
> files inside the file (which is basically a zip file).
> The proposed solution is to use a constant timestamp for the files
> inside the ct.sym file. To simplify the construction, the CreateSymbols
> tool does not produce files on the filesystem anymore, but rather
> constructs the ct.sym directly.
> Proposed webrev: http://cr.openjdk.java.net/~jlahoda/8241616/webrev.00/
> JBS: https://bugs.openjdk.java.net/browse/JDK-8241616
> How does this look?
> Thanks,
>      Jan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20200511/96e903c4/attachment.htm>

More information about the compiler-dev mailing list