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

If you like most of the defaults but not the user name you may be able to override that simply by changing USER in your environment when running configure.

Better still can that option be the default?

Not in my opinion. :) We find it useful to see what binary was used in detail.

Cheers,
David


-Jaikiran


Reply via email to