annotate src/share/vm/runtime/vm_version.cpp @ 4155:394404b2d9bd

Removed strict requirement for GRAAL environment variable. It only needs to be set now if the graal directory is not in the directory hierarchy of GraalVM JDK.
author Doug Simon <doug.simon@oracle.com>
date Wed, 21 Dec 2011 11:25:27 +0100
parents 04b9a2566eec
children 723df37192d6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 /*
2426
1d1603768966 7010070: Update all 2010 Oracle-changed OpenJDK files to have the proper copyright dates - second pass
trims
parents: 2199
diff changeset
2 * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 *
a61af66fc99e Initial load
duke
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 * published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 *
a61af66fc99e Initial load
duke
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 * accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 *
a61af66fc99e Initial load
duke
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 *
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1547
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1547
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1547
diff changeset
21 * questions.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
22 *
a61af66fc99e Initial load
duke
parents:
diff changeset
23 */
a61af66fc99e Initial load
duke
parents:
diff changeset
24
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
25 #include "precompiled.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
26 #include "memory/universe.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
27 #include "oops/oop.inline.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
28 #include "runtime/arguments.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
29 #ifdef TARGET_ARCH_x86
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
30 # include "vm_version_x86.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
31 #endif
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
32 #ifdef TARGET_ARCH_sparc
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
33 # include "vm_version_sparc.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
34 #endif
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
35 #ifdef TARGET_ARCH_zero
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
36 # include "vm_version_zero.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1800
diff changeset
37 #endif
2192
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
38 #ifdef TARGET_ARCH_arm
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
39 # include "vm_version_arm.hpp"
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
40 #endif
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
41 #ifdef TARGET_ARCH_ppc
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
42 # include "vm_version_ppc.hpp"
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
43 #endif
0
a61af66fc99e Initial load
duke
parents:
diff changeset
44
a61af66fc99e Initial load
duke
parents:
diff changeset
45 const char* Abstract_VM_Version::_s_vm_release = Abstract_VM_Version::vm_release();
a61af66fc99e Initial load
duke
parents:
diff changeset
46 const char* Abstract_VM_Version::_s_internal_vm_info_string = Abstract_VM_Version::internal_vm_info_string();
a61af66fc99e Initial load
duke
parents:
diff changeset
47 bool Abstract_VM_Version::_supports_cx8 = false;
a61af66fc99e Initial load
duke
parents:
diff changeset
48 unsigned int Abstract_VM_Version::_logical_processors_per_package = 1U;
3854
1af104d6cf99 7079329: Adjust allocation prefetching for T4
kvn
parents: 2426
diff changeset
49 int Abstract_VM_Version::_reserve_for_allocation_prefetch = 0;
0
a61af66fc99e Initial load
duke
parents:
diff changeset
50
a61af66fc99e Initial load
duke
parents:
diff changeset
51 #ifndef HOTSPOT_RELEASE_VERSION
a61af66fc99e Initial load
duke
parents:
diff changeset
52 #error HOTSPOT_RELEASE_VERSION must be defined
a61af66fc99e Initial load
duke
parents:
diff changeset
53 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
54 #ifndef JRE_RELEASE_VERSION
a61af66fc99e Initial load
duke
parents:
diff changeset
55 #error JRE_RELEASE_VERSION must be defined
a61af66fc99e Initial load
duke
parents:
diff changeset
56 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
57 #ifndef HOTSPOT_BUILD_TARGET
a61af66fc99e Initial load
duke
parents:
diff changeset
58 #error HOTSPOT_BUILD_TARGET must be defined
a61af66fc99e Initial load
duke
parents:
diff changeset
59 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
60
a61af66fc99e Initial load
duke
parents:
diff changeset
61 #ifdef PRODUCT
a61af66fc99e Initial load
duke
parents:
diff changeset
62 #define VM_RELEASE HOTSPOT_RELEASE_VERSION
a61af66fc99e Initial load
duke
parents:
diff changeset
63 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
64 #define VM_RELEASE HOTSPOT_RELEASE_VERSION "-" HOTSPOT_BUILD_TARGET
a61af66fc99e Initial load
duke
parents:
diff changeset
65 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
66
a61af66fc99e Initial load
duke
parents:
diff changeset
67 // HOTSPOT_RELEASE_VERSION must follow the release version naming convention
a61af66fc99e Initial load
duke
parents:
diff changeset
68 // <major_ver>.<minor_ver>-b<nn>[-<identifier>][-<debug_target>]
a61af66fc99e Initial load
duke
parents:
diff changeset
69 int Abstract_VM_Version::_vm_major_version = 0;
a61af66fc99e Initial load
duke
parents:
diff changeset
70 int Abstract_VM_Version::_vm_minor_version = 0;
a61af66fc99e Initial load
duke
parents:
diff changeset
71 int Abstract_VM_Version::_vm_build_number = 0;
a61af66fc99e Initial load
duke
parents:
diff changeset
72 bool Abstract_VM_Version::_initialized = false;
10
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
73 int Abstract_VM_Version::_parallel_worker_threads = 0;
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
74 bool Abstract_VM_Version::_parallel_worker_threads_initialized = false;
0
a61af66fc99e Initial load
duke
parents:
diff changeset
75
a61af66fc99e Initial load
duke
parents:
diff changeset
76 void Abstract_VM_Version::initialize() {
a61af66fc99e Initial load
duke
parents:
diff changeset
77 if (_initialized) {
a61af66fc99e Initial load
duke
parents:
diff changeset
78 return;
a61af66fc99e Initial load
duke
parents:
diff changeset
79 }
a61af66fc99e Initial load
duke
parents:
diff changeset
80 char* vm_version = os::strdup(HOTSPOT_RELEASE_VERSION);
a61af66fc99e Initial load
duke
parents:
diff changeset
81
a61af66fc99e Initial load
duke
parents:
diff changeset
82 // Expecting the next vm_version format:
a61af66fc99e Initial load
duke
parents:
diff changeset
83 // <major_ver>.<minor_ver>-b<nn>[-<identifier>]
a61af66fc99e Initial load
duke
parents:
diff changeset
84 char* vm_major_ver = vm_version;
a61af66fc99e Initial load
duke
parents:
diff changeset
85 assert(isdigit(vm_major_ver[0]),"wrong vm major version number");
a61af66fc99e Initial load
duke
parents:
diff changeset
86 char* vm_minor_ver = strchr(vm_major_ver, '.');
a61af66fc99e Initial load
duke
parents:
diff changeset
87 assert(vm_minor_ver != NULL && isdigit(vm_minor_ver[1]),"wrong vm minor version number");
a61af66fc99e Initial load
duke
parents:
diff changeset
88 vm_minor_ver[0] = '\0'; // terminate vm_major_ver
a61af66fc99e Initial load
duke
parents:
diff changeset
89 vm_minor_ver += 1;
a61af66fc99e Initial load
duke
parents:
diff changeset
90 char* vm_build_num = strchr(vm_minor_ver, '-');
a61af66fc99e Initial load
duke
parents:
diff changeset
91 assert(vm_build_num != NULL && vm_build_num[1] == 'b' && isdigit(vm_build_num[2]),"wrong vm build number");
a61af66fc99e Initial load
duke
parents:
diff changeset
92 vm_build_num[0] = '\0'; // terminate vm_minor_ver
a61af66fc99e Initial load
duke
parents:
diff changeset
93 vm_build_num += 2;
a61af66fc99e Initial load
duke
parents:
diff changeset
94
a61af66fc99e Initial load
duke
parents:
diff changeset
95 _vm_major_version = atoi(vm_major_ver);
a61af66fc99e Initial load
duke
parents:
diff changeset
96 _vm_minor_version = atoi(vm_minor_ver);
a61af66fc99e Initial load
duke
parents:
diff changeset
97 _vm_build_number = atoi(vm_build_num);
a61af66fc99e Initial load
duke
parents:
diff changeset
98
a61af66fc99e Initial load
duke
parents:
diff changeset
99 os::free(vm_version);
a61af66fc99e Initial load
duke
parents:
diff changeset
100 _initialized = true;
a61af66fc99e Initial load
duke
parents:
diff changeset
101 }
a61af66fc99e Initial load
duke
parents:
diff changeset
102
a61af66fc99e Initial load
duke
parents:
diff changeset
103 #if defined(_LP64)
a61af66fc99e Initial load
duke
parents:
diff changeset
104 #define VMLP "64-Bit "
a61af66fc99e Initial load
duke
parents:
diff changeset
105 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
106 #define VMLP ""
a61af66fc99e Initial load
duke
parents:
diff changeset
107 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
108
a61af66fc99e Initial load
duke
parents:
diff changeset
109 #ifdef KERNEL
a61af66fc99e Initial load
duke
parents:
diff changeset
110 #define VMTYPE "Kernel"
a61af66fc99e Initial load
duke
parents:
diff changeset
111 #else // KERNEL
a61af66fc99e Initial load
duke
parents:
diff changeset
112 #ifdef TIERED
a61af66fc99e Initial load
duke
parents:
diff changeset
113 #define VMTYPE "Server"
1010
354d3184f6b2 6890308: integrate zero assembler hotspot changes
never
parents: 844
diff changeset
114 #else // TIERED
354d3184f6b2 6890308: integrate zero assembler hotspot changes
never
parents: 844
diff changeset
115 #ifdef ZERO
1692
d2ede61b7a12 6976186: integrate Shark HotSpot changes
twisti
parents: 1681
diff changeset
116 #ifdef SHARK
d2ede61b7a12 6976186: integrate Shark HotSpot changes
twisti
parents: 1681
diff changeset
117 #define VMTYPE "Shark"
d2ede61b7a12 6976186: integrate Shark HotSpot changes
twisti
parents: 1681
diff changeset
118 #else // SHARK
1010
354d3184f6b2 6890308: integrate zero assembler hotspot changes
never
parents: 844
diff changeset
119 #define VMTYPE "Zero"
1692
d2ede61b7a12 6976186: integrate Shark HotSpot changes
twisti
parents: 1681
diff changeset
120 #endif // SHARK
1010
354d3184f6b2 6890308: integrate zero assembler hotspot changes
never
parents: 844
diff changeset
121 #else // ZERO
2275
017f3eeb2901 Changed "java -version" to include "Graal VM".
Thomas Wuerthinger <thomas.wuerthinger@gmail.com>
parents: 2199
diff changeset
122 #define VMTYPE COMPILER1_PRESENT("Graal") \
1010
354d3184f6b2 6890308: integrate zero assembler hotspot changes
never
parents: 844
diff changeset
123 COMPILER2_PRESENT("Server")
354d3184f6b2 6890308: integrate zero assembler hotspot changes
never
parents: 844
diff changeset
124 #endif // ZERO
0
a61af66fc99e Initial load
duke
parents:
diff changeset
125 #endif // TIERED
a61af66fc99e Initial load
duke
parents:
diff changeset
126 #endif // KERNEL
a61af66fc99e Initial load
duke
parents:
diff changeset
127
a61af66fc99e Initial load
duke
parents:
diff changeset
128 #ifndef HOTSPOT_VM_DISTRO
a61af66fc99e Initial load
duke
parents:
diff changeset
129 #error HOTSPOT_VM_DISTRO must be defined
a61af66fc99e Initial load
duke
parents:
diff changeset
130 #endif
4005
2ef3386478e6 7096278: Update the VM name to indicate it is an embedded build
dholmes
parents: 3960
diff changeset
131 #define VMNAME HOTSPOT_VM_DISTRO " " VMLP EMBEDDED_ONLY("Embedded ") VMTYPE " VM"
0
a61af66fc99e Initial load
duke
parents:
diff changeset
132
a61af66fc99e Initial load
duke
parents:
diff changeset
133 const char* Abstract_VM_Version::vm_name() {
a61af66fc99e Initial load
duke
parents:
diff changeset
134 return VMNAME;
a61af66fc99e Initial load
duke
parents:
diff changeset
135 }
a61af66fc99e Initial load
duke
parents:
diff changeset
136
a61af66fc99e Initial load
duke
parents:
diff changeset
137
a61af66fc99e Initial load
duke
parents:
diff changeset
138 const char* Abstract_VM_Version::vm_vendor() {
a61af66fc99e Initial load
duke
parents:
diff changeset
139 #ifdef VENDOR
a61af66fc99e Initial load
duke
parents:
diff changeset
140 return XSTR(VENDOR);
a61af66fc99e Initial load
duke
parents:
diff changeset
141 #else
1800
728a287f6c20 6981753: Rebrand vm vendor property settings
zgu
parents: 1692
diff changeset
142 return JDK_Version::is_gte_jdk17x_version() ?
728a287f6c20 6981753: Rebrand vm vendor property settings
zgu
parents: 1692
diff changeset
143 "Oracle Corporation" : "Sun Microsystems Inc.";
0
a61af66fc99e Initial load
duke
parents:
diff changeset
144 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
145 }
a61af66fc99e Initial load
duke
parents:
diff changeset
146
a61af66fc99e Initial load
duke
parents:
diff changeset
147
a61af66fc99e Initial load
duke
parents:
diff changeset
148 const char* Abstract_VM_Version::vm_info_string() {
a61af66fc99e Initial load
duke
parents:
diff changeset
149 switch (Arguments::mode()) {
a61af66fc99e Initial load
duke
parents:
diff changeset
150 case Arguments::_int:
a61af66fc99e Initial load
duke
parents:
diff changeset
151 return UseSharedSpaces ? "interpreted mode, sharing" : "interpreted mode";
a61af66fc99e Initial load
duke
parents:
diff changeset
152 case Arguments::_mixed:
a61af66fc99e Initial load
duke
parents:
diff changeset
153 return UseSharedSpaces ? "mixed mode, sharing" : "mixed mode";
a61af66fc99e Initial load
duke
parents:
diff changeset
154 case Arguments::_comp:
a61af66fc99e Initial load
duke
parents:
diff changeset
155 return UseSharedSpaces ? "compiled mode, sharing" : "compiled mode";
a61af66fc99e Initial load
duke
parents:
diff changeset
156 };
a61af66fc99e Initial load
duke
parents:
diff changeset
157 ShouldNotReachHere();
a61af66fc99e Initial load
duke
parents:
diff changeset
158 return "";
a61af66fc99e Initial load
duke
parents:
diff changeset
159 }
a61af66fc99e Initial load
duke
parents:
diff changeset
160
a61af66fc99e Initial load
duke
parents:
diff changeset
161 // NOTE: do *not* use stringStream. this function is called by
a61af66fc99e Initial load
duke
parents:
diff changeset
162 // fatal error handler. if the crash is in native thread,
a61af66fc99e Initial load
duke
parents:
diff changeset
163 // stringStream cannot get resource allocated and will SEGV.
a61af66fc99e Initial load
duke
parents:
diff changeset
164 const char* Abstract_VM_Version::vm_release() {
a61af66fc99e Initial load
duke
parents:
diff changeset
165 return VM_RELEASE;
a61af66fc99e Initial load
duke
parents:
diff changeset
166 }
a61af66fc99e Initial load
duke
parents:
diff changeset
167
a61af66fc99e Initial load
duke
parents:
diff changeset
168 #define OS LINUX_ONLY("linux") \
a61af66fc99e Initial load
duke
parents:
diff changeset
169 WINDOWS_ONLY("windows") \
3960
f08d439fab8c 7089790: integrate bsd-port changes
never
parents: 3854
diff changeset
170 SOLARIS_ONLY("solaris") \
f08d439fab8c 7089790: integrate bsd-port changes
never
parents: 3854
diff changeset
171 BSD_ONLY("bsd")
0
a61af66fc99e Initial load
duke
parents:
diff changeset
172
1010
354d3184f6b2 6890308: integrate zero assembler hotspot changes
never
parents: 844
diff changeset
173 #ifdef ZERO
354d3184f6b2 6890308: integrate zero assembler hotspot changes
never
parents: 844
diff changeset
174 #define CPU ZERO_LIBARCH
354d3184f6b2 6890308: integrate zero assembler hotspot changes
never
parents: 844
diff changeset
175 #else
0
a61af66fc99e Initial load
duke
parents:
diff changeset
176 #define CPU IA32_ONLY("x86") \
a61af66fc99e Initial load
duke
parents:
diff changeset
177 IA64_ONLY("ia64") \
a61af66fc99e Initial load
duke
parents:
diff changeset
178 AMD64_ONLY("amd64") \
1681
126ea7725993 6953477: Increase portability and flexibility of building Hotspot
bobv
parents: 1552
diff changeset
179 ARM_ONLY("arm") \
126ea7725993 6953477: Increase portability and flexibility of building Hotspot
bobv
parents: 1552
diff changeset
180 PPC_ONLY("ppc") \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
181 SPARC_ONLY("sparc")
1010
354d3184f6b2 6890308: integrate zero assembler hotspot changes
never
parents: 844
diff changeset
182 #endif // ZERO
0
a61af66fc99e Initial load
duke
parents:
diff changeset
183
a61af66fc99e Initial load
duke
parents:
diff changeset
184 const char *Abstract_VM_Version::vm_platform_string() {
a61af66fc99e Initial load
duke
parents:
diff changeset
185 return OS "-" CPU;
a61af66fc99e Initial load
duke
parents:
diff changeset
186 }
a61af66fc99e Initial load
duke
parents:
diff changeset
187
a61af66fc99e Initial load
duke
parents:
diff changeset
188 const char* Abstract_VM_Version::internal_vm_info_string() {
a61af66fc99e Initial load
duke
parents:
diff changeset
189 #ifndef HOTSPOT_BUILD_USER
a61af66fc99e Initial load
duke
parents:
diff changeset
190 #define HOTSPOT_BUILD_USER unknown
a61af66fc99e Initial load
duke
parents:
diff changeset
191 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
192
a61af66fc99e Initial load
duke
parents:
diff changeset
193 #ifndef HOTSPOT_BUILD_COMPILER
a61af66fc99e Initial load
duke
parents:
diff changeset
194 #ifdef _MSC_VER
a61af66fc99e Initial load
duke
parents:
diff changeset
195 #if _MSC_VER == 1100
a61af66fc99e Initial load
duke
parents:
diff changeset
196 #define HOTSPOT_BUILD_COMPILER "MS VC++ 5.0"
a61af66fc99e Initial load
duke
parents:
diff changeset
197 #elif _MSC_VER == 1200
a61af66fc99e Initial load
duke
parents:
diff changeset
198 #define HOTSPOT_BUILD_COMPILER "MS VC++ 6.0"
a61af66fc99e Initial load
duke
parents:
diff changeset
199 #elif _MSC_VER == 1310
645
c3a720eefe82 6816308: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003
kvn
parents: 196
diff changeset
200 #define HOTSPOT_BUILD_COMPILER "MS VC++ 7.1 (VS2003)"
0
a61af66fc99e Initial load
duke
parents:
diff changeset
201 #elif _MSC_VER == 1400
645
c3a720eefe82 6816308: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003
kvn
parents: 196
diff changeset
202 #define HOTSPOT_BUILD_COMPILER "MS VC++ 8.0 (VS2005)"
c3a720eefe82 6816308: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003
kvn
parents: 196
diff changeset
203 #elif _MSC_VER == 1500
c3a720eefe82 6816308: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003
kvn
parents: 196
diff changeset
204 #define HOTSPOT_BUILD_COMPILER "MS VC++ 9.0 (VS2008)"
0
a61af66fc99e Initial load
duke
parents:
diff changeset
205 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
206 #define HOTSPOT_BUILD_COMPILER "unknown MS VC++:" XSTR(_MSC_VER)
a61af66fc99e Initial load
duke
parents:
diff changeset
207 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
208 #elif defined(__SUNPRO_CC)
a61af66fc99e Initial load
duke
parents:
diff changeset
209 #if __SUNPRO_CC == 0x420
a61af66fc99e Initial load
duke
parents:
diff changeset
210 #define HOTSPOT_BUILD_COMPILER "Workshop 4.2"
a61af66fc99e Initial load
duke
parents:
diff changeset
211 #elif __SUNPRO_CC == 0x500
a61af66fc99e Initial load
duke
parents:
diff changeset
212 #define HOTSPOT_BUILD_COMPILER "Workshop 5.0 compat=" XSTR(__SUNPRO_CC_COMPAT)
a61af66fc99e Initial load
duke
parents:
diff changeset
213 #elif __SUNPRO_CC == 0x520
a61af66fc99e Initial load
duke
parents:
diff changeset
214 #define HOTSPOT_BUILD_COMPILER "Workshop 5.2 compat=" XSTR(__SUNPRO_CC_COMPAT)
a61af66fc99e Initial load
duke
parents:
diff changeset
215 #elif __SUNPRO_CC == 0x580
a61af66fc99e Initial load
duke
parents:
diff changeset
216 #define HOTSPOT_BUILD_COMPILER "Workshop 5.8"
a61af66fc99e Initial load
duke
parents:
diff changeset
217 #elif __SUNPRO_CC == 0x590
a61af66fc99e Initial load
duke
parents:
diff changeset
218 #define HOTSPOT_BUILD_COMPILER "Workshop 5.9"
1547
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1010
diff changeset
219 #elif __SUNPRO_CC == 0x5100
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1010
diff changeset
220 #define HOTSPOT_BUILD_COMPILER "Sun Studio 12u1"
0
a61af66fc99e Initial load
duke
parents:
diff changeset
221 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
222 #define HOTSPOT_BUILD_COMPILER "unknown Workshop:" XSTR(__SUNPRO_CC)
a61af66fc99e Initial load
duke
parents:
diff changeset
223 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
224 #elif defined(__GNUC__)
a61af66fc99e Initial load
duke
parents:
diff changeset
225 #define HOTSPOT_BUILD_COMPILER "gcc " __VERSION__
a61af66fc99e Initial load
duke
parents:
diff changeset
226 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
227 #define HOTSPOT_BUILD_COMPILER "unknown compiler"
a61af66fc99e Initial load
duke
parents:
diff changeset
228 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
229 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
230
2192
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
231 #ifndef FLOAT_ARCH
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
232 #if defined(__SOFTFP__)
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
233 #define FLOAT_ARCH "-sflt"
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
234 #elif defined(E500V2)
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
235 #define FLOAT_ARCH "-e500v2"
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
236 #elif defined(ARM)
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
237 #define FLOAT_ARCH "-vfp"
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
238 #elif defined(PPC)
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
239 #define FLOAT_ARCH "-hflt"
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
240 #else
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
241 #define FLOAT_ARCH ""
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
242 #endif
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
243 #endif
0
a61af66fc99e Initial load
duke
parents:
diff changeset
244
2192
b92c45f2bc75 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 1972
diff changeset
245 return VMNAME " (" VM_RELEASE ") for " OS "-" CPU FLOAT_ARCH
0
a61af66fc99e Initial load
duke
parents:
diff changeset
246 " JRE (" JRE_RELEASE_VERSION "), built on " __DATE__ " " __TIME__
a61af66fc99e Initial load
duke
parents:
diff changeset
247 " by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER;
a61af66fc99e Initial load
duke
parents:
diff changeset
248 }
a61af66fc99e Initial load
duke
parents:
diff changeset
249
2199
d8a72fbc4be7 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 2192
diff changeset
250 const char *Abstract_VM_Version::vm_build_user() {
d8a72fbc4be7 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 2192
diff changeset
251 return HOTSPOT_BUILD_USER;
d8a72fbc4be7 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 2192
diff changeset
252 }
d8a72fbc4be7 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 2192
diff changeset
253
0
a61af66fc99e Initial load
duke
parents:
diff changeset
254 unsigned int Abstract_VM_Version::jvm_version() {
a61af66fc99e Initial load
duke
parents:
diff changeset
255 return ((Abstract_VM_Version::vm_major_version() & 0xFF) << 24) |
a61af66fc99e Initial load
duke
parents:
diff changeset
256 ((Abstract_VM_Version::vm_minor_version() & 0xFF) << 16) |
a61af66fc99e Initial load
duke
parents:
diff changeset
257 (Abstract_VM_Version::vm_build_number() & 0xFF);
a61af66fc99e Initial load
duke
parents:
diff changeset
258 }
a61af66fc99e Initial load
duke
parents:
diff changeset
259
a61af66fc99e Initial load
duke
parents:
diff changeset
260
a61af66fc99e Initial load
duke
parents:
diff changeset
261 void VM_Version_init() {
a61af66fc99e Initial load
duke
parents:
diff changeset
262 VM_Version::initialize();
a61af66fc99e Initial load
duke
parents:
diff changeset
263
a61af66fc99e Initial load
duke
parents:
diff changeset
264 #ifndef PRODUCT
a61af66fc99e Initial load
duke
parents:
diff changeset
265 if (PrintMiscellaneous && Verbose) {
a61af66fc99e Initial load
duke
parents:
diff changeset
266 os::print_cpu_info(tty);
a61af66fc99e Initial load
duke
parents:
diff changeset
267 }
a61af66fc99e Initial load
duke
parents:
diff changeset
268 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
269 }
10
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
270
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
271 unsigned int Abstract_VM_Version::nof_parallel_worker_threads(
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
272 unsigned int num,
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
273 unsigned int den,
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
274 unsigned int switch_pt) {
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
275 if (FLAG_IS_DEFAULT(ParallelGCThreads)) {
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
276 assert(ParallelGCThreads == 0, "Default ParallelGCThreads is not 0");
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
277 // For very large machines, there are diminishing returns
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
278 // for large numbers of worker threads. Instead of
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
279 // hogging the whole system, use a fraction of the workers for every
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
280 // processor after the first 8. For example, on a 72 cpu machine
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
281 // and a chosen fraction of 5/8
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
282 // use 8 + (72 - 8) * (5/8) == 48 worker threads.
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
283 unsigned int ncpus = (unsigned int) os::active_processor_count();
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
284 return (ncpus <= switch_pt) ?
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
285 ncpus :
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
286 (switch_pt + ((ncpus - switch_pt) * num) / den);
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
287 } else {
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
288 return ParallelGCThreads;
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
289 }
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
290 }
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
291
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
292 unsigned int Abstract_VM_Version::calc_parallel_worker_threads() {
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
293 return nof_parallel_worker_threads(5, 8, 8);
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
294 }
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
295
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
296
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
297 // Does not set the _initialized flag since it is
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
298 // a global flag.
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
299 unsigned int Abstract_VM_Version::parallel_worker_threads() {
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
300 if (!_parallel_worker_threads_initialized) {
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
301 if (FLAG_IS_DEFAULT(ParallelGCThreads)) {
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
302 _parallel_worker_threads = VM_Version::calc_parallel_worker_threads();
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
303 } else {
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
304 _parallel_worker_threads = ParallelGCThreads;
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
305 }
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
306 _parallel_worker_threads_initialized = true;
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
307 }
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
308 return _parallel_worker_threads;
28372612af5e 6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents: 0
diff changeset
309 }