changeset 24227:b5a90e4a6c26 jvmci-0.34

make internal_vm_info_string() consistent with java.vm.version
author Doug Simon <doug.simon@oracle.com>
date Fri, 25 Aug 2017 14:25:06 +0200
parents abc19eb35547
children 5069d3bf9011
files src/share/vm/runtime/vm_version.cpp src/share/vm/runtime/vm_version.hpp
diffstat 2 files changed, 23 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/runtime/vm_version.cpp	Thu Aug 24 22:20:40 2017 +0200
+++ b/src/share/vm/runtime/vm_version.cpp	Fri Aug 25 14:25:06 2017 +0200
@@ -46,7 +46,7 @@
 const char* Abstract_VM_Version::_s_vm_name = NULL;
 int Abstract_VM_Version::_vm_properties_initialized_from_file =
     Abstract_VM_Version::init_vm_properties(Abstract_VM_Version::_s_vm_name, Abstract_VM_Version::_s_vm_release);
-const char* Abstract_VM_Version::_s_internal_vm_info_string = Abstract_VM_Version::internal_vm_info_string();
+const char* Abstract_VM_Version::_s_internal_vm_info_string = Abstract_VM_Version::init_internal_vm_info_string();
 bool Abstract_VM_Version::_supports_cx8 = false;
 bool Abstract_VM_Version::_supports_atomic_getset4 = false;
 bool Abstract_VM_Version::_supports_atomic_getset8 = false;
@@ -297,7 +297,7 @@
   return OS "-" CPU;
 }
 
-const char* Abstract_VM_Version::internal_vm_info_string() {
+const char* Abstract_VM_Version::init_internal_vm_info_string() {
   #ifndef HOTSPOT_BUILD_USER
     #define HOTSPOT_BUILD_USER unknown
   #endif
@@ -359,9 +359,25 @@
     #define FLOAT_ARCH_STR XSTR(FLOAT_ARCH)
   #endif
 
-  return VMNAME " (" VM_RELEASE ") for " OS "-" CPU FLOAT_ARCH_STR
-         " JRE (" JRE_RELEASE_VERSION "), built on " __DATE__ " " __TIME__
-         " by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER;
+
+#define VM_INTERNAL_INFO_FORMAT(name, release) \
+  name " (" release ") for " OS "-" CPU FLOAT_ARCH_STR \
+  " JRE (" JRE_RELEASE_VERSION "), built on " __DATE__ " " __TIME__ \
+  " by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER
+
+  if (_s_vm_name != VMNAME || _s_vm_release != VM_RELEASE) {
+    int len = strlen(VM_INTERNAL_INFO_FORMAT(VMNAME, VM_RELEASE)) - strlen(VMNAME VM_RELEASE) +
+              strlen(_s_vm_name) + strlen(_s_vm_release);
+    char* buffer = NEW_C_HEAP_ARRAY(char, len + 1, mtInternal);
+    sprintf(buffer, VM_INTERNAL_INFO_FORMAT("%s", "%s"), _s_vm_name, _s_vm_release);
+    return buffer;
+  }
+  return VM_INTERNAL_INFO_FORMAT(VMNAME, VM_RELEASE);
+#undef VM_INTERNAL_INFO_FORMAT
+}
+
+const char* Abstract_VM_Version::internal_vm_info_string() {
+  return _s_internal_vm_info_string;
 }
 
 const char *Abstract_VM_Version::vm_build_user() {
--- a/src/share/vm/runtime/vm_version.hpp	Thu Aug 24 22:20:40 2017 +0200
+++ b/src/share/vm/runtime/vm_version.hpp	Fri Aug 25 14:25:06 2017 +0200
@@ -62,6 +62,8 @@
   // @param version returns the value of the "version" property
   // @return number of properties initialized from the file
   static int init_vm_properties(const char*& name, const char*& version);
+
+  static const char* init_internal_vm_info_string();
  public:
   // Called as part of the runtime services initialization which is
   // called from the management module initialization (via init_globals())