comparison src/share/vm/runtime/arguments.cpp @ 23408:f84a5ac3be22

make JVMCI JDK immutable and sharable among different JVMCI clients minimize diff to jvmci-9, including adding support for EnableJVMCI (default is true in jvmci-8)
author Doug Simon <doug.simon@oracle.com>
date Mon, 30 May 2016 22:56:59 +0200
parents 3ef45d0a6d77
children b5f3a471e646
comparison
equal deleted inserted replaced
23407:a1d1f1e4817f 23408:f84a5ac3be22
42 #include "services/memTracker.hpp" 42 #include "services/memTracker.hpp"
43 #include "utilities/defaultStream.hpp" 43 #include "utilities/defaultStream.hpp"
44 #include "utilities/macros.hpp" 44 #include "utilities/macros.hpp"
45 #include "utilities/stringUtils.hpp" 45 #include "utilities/stringUtils.hpp"
46 #include "utilities/taskqueue.hpp" 46 #include "utilities/taskqueue.hpp"
47 #if INCLUDE_JVMCI
48 #include "jvmci/jvmciRuntime.hpp"
49 #endif
50 #ifdef TARGET_OS_FAMILY_linux 47 #ifdef TARGET_OS_FAMILY_linux
51 # include "os_linux.inline.hpp" 48 # include "os_linux.inline.hpp"
52 #endif 49 #endif
53 #ifdef TARGET_OS_FAMILY_solaris 50 #ifdef TARGET_OS_FAMILY_solaris
54 # include "os_solaris.inline.hpp" 51 # include "os_solaris.inline.hpp"
210 PropertyList_add(&_system_properties, _java_class_path); 207 PropertyList_add(&_system_properties, _java_class_path);
211 PropertyList_add(&_system_properties, _sun_boot_class_path); 208 PropertyList_add(&_system_properties, _sun_boot_class_path);
212 209
213 // Set OS specific system properties values 210 // Set OS specific system properties values
214 os::init_system_properties_values(); 211 os::init_system_properties_values();
215
216 #if INCLUDE_JVMCI
217 JVMCIRuntime::init_system_properties(&_system_properties);
218 #endif
219 } 212 }
220 213
221 214
222 // Update/Initialize System properties after JDK version number is known 215 // Update/Initialize System properties after JDK version number is known
223 void Arguments::init_version_specific_system_properties() { 216 void Arguments::init_version_specific_system_properties() {
2443 } 2436 }
2444 #endif 2437 #endif
2445 } 2438 }
2446 #if INCLUDE_JVMCI 2439 #if INCLUDE_JVMCI
2447 if (!EnableJVMCI) { 2440 if (!EnableJVMCI) {
2448 warning("ignoring flag -EnableJVMCI, JVMCI can not be disabled in this VM"); 2441 #define JVMCI_CHECK3(type, name, doc) JVMCI_CHECK_FLAG(name)
2449 } 2442 #define JVMCI_CHECK4(type, name, value, doc) JVMCI_CHECK_FLAG(name)
2450 if (BootstrapJVMCI && !UseJVMCICompiler) { 2443 #define JVMCI_CHECK_FLAG(FLAG) \
2451 warning("BootstrapJVMCI has no effect if UseJVMCICompiler is disabled"); 2444 if (!FLAG_IS_DEFAULT(FLAG)) { \
2452 } 2445 jio_fprintf(defaultStream::error_stream(), "EnableJVMCI must be enabled to use VM option '%s'\n", #FLAG); \
2453 if (!ScavengeRootsInCode) { 2446 status = false; \
2454 warning("forcing ScavengeRootsInCode non-zero because JVMCI is enabled"); 2447 }
2455 ScavengeRootsInCode = 1; 2448 JVMCI_FLAGS(JVMCI_CHECK4, JVMCI_CHECK3, JVMCI_CHECK4, JVMCI_CHECK3, JVMCI_CHECK4)
2449 #undef JVMCI_CHECK3
2450 #undef JVMCI_CHECK4
2451 #undef JVMCI_CHECK_FLAG
2452 } else {
2453 if (BootstrapJVMCI && !UseJVMCICompiler) {
2454 warning("BootstrapJVMCI has no effect if UseJVMCICompiler is disabled");
2455 }
2456 if (!ScavengeRootsInCode) {
2457 warning("forcing ScavengeRootsInCode non-zero because JVMCI is enabled");
2458 ScavengeRootsInCode = 1;
2459 }
2456 } 2460 }
2457 #endif 2461 #endif
2458 2462
2459 // Need to limit the extent of the padding to reasonable size. 2463 // Need to limit the extent of the padding to reasonable size.
2460 // 8K is well beyond the reasonable HW cache line size, even with the 2464 // 8K is well beyond the reasonable HW cache line size, even with the
3609 } 3613 }
3610 } 3614 }
3611 FREE_C_HEAP_ARRAY(char, dbuf, mtInternal); 3615 FREE_C_HEAP_ARRAY(char, dbuf, mtInternal);
3612 os::closedir(dir); 3616 os::closedir(dir);
3613 } 3617 }
3614 3618 const char* path = Arguments::get_property("jvmci.class.path.append");
3619 if (path != NULL) {
3620 scp_p->add_suffix(path);
3621 scp_assembly_required = true;
3622 }
3615 } 3623 }
3616 #endif 3624 #endif
3617 3625
3618 if (scp_assembly_required || scp_p->get_endorsed() != NULL) { 3626 if (scp_assembly_required || scp_p->get_endorsed() != NULL) {
3619 // Assemble the bootclasspath elements into the final path. 3627 // Assemble the bootclasspath elements into the final path.