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

Reply via email to