RFR: JDK-8241271 Make hotspot build reproducible

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Mon Mar 23 08:45:20 UTC 2020


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