diff options
Diffstat (limited to 'gold/readsyms.cc')
-rw-r--r-- | gold/readsyms.cc | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/gold/readsyms.cc b/gold/readsyms.cc index c05d5a3..6494528 100644 --- a/gold/readsyms.cc +++ b/gold/readsyms.cc @@ -266,13 +266,16 @@ Read_symbols::do_read_symbols(Workqueue* workqueue) { // This is an ELF object. - bool unconfigured; + bool unconfigured = false; + bool* punconfigured = (input_file->will_search_for() + ? &unconfigured + : NULL); Object* obj = make_elf_object(input_file->filename(), input_file, 0, ehdr, read_size, - &unconfigured); + punconfigured); if (obj == NULL) { - if (unconfigured && input_file->will_search_for()) + if (unconfigured) { Read_symbols::incompatible_warning(this->input_argument_, input_file); @@ -447,7 +450,7 @@ Add_symbols::locks(Task_locker* tl) // Add the symbols in the object to the symbol table. void -Add_symbols::run(Workqueue* workqueue) +Add_symbols::run(Workqueue*) { Pluginobj* pluginobj = this->object_->pluginobj(); if (pluginobj != NULL) @@ -456,21 +459,7 @@ Add_symbols::run(Workqueue* workqueue) return; } - // If this file has an incompatible format, try for another file - // with the same name. - if (this->object_->searched_for() - && !parameters->is_compatible_target(this->object_->target())) - { - Read_symbols::incompatible_warning(this->input_argument_, - this->object_->input_file()); - Read_symbols::requeue(workqueue, this->input_objects_, this->symtab_, - this->layout_, this->dirpath_, this->dirindex_, - this->mapfile_, this->input_argument_, - this->input_group_, this->next_blocker_); - this->object_->release(); - delete this->object_; - } - else if (!this->input_objects_->add_object(this->object_)) + if (!this->input_objects_->add_object(this->object_)) { this->object_->release(); delete this->object_; |