RFR: JDK-8241271 Make hotspot build reproducible

Jesper Wilhelmsson jesper.wilhelmsson at oracle.com
Mon Mar 23 08:48:16 UTC 2020


Hotspot change looks good, and trivial.
/Jesper

> On 23 Mar 2020, at 09:45, Magnus Ihse Bursie <magnus.ihse.bursie at oracle.com> wrote:
> 
> On 2020-03-20 14:19, Stefan Karlsson wrote:
>> HotSpot changes look good.
> 
> Can I have a second hotspot reviewer on this, or a confirmation that it's considered trivial?
> 
> /Magnus
>> 
>> StefanK
>> 
>> On 2020-03-20 14:15, Magnus Ihse Bursie wrote:
>>> Can I get some hotspot reviewers on this as well? And is this trivial, from the Hotspot PoV?
>>> 
>>> /Magnus
>>> 
>>> On 2020-03-20 14:05, Erik Joelsson wrote:
>>>> 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
>>>>> 
>>> 
>> 
> 




More information about the build-dev mailing list