--- a/hotspot/src/share/vm/runtime/arguments.hpp Tue Jul 26 11:04:20 2016 +0200
+++ b/hotspot/src/share/vm/runtime/arguments.hpp Tue Jul 26 10:29:27 2016 -0400
@@ -363,6 +363,9 @@
// -Xbootclasspath/p was supported.
static PathString *_system_boot_class_path;
+ // Set if a modular java runtime image is present vs. a build with exploded modules
+ static bool _has_jimage;
+
// temporary: to emit warning if the default ext dirs are not empty.
// remove this variable when the warning is no longer needed.
static char* _ext_dirs;
@@ -411,11 +414,6 @@
static void set_java_compiler(bool arg) { _java_compiler = arg; }
static bool java_compiler() { return _java_compiler; }
- // Capture the index location of -Xbootclasspath\a within sysclasspath.
- // Used when setting up the bootstrap search path in order to
- // mark the boot loader's append path observability boundary.
- static int _bootclassloader_append_index;
-
// -Xdebug flag
static bool _xdebug_mode;
static void set_xdebug_mode(bool arg) { _xdebug_mode = arg; }
@@ -669,17 +667,6 @@
static size_t min_heap_size() { return _min_heap_size; }
static void set_min_heap_size(size_t v) { _min_heap_size = v; }
- // -Xbootclasspath/a
- static int bootclassloader_append_index() {
- return _bootclassloader_append_index;
- }
- static void set_bootclassloader_append_index(int value) {
- // Set only if the index has not been set yet
- if (_bootclassloader_append_index == -1) {
- _bootclassloader_append_index = value;
- }
- }
-
// -Xrun
static AgentLibrary* libraries() { return _libraryList.first(); }
static bool init_libraries_at_startup() { return !_libraryList.is_empty(); }
@@ -739,19 +726,21 @@
// Set up the underlying pieces of the system boot class path
static void add_xpatchprefix(const char *module_name, const char *path, bool* xpatch_javabase);
- static void set_sysclasspath(const char *value) {
+ static void set_sysclasspath(const char *value, bool has_jimage) {
+ // During start up, set by os::set_boot_path()
+ assert(get_sysclasspath() == NULL, "System boot class path previously set");
_system_boot_class_path->set_value(value);
- set_jdkbootclasspath_append();
+ _has_jimage = has_jimage;
}
static void append_sysclasspath(const char *value) {
_system_boot_class_path->append_value(value);
- set_jdkbootclasspath_append();
+ _jdk_boot_class_path_append->append_value(value);
}
- static void set_jdkbootclasspath_append();
static GrowableArray<ModuleXPatchPath*>* get_xpatchprefix() { return _xpatchprefix; }
static char* get_sysclasspath() { return _system_boot_class_path->value(); }
static char* get_jdk_boot_class_path_append() { return _jdk_boot_class_path_append->value(); }
+ static bool has_jimage() { return _has_jimage; }
static char* get_java_home() { return _java_home->value(); }
static char* get_dll_dir() { return _sun_boot_library_path->value(); }