106 #ifndef HOTSPOT_VM_DISTRO 107 #error HOTSPOT_VM_DISTRO must be defined 108 #endif 109 #define VMNAME HOTSPOT_VM_DISTRO " " VMLP VMTYPE " VM" 110 111 const char* Abstract_VM_Version::vm_name() { 112 return VMNAME; 113 } 114 115 116 const char* Abstract_VM_Version::vm_vendor() { 117 #ifdef VENDOR 118 return XSTR(VENDOR); 119 #else 120 return "Oracle Corporation"; 121 #endif 122 } 123 124 125 const char* Abstract_VM_Version::vm_info_string() { 126 switch (Arguments::mode()) { 127 case Arguments::_int: 128 return UseSharedSpaces ? "interpreted mode, sharing" : "interpreted mode"; 129 case Arguments::_mixed: 130 if (UseSharedSpaces) { 131 if (UseAOT) { 132 return "mixed mode, aot, sharing"; 133 #ifdef TIERED 134 } else if(is_client_compilation_mode_vm()) { 135 return "mixed mode, emulated-client, sharing"; 136 #endif 137 } else { 138 return "mixed mode, sharing"; 139 } 140 } else { 141 if (UseAOT) { 142 return "mixed mode, aot"; 143 #ifdef TIERED 144 } else if(is_client_compilation_mode_vm()) { 145 return "mixed mode, emulated-client"; 146 #endif 147 } else { 148 return "mixed mode"; 149 } 150 } 151 case Arguments::_comp: 152 #ifdef TIERED 153 if (is_client_compilation_mode_vm()) { 154 return UseSharedSpaces ? "compiled mode, emulated-client, sharing" : "compiled mode, emulated-client"; 155 } 156 #endif 157 return UseSharedSpaces ? "compiled mode, sharing" : "compiled mode"; 158 }; 159 ShouldNotReachHere(); 160 return ""; 161 } 162 163 // NOTE: do *not* use stringStream. this function is called by 164 // fatal error handler. if the crash is in native thread, 165 // stringStream cannot get resource allocated and will SEGV. 166 const char* Abstract_VM_Version::vm_release() { 167 return VM_RELEASE; 168 } 169 170 // NOTE: do *not* use stringStream. this function is called by 171 // fatal error handlers. if the crash is in native thread, 172 // stringStream cannot get resource allocated and will SEGV. 173 const char* Abstract_VM_Version::jre_release_version() { 174 return VERSION_STRING; 175 } 176 177 #define OS LINUX_ONLY("linux") \ 178 WINDOWS_ONLY("windows") \ 179 SOLARIS_ONLY("solaris") \ 180 AIX_ONLY("aix") \ | 106 #ifndef HOTSPOT_VM_DISTRO 107 #error HOTSPOT_VM_DISTRO must be defined 108 #endif 109 #define VMNAME HOTSPOT_VM_DISTRO " " VMLP VMTYPE " VM" 110 111 const char* Abstract_VM_Version::vm_name() { 112 return VMNAME; 113 } 114 115 116 const char* Abstract_VM_Version::vm_vendor() { 117 #ifdef VENDOR 118 return XSTR(VENDOR); 119 #else 120 return "Oracle Corporation"; 121 #endif 122 } 123 124 125 const char* Abstract_VM_Version::vm_info_string() { 126 #ifdef NO_SPECULATIVE_CTI 127 #define VM_MODE "hardened, " 128 #else 129 #define VM_MODE "" 130 #endif 131 132 switch (Arguments::mode()) { 133 case Arguments::_int: 134 return UseSharedSpaces ? VM_MODE "interpreted mode, sharing" : VM_MODE "interpreted mode"; 135 case Arguments::_mixed: 136 if (UseSharedSpaces) { 137 if (UseAOT) { 138 return VM_MODE "mixed mode, aot, sharing"; 139 #ifdef TIERED 140 } else if(is_client_compilation_mode_vm()) { 141 return VM_MODE "mixed mode, emulated-client, sharing"; 142 #endif 143 } else { 144 return VM_MODE "mixed mode, sharing"; 145 } 146 } else { 147 if (UseAOT) { 148 return VM_MODE "mixed mode, aot"; 149 #ifdef TIERED 150 } else if(is_client_compilation_mode_vm()) { 151 return VM_MODE "mixed mode, emulated-client"; 152 #endif 153 } else { 154 return VM_MODE "mixed mode"; 155 } 156 } 157 case Arguments::_comp: 158 #ifdef TIERED 159 if (is_client_compilation_mode_vm()) { 160 return UseSharedSpaces ? VM_MODE "compiled mode, emulated-client, sharing" : VM_MODE "compiled mode, emulated-client"; 161 } 162 #endif 163 return UseSharedSpaces ? VM_MODE "compiled mode, sharing" : VM_MODE "compiled mode"; 164 }; 165 ShouldNotReachHere(); 166 return ""; 167 #undef VM_MODE 168 } 169 170 // NOTE: do *not* use stringStream. this function is called by 171 // fatal error handler. if the crash is in native thread, 172 // stringStream cannot get resource allocated and will SEGV. 173 const char* Abstract_VM_Version::vm_release() { 174 return VM_RELEASE; 175 } 176 177 // NOTE: do *not* use stringStream. this function is called by 178 // fatal error handlers. if the crash is in native thread, 179 // stringStream cannot get resource allocated and will SEGV. 180 const char* Abstract_VM_Version::jre_release_version() { 181 return VERSION_STRING; 182 } 183 184 #define OS LINUX_ONLY("linux") \ 185 WINDOWS_ONLY("windows") \ 186 SOLARIS_ONLY("solaris") \ 187 AIX_ONLY("aix") \ |