RFR: 8288396: Always create reproducible builds [v5]

Erik Helin ehelin at openjdk.org
Mon Jun 27 11:47:45 UTC 2022


On Wed, 15 Jun 2022 15:18:04 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:

>> When we started introducing some possibly more intrusive compiler flags and functionality for reproducible builds, we also introduced a flag to turn this off  out of an abundance of caution. But we have been been using this configuration for a year or so internally within Oracle, with no issues. So there's really no reason to be able to turn this off. (If you were to ask me, the fact that compilers and build tools ever started to produce non-deterministic output has been a bug from day one.)
>> 
>> With this fix, all randomness should be gone from our builds, at least on linux and windows. There are no more `__DATE__` and `__TIME__` macros in the source code.
>
> Magnus Ihse Bursie has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Remove incorrect argument
>  - Test if linker can accept the flag

The HotSpot changes looks good to me.

The only problem I can think of is if some program is parsing the version string and relies on `__DATE__` having the form `Mmm dd yyyy` (as mandated by the C++ spec) and now it will have ISO 8601 format, but I don't think that issue should prevent this change. Those programs will just have to be updated 😃

-------------

Marked as reviewed by ehelin (Reviewer).

PR: https://git.openjdk.org/jdk/pull/9152


More information about the serviceability-dev mailing list