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 JRE_RELEASE_VERSION; 182 } 183 184 #define OS LINUX_ONLY("linux") \ 185 WINDOWS_ONLY("windows") \ 186 SOLARIS_ONLY("solaris") \ 187 AIX_ONLY("aix") \ 188 BSD_ONLY("bsd") 189 190 #ifdef ZERO 191 #define CPU ZERO_LIBARCH 192 #else 193 #define CPU IA32_ONLY("x86") \ 194 IA64_ONLY("ia64") \ 195 AMD64_ONLY("amd64") \ 196 ARM_ONLY("arm") \ 197 PPC32_ONLY("ppc") \ 198 PPC64_ONLY("ppc64") \ 199 AARCH64_ONLY("aarch64") \ 200 SPARC_ONLY("sparc") 201 #endif // ZERO 202 203 const char *Abstract_VM_Version::vm_platform_string() { 204 return OS "-" CPU; 205 } 206 207 const char* Abstract_VM_Version::internal_vm_info_string() { 208 #ifndef HOTSPOT_BUILD_USER 209 #define HOTSPOT_BUILD_USER unknown 210 #endif 211 212 #ifndef HOTSPOT_BUILD_COMPILER 213 #ifdef _MSC_VER 214 #if _MSC_VER == 1600 215 #define HOTSPOT_BUILD_COMPILER "MS VC++ 10.0 (VS2010)" 216 #elif _MSC_VER == 1700 217 #define HOTSPOT_BUILD_COMPILER "MS VC++ 11.0 (VS2012)" 218 #elif _MSC_VER == 1800 219 #define HOTSPOT_BUILD_COMPILER "MS VC++ 12.0 (VS2013)" 220 #else 221 #define HOTSPOT_BUILD_COMPILER "unknown MS VC++:" XSTR(_MSC_VER) 234 #elif __SUNPRO_CC == 0x5100 235 #define HOTSPOT_BUILD_COMPILER "Sun Studio 12u1" 236 #elif __SUNPRO_CC == 0x5120 237 #define HOTSPOT_BUILD_COMPILER "Sun Studio 12u3" 238 #else 239 #define HOTSPOT_BUILD_COMPILER "unknown Workshop:" XSTR(__SUNPRO_CC) 240 #endif 241 #elif defined(__GNUC__) 242 #define HOTSPOT_BUILD_COMPILER "gcc " __VERSION__ 243 #elif defined(__IBMCPP__) 244 #define HOTSPOT_BUILD_COMPILER "xlC " XSTR(__IBMCPP__) 245 246 #else 247 #define HOTSPOT_BUILD_COMPILER "unknown compiler" 248 #endif 249 #endif 250 251 #ifndef FLOAT_ARCH 252 #if defined(__SOFTFP__) 253 #define FLOAT_ARCH_STR "-sflt" 254 #elif defined(E500V2) 255 #define FLOAT_ARCH_STR "-e500v2" 256 #elif defined(ARM) 257 #define FLOAT_ARCH_STR "-vfp" 258 #elif defined(PPC32) 259 #define FLOAT_ARCH_STR "-hflt" 260 #else 261 #define FLOAT_ARCH_STR "" 262 #endif 263 #else 264 #define FLOAT_ARCH_STR XSTR(FLOAT_ARCH) 265 #endif 266 267 return VMNAME " (" VM_RELEASE ") for " OS "-" CPU FLOAT_ARCH_STR 268 " JRE (" JRE_RELEASE_VERSION "), built on " __DATE__ " " __TIME__ 269 " by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER; 270 } 271 272 const char *Abstract_VM_Version::vm_build_user() { 273 return HOTSPOT_BUILD_USER; 274 } 275 276 unsigned int Abstract_VM_Version::jvm_version() { 277 return ((Abstract_VM_Version::vm_major_version() & 0xFF) << 24) | 278 ((Abstract_VM_Version::vm_minor_version() & 0xFF) << 16) | 279 ((Abstract_VM_Version::vm_micro_version() & 0xFF) << 8) | | 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 JRE_RELEASE_VERSION; 182 } 183 184 #define OS LINUX_ONLY("linux") \ 185 WINDOWS_ONLY("windows") \ 186 SOLARIS_ONLY("solaris") \ 187 AIX_ONLY("aix") \ 188 BSD_ONLY("bsd") 189 190 #ifndef CPU 191 #ifdef ZERO 192 #define CPU ZERO_LIBARCH 193 #else 194 #define CPU IA32_ONLY("x86") \ 195 IA64_ONLY("ia64") \ 196 AMD64_ONLY("amd64") \ 197 PPC64_ONLY("ppc64") \ 198 AARCH64_ONLY("aarch64") \ 199 SPARC_ONLY("sparc") 200 #endif // ZERO 201 #endif 202 203 const char *Abstract_VM_Version::vm_platform_string() { 204 return OS "-" CPU; 205 } 206 207 const char* Abstract_VM_Version::internal_vm_info_string() { 208 #ifndef HOTSPOT_BUILD_USER 209 #define HOTSPOT_BUILD_USER unknown 210 #endif 211 212 #ifndef HOTSPOT_BUILD_COMPILER 213 #ifdef _MSC_VER 214 #if _MSC_VER == 1600 215 #define HOTSPOT_BUILD_COMPILER "MS VC++ 10.0 (VS2010)" 216 #elif _MSC_VER == 1700 217 #define HOTSPOT_BUILD_COMPILER "MS VC++ 11.0 (VS2012)" 218 #elif _MSC_VER == 1800 219 #define HOTSPOT_BUILD_COMPILER "MS VC++ 12.0 (VS2013)" 220 #else 221 #define HOTSPOT_BUILD_COMPILER "unknown MS VC++:" XSTR(_MSC_VER) 234 #elif __SUNPRO_CC == 0x5100 235 #define HOTSPOT_BUILD_COMPILER "Sun Studio 12u1" 236 #elif __SUNPRO_CC == 0x5120 237 #define HOTSPOT_BUILD_COMPILER "Sun Studio 12u3" 238 #else 239 #define HOTSPOT_BUILD_COMPILER "unknown Workshop:" XSTR(__SUNPRO_CC) 240 #endif 241 #elif defined(__GNUC__) 242 #define HOTSPOT_BUILD_COMPILER "gcc " __VERSION__ 243 #elif defined(__IBMCPP__) 244 #define HOTSPOT_BUILD_COMPILER "xlC " XSTR(__IBMCPP__) 245 246 #else 247 #define HOTSPOT_BUILD_COMPILER "unknown compiler" 248 #endif 249 #endif 250 251 #ifndef FLOAT_ARCH 252 #if defined(__SOFTFP__) 253 #define FLOAT_ARCH_STR "-sflt" 254 #else 255 #define FLOAT_ARCH_STR "" 256 #endif 257 #else 258 #define FLOAT_ARCH_STR XSTR(FLOAT_ARCH) 259 #endif 260 261 return VMNAME " (" VM_RELEASE ") for " OS "-" CPU FLOAT_ARCH_STR 262 " JRE (" JRE_RELEASE_VERSION "), built on " __DATE__ " " __TIME__ 263 " by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER; 264 } 265 266 const char *Abstract_VM_Version::vm_build_user() { 267 return HOTSPOT_BUILD_USER; 268 } 269 270 unsigned int Abstract_VM_Version::jvm_version() { 271 return ((Abstract_VM_Version::vm_major_version() & 0xFF) << 24) | 272 ((Abstract_VM_Version::vm_minor_version() & 0xFF) << 16) | 273 ((Abstract_VM_Version::vm_micro_version() & 0xFF) << 8) | |