Hello David,
On 11/01/21 12:02 pm, David Holmes wrote:
Hi Jaikiran,
On 11/01/2021 2:43 pm, Jaikiran Pai wrote:
I build the JDK from source using "make images". When I use that JDK
binary, the user name of the user who built the binary "leaks" into
some of the runtime system properties and (of course as a result)
into the output of java -version. Here's the output of java -version
of such a built JDK:
openjdk version "16-internal" 2021-03-16
OpenJDK Runtime Environment (build 16-internal+0-adhoc.jaikiran.jdk16)
OpenJDK 64-Bit Server VM (build 16-internal+0-adhoc.jaikiran.jdk16,
mixed mode, sharing)
Notice the "jaikiran" in that output - that's the user name who built
the JDK. Furthermore, this also ends up in runtime properties like:
java.runtime.version = 16-internal+0-adhoc.jaikiran.jdk16
...
java.vm.version = 16-internal+0-adhoc.jaikiran.jdk16
Is there a way/option that I can use while building the JDK that will
prevent this user name leaking into the built binary?
Yes. You have full control over the version string at configure time.
See:
make/autoconf/jdk-version.m4
As the format of the version string is controlled by a JEP and has a
lot of rules there are actually quite a number of configure flags that
can affect the version string. Your simplest option may just be to use
--with-version-string="your version string".
Thank you for pointing to me that file. Yes, this option is good enough
for me to override the default one.
Better still can that option be the default?
Not in my opinion. :) We find it useful to see what binary was used in
detail.
Fair enough :)
-Jaikiran