[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