RFR: JDK-8241271 Make hotspot build reproducible
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Fri Mar 20 10:58:01 UTC 2020
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
More information about the hotspot-dev
mailing list