Mercurial > hg > release > icedtea7-forest-2.1 > hotspot
changeset 2961:39068668f2c1
7110720: Issue with vm config file loadingIssue with vm config file loading
Summary: disabling default config files if -XX:-ReadDefaultConfigFiles
Reviewed-by: phh, jrose, dcubed, dholmes
author | kamg |
---|---|
date | Thu, 29 Mar 2012 13:22:24 -0400 |
parents | a5d04cb60a5c |
children | 253e7c32def9 |
files | src/share/vm/compiler/compilerOracle.cpp src/share/vm/compiler/compilerOracle.hpp src/share/vm/opto/runtime.cpp src/share/vm/runtime/arguments.cpp |
diffstat | 4 files changed, 26 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/compiler/compilerOracle.cpp Wed Apr 11 09:24:03 2012 -0400 +++ b/src/share/vm/compiler/compilerOracle.cpp Thu Mar 29 13:22:24 2012 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -551,13 +551,22 @@ } static const char* cc_file() { - if (CompileCommandFile == NULL) +#ifdef ASSERT + if (CompileCommandFile == NULL) { return ".hotspot_compiler"; + } +#endif return CompileCommandFile; } + +bool CompilerOracle::has_command_file() { + return cc_file() != NULL; +} + bool CompilerOracle::_quiet = false; void CompilerOracle::parse_from_file() { + assert(has_command_file(), "command file must be specified"); FILE* stream = fopen(cc_file(), "rt"); if (stream == NULL) return; @@ -600,6 +609,7 @@ } void CompilerOracle::append_comment_to_file(const char* message) { + assert(has_command_file(), "command file must be specified"); fileStream stream(fopen(cc_file(), "at")); stream.print("# "); for (int index = 0; message[index] != '\0'; index++) { @@ -610,6 +620,7 @@ } void CompilerOracle::append_exclude_to_file(methodHandle method) { + assert(has_command_file(), "command file must be specified"); fileStream stream(fopen(cc_file(), "at")); stream.print("exclude "); Klass::cast(method->method_holder())->name()->print_symbol_on(&stream); @@ -624,7 +635,9 @@ void compilerOracle_init() { CompilerOracle::parse_from_string(CompileCommand, CompilerOracle::parse_from_line); CompilerOracle::parse_from_string(CompileOnly, CompilerOracle::parse_compile_only); - CompilerOracle::parse_from_file(); + if (CompilerOracle::has_command_file()) { + CompilerOracle::parse_from_file(); + } if (lists[PrintCommand] != NULL) { if (PrintAssembly) { warning("CompileCommand and/or .hotspot_compiler file contains 'print' commands, but PrintAssembly is also enabled");
--- a/src/share/vm/compiler/compilerOracle.hpp Wed Apr 11 09:24:03 2012 -0400 +++ b/src/share/vm/compiler/compilerOracle.hpp Thu Mar 29 13:22:24 2012 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,6 +36,10 @@ static bool _quiet; public: + + // True if the command file has been specified or is implicit + static bool has_command_file(); + // Reads from file and adds to lists static void parse_from_file();
--- a/src/share/vm/opto/runtime.cpp Wed Apr 11 09:24:03 2012 -0400 +++ b/src/share/vm/opto/runtime.cpp Thu Mar 29 13:22:24 2012 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -846,7 +846,8 @@ methodOop method = ((nmethod*)n)->method(); tty->print_cr("# Method where it happened %s.%s ", Klass::cast(method->method_holder())->name()->as_C_string(), method->name()->as_C_string()); tty->print_cr("#"); - if (ShowMessageBoxOnError && UpdateHotSpotCompilerFileOnError) { + if (ShowMessageBoxOnError && UpdateHotSpotCompilerFileOnError && + CompilerOracle::has_command_file()) { const char* title = "HotSpot Runtime Error"; const char* question = "Do you want to exclude compilation of this method in future runs?"; if (os::message_box(title, question)) {
--- a/src/share/vm/runtime/arguments.cpp Wed Apr 11 09:24:03 2012 -0400 +++ b/src/share/vm/runtime/arguments.cpp Thu Mar 29 13:22:24 2012 -0400 @@ -2997,12 +2997,14 @@ } } +#ifdef ASSERT // Parse default .hotspotrc settings file if (!settings_file_specified) { if (!process_settings_file(".hotspotrc", false, args->ignoreUnrecognized)) { return JNI_EINVAL; } } +#endif if (PrintVMOptions) { for (index = 0; index < args->nOptions; index++) {