[jdk11u-dev] It is no longer possible to build jdk11u with a jdk10 boot JDK and --with-jtreg

Jonathan Gibbons jonathan.gibbons at oracle.com
Wed Jun 5 22:35:10 UTC 2024


I think that is an excellent discussion for the updates team ;-)

For my part, with a jtreg hat on, I note this discussion means that we 
should be "careful" about moving `jtreg` forward beyond 11, at least for 
the time being.

-- Jon

On 6/5/24 11:21 AM, Frederic Thevenet wrote:
> This makes sense, thanks.
>
> Thinking aloud, would it makes sense to recommend (or even mandate) 
> the use of a same-major-version JDK to bootstrap an update release, 
> since by the time a JDK becomes available as an update release, we are 
> guaranteed that at least one GA release of it has already happened?
>
> Thanks,
> Frederic
>
> [1] https://openjdk.org/groups/build/doc/building.html
>
> On 05/06/2024 19:56, Jonathan Gibbons wrote:
>> The philosophy behind the N-1 rule is to use a recent GA version.
>>
>> With our current fast cadence of releases, half the time you need N-2 
>> to get a recent GA version.   Fir example, later this week, after we 
>> fork the repos for JDK 23, it will be the case that because 23 is not 
>> released yet, you will need 22 to build the dev versions of 24.
>>
>> All of which is to say the N-1 is not absolute. For update releases, 
>> it would seem to be reasonable to use a GA release of N to build an 
>> update release of N.
>>
>> -- Jon
>>
>>
>> On 6/5/24 12:53 AM, Frederic Thevenet wrote:
>>> Hi,
>>>
>>> The build guide over on openjdk.org states that the "the boot JDK 
>>> for building JDK major version N should be a JDK of major version N-1".
>>> This, however, appears to no longer be possible for 11u since 
>>> 11.0.24+3 under certain circumstances.
>>> Starting with the backport of 8314495[2], 'configure' now enforces 
>>> that the version of jtreg passed using '--with-jtreg' is 7.3.1 or 
>>> higher  as it now requires jtreg 7.3.1 [1] and fails if this is not 
>>> the case.
>>> Jtreg 7.x, however, requires jdk11 or higher.
>>>
>>> As a result, when attempting to build jdk11u from the latest tag 
>>> with  a jdk 10 bootJDK, you'll either be presented with the 
>>> following error when running configure with jtreg 6.x:
>>> "configure: error: jtreg version is too old, at least version 7.3.1 
>>> is required"
>>>
>>> Or the following error when using jtreg 7.3.1:
>>> "checking jtreg version number... Error: LinkageError occurred while 
>>> loading main class com.sun.javatest.regtest.Main
>>>     java.lang.UnsupportedClassVersionError: 
>>> com/sun/javatest/regtest/Main has been compiled by a more recent 
>>> version of the Java Runtime (class file version 55.0), this version 
>>> of the Java Runtime only recognizes class file versions up to 54.0"
>>>
>>> As a result, it is only possible to successfully run configure using 
>>> jdk11 as the bootJDK, which is in direct contradiction with the 
>>> statement from the openjdk build guide, so I think it is important 
>>> that things are clarified in one way or another.
>>>
>>> Regards,
>>> Frederic
>>>
>>> [1] 
>>> https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk/master/doc/building.html#boot-jdk-requirements
>>> [2] https://github.com/openjdk/jdk11u-dev/pull/2612
>>>
>>
>


More information about the jdk-updates-dev mailing list