From: Ian Lance Taylor Date: Wed, 24 Jun 2009 05:01:17 +0000 (+0000) Subject: PR 10237 X-Git-Tag: dje-cgen-play1-branchpoint~40 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=459c9f1c5f4e19a4fdf39ccd9289f0fde532a21b;p=platform%2Fupstream%2Fbinutils.git PR 10237 * options.cc (General_options::parse_V): Set printed_version_. (General_options::General_options): Initialize printed_version_. * options.h (class General_options): Add printed_version_ field. * gold.cc (queue_initial_tasks): If there are no input files, don't give a fatal error if we printed the version information. (queue_middle_tasks): If using -r with a shared object, give a fatal error rather than an ordinary error. --- diff --git a/gold/ChangeLog b/gold/ChangeLog index 56a4da6..5507317 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,16 @@ 2009-06-23 Ian Lance Taylor + PR 10237 + * options.cc (General_options::parse_V): Set printed_version_. + (General_options::General_options): Initialize printed_version_. + * options.h (class General_options): Add printed_version_ field. + * gold.cc (queue_initial_tasks): If there are no input files, + don't give a fatal error if we printed the version information. + (queue_middle_tasks): If using -r with a shared object, give a + fatal error rather than an ordinary error. + +2009-06-23 Ian Lance Taylor + PR 10219 * layout.cc (Layout::Layout): Initialize have_stabstr_section_. (Layout::make_output_section): Set have_stabstr_section_ if we see diff --git a/gold/gold.cc b/gold/gold.cc index 93d0358..ae4b8b8 100644 --- a/gold/gold.cc +++ b/gold/gold.cc @@ -164,7 +164,11 @@ queue_initial_tasks(const General_options& options, Symbol_table* symtab, Layout* layout, Mapfile* mapfile) { if (cmdline.begin() == cmdline.end()) - gold_fatal(_("no input files")); + { + if (options.printed_version()) + gold_exit(true); + gold_fatal(_("no input files")); + } int thread_count = options.thread_count_initial(); if (thread_count == 0) @@ -364,7 +368,7 @@ queue_middle_tasks(const General_options& options, (*input_objects->dynobj_begin())->name().c_str()); } if (!doing_static_link && parameters->options().relocatable()) - gold_error(_("cannot mix -r with dynamic object %s"), + gold_fatal(_("cannot mix -r with dynamic object %s"), (*input_objects->dynobj_begin())->name().c_str()); if (!doing_static_link && options.oformat_enum() != General_options::OBJECT_FORMAT_ELF) diff --git a/gold/options.cc b/gold/options.cc index ef2aa71..f09dccb 100644 --- a/gold/options.cc +++ b/gold/options.cc @@ -273,6 +273,7 @@ void General_options::parse_V(const char*, const char*, Command_line*) { gold::print_version(true); + this->printed_version_ = true; printf(_(" Supported targets:\n")); std::vector supported_names; gold::supported_target_names(&supported_names); @@ -708,7 +709,8 @@ namespace gold { General_options::General_options() - : execstack_status_(General_options::EXECSTACK_FROM_INPUT), static_(false), + : printed_version_(false), + execstack_status_(General_options::EXECSTACK_FROM_INPUT), static_(false), do_demangle_(false), plugins_(), incremental_disposition_(INCREMENTAL_CHECK), implicit_incremental_(false) { diff --git a/gold/options.h b/gold/options.h index aac0439..deec2ba 100644 --- a/gold/options.h +++ b/gold/options.h @@ -946,6 +946,11 @@ class General_options // any problems. void finalize(); + // True if we printed the version information. + bool + printed_version() const + { return this->printed_version_; } + // The macro defines output() (based on --output), but that's a // generic name. Provide this alternative name, which is clearer. const char* @@ -1090,6 +1095,8 @@ class General_options void add_plugin_option(const char* opt); + // Whether we printed version information. + bool printed_version_; // Whether to mark the stack as executable. Execstack execstack_status_; // Whether to do a static link. @@ -1106,7 +1113,7 @@ class General_options // --incremental-unchanged or --incremental-unknown option. The // value may change as we proceed parsing the command line flags. Incremental_disposition incremental_disposition_; - // Wheater we have seen one of the options that require incremental + // Whether we have seen one of the options that require incremental // build (--incremental-changed, --incremental-unchanged or // --incremental-unknown) bool implicit_incremental_;