On 2/11/24 03:14, Julian Waters wrote:
Hi Erik,
Thanks for the clarification! How then does Oracle compile the JDK,
such that the versioning numbers appear in the following manner?
C:\Users\vertig0>java --version
java 21 2023-09-19 LTS
Java(TM) SE Runtime Environment (build 21+35-LTS-2513)
Java HotSpot(TM) 64-Bit Server VM (build 21+35-LTS-2513, mixed mode,
sharing)
(My system doesn't have OpenJDK as its main JDK, and uses the Oracle
JDK instead. The "Java" strings should rightfully be "OpenJDK", so pay
no mind to that. Last I remember, the printed OpenJDK version is the
same as above except for "Java(TM)" being "OpenJDK" instead)
The MSYS2 Project would prefer to have its MinGW JDKs versioned as
such (Eg build 21+35-LTS-2513 or whatever), rather than something like
"23-internal-adhoc.mingwci.jdk", and we'd prefer to mimic how Oracle
compiles both OpenJDK and Oracle JDK as closely as possible.
I believe Oracle probably does it by specifying different parts of the
version string on configure, something like
bash configure <Whatever the option string and other compile options are>
make product-bundles
but I'd like to know the exact flags used, especially for Windows
binaries, if possible
These are the relevant arguments we used for that particular build:
--with-version-build=35 --with-version-pre= --with-version-opt=LTS-2513
/Erik
best regards,
Julian
On Thu, Feb 1, 2024 at 9:52 PM <[email protected]> wrote:
On 2/1/24 04:47, Julian Waters wrote:
> Hi all,
>
> Quick question: Which JDK in the build directory is the one that is
> officially shipped by Oracle? Is it the one in "jdk" that is
directly
> in the build directory, or the one in "images/jdk"?
The one in images/jdk is the one we base the distribution on, but
it's
not actually exactly that. For historic reasons the image
generated in
images/jdk contains external debug symbols, which we do not ship.
To get
exactly what is shipped, run `make product-bundles` and check the
zip/tar.gz in "bundles/".
The one directly in jdk, the "exploded image", just exists because
it's
faster to build, especially incrementally, so in some developer
workflows it's preferred. Since the class files are all laid out
on disk
and not jlinked together, it has quite different performance
characteristics.
/Erik