RFR: JDK-8241271 Make hotspot build reproducible

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Fri Mar 20 13:15:25 UTC 2020


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