[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