< prev index next >

src/hotspot/share/cds/cdsConfig.cpp

Print this page

   1 /*
   2  * Copyright (c) 2023, 2025, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  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;

 126                 Abstract_VM_Version::vm_variant(), os::file_separator());
 127     } else {
 128       // Assume .jsa is in the same directory where libjvm resides on
 129       // non-static JDK.
 130       char jvm_path[JVM_MAXPATHLEN];
 131       os::jvm_path(jvm_path, sizeof(jvm_path));
 132       char *end = strrchr(jvm_path, *os::file_separator());
 133       if (end != nullptr) *end = '\0';
 134       tmp.print("%s%sclasses", jvm_path, os::file_separator());
 135     }
 136 #ifdef _LP64
 137     if (!UseCompressedOops) {
 138       tmp.print_raw("_nocoops");
 139     }
 140     if (UseCompactObjectHeaders) {
 141       // Note that generation of xxx_coh.jsa variants require
 142       // --enable-cds-archive-coh at build time
 143       tmp.print_raw("_coh");
 144     }
 145 #endif



 146     tmp.print_raw(".jsa");
 147     _default_archive_path = os::strdup(tmp.base());
 148   }
 149   return _default_archive_path;
 150 }
 151 
 152 int CDSConfig::num_archive_paths(const char* path_spec) {
 153   if (path_spec == nullptr) {
 154     return 0;
 155   }
 156   int npaths = 1;
 157   char* p = (char*)path_spec;
 158   while (*p != '\0') {
 159     if (*p == os::path_separator()[0]) {
 160       npaths++;
 161     }
 162     p++;
 163   }
 164   return npaths;
 165 }

   1 /*
   2  * Copyright (c) 2023, 2026, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  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;

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