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;
128 Abstract_VM_Version::vm_variant(), os::file_separator());
129 } else {
130 // Assume .jsa is in the same directory where libjvm resides on
131 // non-static JDK.
132 char jvm_path[JVM_MAXPATHLEN];
133 os::jvm_path(jvm_path, sizeof(jvm_path));
134 char *end = strrchr(jvm_path, *os::file_separator());
135 if (end != nullptr) *end = '\0';
136 tmp.print("%s%sclasses", jvm_path, os::file_separator());
137 }
138 #ifdef _LP64
139 if (!UseCompressedOops) {
140 tmp.print_raw("_nocoops");
141 }
142 if (UseCompactObjectHeaders) {
143 // Note that generation of xxx_coh.jsa variants require
144 // --enable-cds-archive-coh at build time
145 tmp.print_raw("_coh");
146 }
147 #endif
148 tmp.print_raw(".jsa");
149 _default_archive_path = os::strdup(tmp.base());
150 }
151 return _default_archive_path;
152 }
153
154 int CDSConfig::num_archive_paths(const char* path_spec) {
155 if (path_spec == nullptr) {
156 return 0;
157 }
158 int npaths = 1;
159 char* p = (char*)path_spec;
160 while (*p != '\0') {
161 if (*p == os::path_separator()[0]) {
162 npaths++;
163 }
164 p++;
165 }
166 return npaths;
167 }
|
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;
129 Abstract_VM_Version::vm_variant(), os::file_separator());
130 } else {
131 // Assume .jsa is in the same directory where libjvm resides on
132 // non-static JDK.
133 char jvm_path[JVM_MAXPATHLEN];
134 os::jvm_path(jvm_path, sizeof(jvm_path));
135 char *end = strrchr(jvm_path, *os::file_separator());
136 if (end != nullptr) *end = '\0';
137 tmp.print("%s%sclasses", jvm_path, os::file_separator());
138 }
139 #ifdef _LP64
140 if (!UseCompressedOops) {
141 tmp.print_raw("_nocoops");
142 }
143 if (UseCompactObjectHeaders) {
144 // Note that generation of xxx_coh.jsa variants require
145 // --enable-cds-archive-coh at build time
146 tmp.print_raw("_coh");
147 }
148 #endif
149 if (Arguments::is_valhalla_enabled()) {
150 tmp.print_raw("_preview");
151 }
152 tmp.print_raw(".jsa");
153 _default_archive_path = os::strdup(tmp.base());
154 }
155 return _default_archive_path;
156 }
157
158 int CDSConfig::num_archive_paths(const char* path_spec) {
159 if (path_spec == nullptr) {
160 return 0;
161 }
162 int npaths = 1;
163 char* p = (char*)path_spec;
164 while (*p != '\0') {
165 if (*p == os::path_separator()[0]) {
166 npaths++;
167 }
168 p++;
169 }
170 return npaths;
171 }
|