19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "cds/aotLogging.hpp"
26 #include "cds/aotMapLogger.hpp"
27 #include "cds/cdsConfig.hpp"
28 #include "cds/classListWriter.hpp"
29 #include "cds/filemap.hpp"
30 #include "cds/heapShared.inline.hpp"
31 #include "classfile/classLoaderDataShared.hpp"
32 #include "classfile/moduleEntry.hpp"
33 #include "code/aotCodeCache.hpp"
34 #include "include/jvm_io.h"
35 #include "logging/log.hpp"
36 #include "memory/universe.hpp"
37 #include "prims/jvmtiAgentList.hpp"
38 #include "runtime/arguments.hpp"
39 #include "runtime/globals_extension.hpp"
40 #include "runtime/java.hpp"
41 #include "runtime/vmThread.hpp"
42 #include "utilities/defaultStream.hpp"
43 #include "utilities/formatBuffer.hpp"
44
45 bool CDSConfig::_is_dumping_static_archive = false;
46 bool CDSConfig::_is_dumping_preimage_static_archive = false;
47 bool CDSConfig::_is_dumping_final_static_archive = false;
48 bool CDSConfig::_is_dumping_dynamic_archive = false;
49 bool CDSConfig::_is_using_optimized_module_handling = true;
50 bool CDSConfig::_is_dumping_full_module_graph = true;
51 bool CDSConfig::_is_using_full_module_graph = true;
52 bool CDSConfig::_has_aot_linked_classes = false;
53 bool CDSConfig::_is_single_command_training = false;
54 bool CDSConfig::_has_temp_aot_config_file = false;
55 bool CDSConfig::_old_cds_flags_used = false;
56 bool CDSConfig::_new_aot_flags_used = false;
57 bool CDSConfig::_disable_heap_dumping = false;
58 bool CDSConfig::_is_at_aot_safepoint = false;
141 Abstract_VM_Version::vm_variant(), os::file_separator());
142 } else {
143 // Assume .jsa is in the same directory where libjvm resides on
144 // non-static JDK.
145 char jvm_path[JVM_MAXPATHLEN];
146 os::jvm_path(jvm_path, sizeof(jvm_path));
147 char *end = strrchr(jvm_path, *os::file_separator());
148 if (end != nullptr) *end = '\0';
149 tmp.print("%s%sclasses", jvm_path, os::file_separator());
150 }
151 #ifdef _LP64
152 if (!UseCompressedOops) {
153 tmp.print_raw("_nocoops");
154 }
155 if (!UseCompactObjectHeaders) {
156 // Note that generation of xxx_nocoh.jsa variants require
157 // --enable-cds-archive-nocoh at build time
158 tmp.print_raw("_nocoh");
159 }
160 #endif
161 tmp.print_raw(".jsa");
162 _default_archive_path = os::strdup(tmp.base());
163 }
164 return _default_archive_path;
165 }
166
167 int CDSConfig::num_archive_paths(const char* path_spec) {
168 if (path_spec == nullptr) {
169 return 0;
170 }
171 int npaths = 1;
172 char* p = (char*)path_spec;
173 while (*p != '\0') {
174 if (*p == os::path_separator()[0]) {
175 npaths++;
176 }
177 p++;
178 }
179 return npaths;
180 }
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "cds/aotLogging.hpp"
26 #include "cds/aotMapLogger.hpp"
27 #include "cds/cdsConfig.hpp"
28 #include "cds/classListWriter.hpp"
29 #include "cds/filemap.hpp"
30 #include "cds/heapShared.inline.hpp"
31 #include "classfile/classLoaderDataShared.hpp"
32 #include "classfile/moduleEntry.hpp"
33 #include "code/aotCodeCache.hpp"
34 #include "include/jvm_io.h"
35 #include "logging/log.hpp"
36 #include "memory/universe.hpp"
37 #include "prims/jvmtiAgentList.hpp"
38 #include "runtime/arguments.hpp"
39 #include "runtime/globals.hpp"
40 #include "runtime/globals_extension.hpp"
41 #include "runtime/java.hpp"
42 #include "runtime/vmThread.hpp"
43 #include "utilities/defaultStream.hpp"
44 #include "utilities/formatBuffer.hpp"
45
46 bool CDSConfig::_is_dumping_static_archive = false;
47 bool CDSConfig::_is_dumping_preimage_static_archive = false;
48 bool CDSConfig::_is_dumping_final_static_archive = false;
49 bool CDSConfig::_is_dumping_dynamic_archive = false;
50 bool CDSConfig::_is_using_optimized_module_handling = true;
51 bool CDSConfig::_is_dumping_full_module_graph = true;
52 bool CDSConfig::_is_using_full_module_graph = true;
53 bool CDSConfig::_has_aot_linked_classes = false;
54 bool CDSConfig::_is_single_command_training = false;
55 bool CDSConfig::_has_temp_aot_config_file = false;
56 bool CDSConfig::_old_cds_flags_used = false;
57 bool CDSConfig::_new_aot_flags_used = false;
58 bool CDSConfig::_disable_heap_dumping = false;
59 bool CDSConfig::_is_at_aot_safepoint = false;
142 Abstract_VM_Version::vm_variant(), os::file_separator());
143 } else {
144 // Assume .jsa is in the same directory where libjvm resides on
145 // non-static JDK.
146 char jvm_path[JVM_MAXPATHLEN];
147 os::jvm_path(jvm_path, sizeof(jvm_path));
148 char *end = strrchr(jvm_path, *os::file_separator());
149 if (end != nullptr) *end = '\0';
150 tmp.print("%s%sclasses", jvm_path, os::file_separator());
151 }
152 #ifdef _LP64
153 if (!UseCompressedOops) {
154 tmp.print_raw("_nocoops");
155 }
156 if (!UseCompactObjectHeaders) {
157 // Note that generation of xxx_nocoh.jsa variants require
158 // --enable-cds-archive-nocoh at build time
159 tmp.print_raw("_nocoh");
160 }
161 #endif
162 if (Arguments::is_valhalla_enabled()) {
163 tmp.print_raw("_preview");
164 }
165 tmp.print_raw(".jsa");
166 _default_archive_path = os::strdup(tmp.base());
167 }
168 return _default_archive_path;
169 }
170
171 int CDSConfig::num_archive_paths(const char* path_spec) {
172 if (path_spec == nullptr) {
173 return 0;
174 }
175 int npaths = 1;
176 char* p = (char*)path_spec;
177 while (*p != '\0') {
178 if (*p == os::path_separator()[0]) {
179 npaths++;
180 }
181 p++;
182 }
183 return npaths;
184 }
|