<div dir="ltr">Hi Erik,<div><br></div><div>Thanks for the clarification! How then does Oracle compile the JDK, such that the versioning numbers appear in the following manner?</div><div><br></div><div>C:\Users\vertig0>java --version<br>java 21 2023-09-19 LTS<br>Java(TM) SE Runtime Environment (build 21+35-LTS-2513)<br>Java HotSpot(TM) 64-Bit Server VM (build 21+35-LTS-2513, mixed mode, sharing)<br></div><div><br></div><div>(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)</div><div><br></div><div>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.</div><div><br></div><div>I believe Oracle probably does it by specifying different parts of the version string on configure, something like</div><div><br></div><div>bash configure <Whatever the option string and other compile options are></div><div>make product-bundles</div><div><br></div><div>but I'd like to know the exact flags used, especially for Windows binaries, if possible</div><div><br></div><div>best regards,</div><div>Julian</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 1, 2024 at 9:52 PM <<a href="mailto:erik.joelsson@oracle.com" target="_blank">erik.joelsson@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2/1/24 04:47, Julian Waters wrote:<br>
> Hi all,<br>
><br>
> Quick question: Which JDK in the build directory is the one that is<br>
> officially shipped by Oracle? Is it the one in "jdk" that is directly<br>
> in the build directory, or the one in "images/jdk"?<br>
<br>
The one in images/jdk is the one we base the distribution on, but it's <br>
not actually exactly that. For historic reasons the image generated in <br>
images/jdk contains external debug symbols, which we do not ship. To get <br>
exactly what is shipped, run `make product-bundles` and check the <br>
zip/tar.gz in "bundles/".<br>
<br>
The one directly in jdk, the "exploded image", just exists because it's <br>
faster to build, especially incrementally, so in some developer <br>
workflows it's preferred. Since the class files are all laid out on disk <br>
and not jlinked together, it has quite different performance <br>
characteristics.<br>
<br>
/Erik<br>
<br>
</blockquote></div>