7167142: Consider a warning when finding a .hotspotrc or .hotspot_compiler file that isn't used
Summary: Send warnings to output stream
Reviewed-by: dholmes, fparain
--- a/hotspot/src/share/vm/compiler/compilerOracle.cpp Fri Jun 29 17:12:15 2012 -0700
+++ b/hotspot/src/share/vm/compiler/compilerOracle.cpp Mon Jul 02 10:54:17 2012 -0400
@@ -550,10 +550,12 @@
}
}
+static const char* default_cc_file = ".hotspot_compiler";
+
static const char* cc_file() {
#ifdef ASSERT
if (CompileCommandFile == NULL)
- return ".hotspot_compiler";
+ return default_cc_file;
#endif
return CompileCommandFile;
}
@@ -636,10 +638,17 @@
CompilerOracle::parse_from_string(CompileOnly, CompilerOracle::parse_compile_only);
if (CompilerOracle::has_command_file()) {
CompilerOracle::parse_from_file();
+ } else {
+ struct stat buf;
+ if (os::stat(default_cc_file, &buf) == 0) {
+ warning("%s file is present but has been ignored. "
+ "Run with -XX:CompileCommandFile=%s to load the file.",
+ default_cc_file, default_cc_file);
+ }
}
if (lists[PrintCommand] != NULL) {
if (PrintAssembly) {
- warning("CompileCommand and/or .hotspot_compiler file contains 'print' commands, but PrintAssembly is also enabled");
+ warning("CompileCommand and/or %s file contains 'print' commands, but PrintAssembly is also enabled", default_cc_file);
} else if (FLAG_IS_DEFAULT(DebugNonSafepoints)) {
warning("printing of assembly code is enabled; turning on DebugNonSafepoints to gain additional output");
DebugNonSafepoints = true;
--- a/hotspot/src/share/vm/runtime/arguments.cpp Fri Jun 29 17:12:15 2012 -0700
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Mon Jul 02 10:54:17 2012 -0400
@@ -2971,7 +2971,10 @@
const char* tail;
// If flag "-XX:Flags=flags-file" is used it will be the first option to be processed.
+ const char* hotspotrc = ".hotspotrc";
bool settings_file_specified = false;
+ bool needs_hotspotrc_warning = false;
+
const char* flags_file;
int index;
for (index = 0; index < args->nOptions; index++) {
@@ -3015,16 +3018,19 @@
if (!process_settings_file(flags_file, true, args->ignoreUnrecognized)) {
return JNI_EINVAL;
}
- }
-
+ } else {
#ifdef ASSERT
- // Parse default .hotspotrc settings file
- if (!settings_file_specified) {
+ // Parse default .hotspotrc settings file
if (!process_settings_file(".hotspotrc", false, args->ignoreUnrecognized)) {
return JNI_EINVAL;
}
+#else
+ struct stat buf;
+ if (os::stat(hotspotrc, &buf) == 0) {
+ needs_hotspotrc_warning = true;
+ }
+#endif
}
-#endif
if (PrintVMOptions) {
for (index = 0; index < args->nOptions; index++) {
@@ -3041,6 +3047,14 @@
return result;
}
+ // Delay warning until here so that we've had a chance to process
+ // the -XX:-PrintWarnings flag
+ if (needs_hotspotrc_warning) {
+ warning("%s file is present but has been ignored. "
+ "Run with -XX:Flags=%s to load the file.",
+ hotspotrc, hotspotrc);
+ }
+
#if (defined JAVASE_EMBEDDED || defined ARM)
UNSUPPORTED_OPTION(UseG1GC, "G1 GC");
#endif