RFR: JDK-8241271 Make hotspot build reproducible

Stefan Karlsson stefan.karlsson at oracle.com
Fri Mar 20 13:19:16 UTC 2020


HotSpot changes look good.

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