Re: [External] : Re: Which JDK in the build directory is the one that is shipped?

2024-02-12 Thread erik . joelsson


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 
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  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


Re: Which JDK in the build directory is the one that is shipped?

2024-02-12 Thread Andrew Haley

On 2/11/24 11: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 sh ./configure --helpbelieve Oracle probably does it by specifying different 
parts of the version string on configure, something like

bash configure 


"sh ./configure --help" and look for the --with-version options.

--
Andrew Haley  (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. 
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671



Re: Which JDK in the build directory is the one that is shipped?

2024-02-11 Thread Julian Waters
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 
make product-bundles

but I'd like to know the exact flags used, especially for Windows binaries,
if possible

best regards,
Julian

On Thu, Feb 1, 2024 at 9:52 PM  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
>
>


Re: Which JDK in the build directory is the one that is shipped?

2024-02-01 Thread erik . joelsson

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



Which JDK in the build directory is the one that is shipped?

2024-02-01 Thread Julian Waters
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"?

best regards,
Julian