RFR 8043541: 'fastdebug' is printed twice in java -version

Alejandro E Murillo alejandro.murillo at oracle.com
Thu Jun 19 05:39:38 UTC 2014


Can I get a review for this change?

Bug: https://bugs.openjdk.java.net/browse/JDK-8043541
webrev: http://cr.openjdk.java.net/~amurillo/9/8043541/

Note that this was discovered through nightly testing, but is not per se 
causing
any failures. It only affects full non product JDK builds. It does not 
affect hotspot
only builds.

The bug was initially filed as confidential, it's a p4, if you can't see 
the description, here it is:
"After the format of the hotspot version string was changed  now 
'fastdebug' is showing twice
in the hotspot version output of  'java -version' ONLY on Full non 
product JDK builds as shown below:

java version "1.9.0-ea-fastdebug"
Java(TM) SE Runtime Environment (build 1.9.0-ea-fastdebug-b14)
Java HotSpot(TM) Server VM (build 1.9.0-ea-fastdebug-b14-fastdebug, 
mixed mode)
-----------------------------------------------------------------------^^^^^^^^^^--------^^^^^^^^^

Background about the fix:
In a nutshell, with this fix, the build target is added to 
HOTSPOT_RELEASE_VERSION,
on hotspot/make/defs.make,  and on Hotspot ONLY builds, instead of 
passing it to
vm_version.cpp through HOTSPOT_TARGET_BUILD.

HOWEVER, given the way the project to build hotspot (only) with Visual 
Studio is created,
it is not possible to add that (HOTSPOT_TARGET_BUILD) to 
HOTSPOT_RELEASE_VERSION
when the VS  project is created, so HOTSPOT_TARGET_BUILD is still passed 
to vm_version.cpp,
on windows builds, but only appended to HOTSPOT_RELEASE_VERSION when 
building
with Visual studio. Building windows with gnu make (as jprt does) will 
work as in other platforms.

I wanted to to get rid of passing HOTSPOT_TARGET_BUILD to vm_version.cpp 
altogether, but I suspect it
was done that way to append the target build on non product builds when 
using Visual studio.
If someone is familiar with the VS create.bat script and visual studio 
in general, please
take a look and see if there's a way to pass that info at project 
creation time, so that
we can completely get rid of  passing HOTSPOT_TARGET_BUILD to 
vm_version.cpp.
Please file an RFE  if necessary.

With this solution:
(a) For FULL JDK builds,  'fastdebug' will not be duplicated (bug being 
fixed) on those builds.
(b) And for JUST hotspot only, non product builds, the output format for 
the hotspot
version will  slightly change from (see ^^^^^^ below):

java version "1.9.0-ea-fastdebug"
Java(TM) SE Runtime Environment (build 1.9.0-ea-fastdebug-b18)
Java HotSpot(TM) Server VM (build 1.9.0-internal-201406172327.amurillo.jdk9-8043340-HSJOB-fastdebug, mixed mode)
------------------------------------------------------------------------------------------^^^^^^^^^

TO:

java version "1.9.0-ea-fastdebug"
Java(TM) SE Runtime Environment (build 1.9.0-ea-fastdebug-b16)
Java HotSpot(TM) Server VM (build 1.9.0-fastdebug-internal-201406130717.amurillo.jdk9-8043541-HSJOB, mixed mode)
----------------------------------------^^^^^^^^^----------------------------------------------------


Basically 'fastdebug' is now added right after the jdk version, before 
'internal',
  in the hotspot portion, instead of at the end. Product builds are not 
affected at all.
note, those are outputs from hs only JPRT builds. Non JPRT hs only 
builds may not have
anything after 'internal' (by default).

thanks

-- 
Alejandro



More information about the hotspot-dev mailing list