RFR: 8278766: Enable OpenJDK build support for reproducible jars and jmods using --date

Andrew Leonard aleonard at openjdk.java.net
Fri Dec 17 13:54:19 UTC 2021


On Fri, 17 Dec 2021 11:18:10 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:

>> If "reproducible build" is enabled, then utilize the new --date option in the building of jar's and jmods.
>> Validating the boot jdk supports --date for the building of the jars.
>> 
>> Signed-off-by: Andrew Leonard <anleonar at redhat.com>
>
> make/common/MakeBase.gmk line 145:
> 
>> 143: # If reproducible builds are enabled then set SOURCE_DATE_ISO_8601 string variable
>> 144: ifeq ($(ENABLE_REPRODUCIBLE_BUILD), true)
>> 145:   SOURCE_DATE_ISO_8601 := $(shell $(DATE) --utc --date="@$(SOURCE_DATE_EPOCH)" +"%Y-%m-%dT%H:%M:%SZ" 2> /dev/null)
> 
> This should be set up by the configure script. Look for where we are currently doing the SOURCE_DATE_EPOCH stuff.
> 
> Also consider the possibility to *just* use this variable, and pass it on to jar if it is present, and not if it's missing. That way you can get rid of the redundant boolean variable.

@magicus I looked at that, but the problem is SOURCE_DATE_EPOCH is set in InitSupport.gmk depending on whether SOURCE_DATE=="updated" : https://github.com/openjdk/jdk/blob/739769c8fc4b496f08a92225a12d07414537b6c0/make/InitSupport.gmk#L315
I also couldn't add it in InitSupport.gmk because that marco is not included from every place SetupJarArchive is resolved.
Thoughts?

-------------

PR: https://git.openjdk.java.net/jdk/pull/6878



More information about the build-dev mailing list