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

Frederic Thevenet fthevene at redhat.com
Wed Jun 5 18:21:35 UTC 2024


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
>>
>

-- 
Frederic Thevenet
Senior Software Engineer - OpenJDK
Red Hat France <https://www.redhat.com>
BAF5 C2D2 0BE0 1715 5EE1 0815 2065 AD47 B326 EB92



More information about the jdk-updates-dev mailing list