Looks good!
/Erik
On 2020-03-20 03:58, Magnus Ihse Bursie wrote:
On 2020-03-19 19:01, Erik Joelsson wrote:
On 2020-03-19 10:20, Magnus Ihse Bursie wrote:
Currently, it is not possible two make hotspot builds reproducible,
since the current date and time is always inserted using the special
macros __DATE__ and __TIME__. This patch makes it possible to
override these values from the build system, paving the way for
making re-builds of hotspot bit-by-bit identical.
I like the ability to achieve this.
On linux/gcc, we can now actually get bit-by-bit identical builds of
libjvm.so (if not using precompiled headers), so I've updated the
baseline-cmp profiles and compare script to reflect this.
I'm not sure this is a good idea though. It means I can't reasonably
compare to validate build changes that affect the precompiled header.
Similarly, the COMPARE_BUILD make variable argument will not work
unless you use both of these configure arguments.
Since compare.sh is generated through configure, perhaps these
exceptions can be made conditional on if these configure arguments
are setup correctly for a reproducible libjvm.so?
Good thinking! I did not think of this possibility. And yes, I too did
not like the current solution, but could think of no way around it.
Here's an improved webrev.
WebRev:
http://cr.openjdk.java.net/~ihse/JDK-8241271-make-hotspot-reproducible/webrev.02
Technically, you can make this fail by setting HOTSPOT_BUILD_TIME but
to different values, but hey, there's no need to make this idiot-proof.
/Magnus
/Erik
Bug: https://bugs.openjdk.java.net/browse/JDK-8241271
WebRev:
http://cr.openjdk.java.net/~ihse/JDK-8241271-make-hotspot-reproducible/webrev.01
/Magnus