OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [gold/] [readsyms.cc] - Diff between revs 27 and 159

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 27 Rev 159
Line 318... Line 318...
                                                        this->next_blocker_));
                                                        this->next_blocker_));
          return true;
          return true;
        }
        }
    }
    }
 
 
 
  Object* elf_obj = NULL;
 
  bool unconfigured;
 
  bool* punconfigured = NULL;
 
  if (is_elf)
 
    {
 
      // This is an ELF object.
 
 
 
      unconfigured = false;
 
      punconfigured = (input_file->will_search_for()
 
                       ? &unconfigured
 
                       : NULL);
 
      elf_obj = make_elf_object(input_file->filename(),
 
                                input_file, 0, ehdr, read_size,
 
                                punconfigured);
 
    }
 
 
  if (parameters->options().has_plugins())
  if (parameters->options().has_plugins())
    {
    {
      Pluginobj* obj = parameters->options().plugins()->claim_file(input_file,
      Pluginobj* obj = parameters->options().plugins()->claim_file(input_file,
                                                                   0, filesize);
                                                                   0, filesize,
 
                                                                   elf_obj);
      if (obj != NULL)
      if (obj != NULL)
        {
        {
 
          // Delete the elf_obj, this file has been claimed.
 
          if (elf_obj != NULL)
 
            delete elf_obj;
 
 
          // The input file was claimed by a plugin, and its symbols
          // The input file was claimed by a plugin, and its symbols
          // have been provided by the plugin.
          // have been provided by the plugin.
 
 
          // We are done with the file at this point, so unlock it.
          // We are done with the file at this point, so unlock it.
          obj->unlock(this);
          obj->unlock(this);
Line 357... Line 378...
 
 
  if (is_elf)
  if (is_elf)
    {
    {
      // This is an ELF object.
      // This is an ELF object.
 
 
      bool unconfigured = false;
      if (elf_obj == NULL)
      bool* punconfigured = (input_file->will_search_for()
 
                             ? &unconfigured
 
                             : NULL);
 
      Object* obj = make_elf_object(input_file->filename(),
 
                                    input_file, 0, ehdr, read_size,
 
                                    punconfigured);
 
      if (obj == NULL)
 
        {
        {
          if (unconfigured)
          if (unconfigured)
            {
            {
              Read_symbols::incompatible_warning(this->input_argument_,
              Read_symbols::incompatible_warning(this->input_argument_,
                                                 input_file);
                                                 input_file);
Line 380... Line 394...
            }
            }
          return false;
          return false;
        }
        }
 
 
      Read_symbols_data* sd = new Read_symbols_data;
      Read_symbols_data* sd = new Read_symbols_data;
      obj->read_symbols(sd);
      elf_obj->read_symbols(sd);
 
 
      // Opening the file locked it, so now we need to unlock it.  We
      // Opening the file locked it, so now we need to unlock it.  We
      // need to unlock it before queuing the Add_symbols task,
      // need to unlock it before queuing the Add_symbols task,
      // because the workqueue doesn't know about our lock on the
      // because the workqueue doesn't know about our lock on the
      // file.  If we queue the Add_symbols task first, it will be
      // file.  If we queue the Add_symbols task first, it will be
Line 395... Line 409...
      input_file->file().unlock(this);
      input_file->file().unlock(this);
 
 
      if (this->member_ != NULL)
      if (this->member_ != NULL)
        {
        {
          this->member_->sd_ = sd;
          this->member_->sd_ = sd;
          this->member_->obj_ = obj;
          this->member_->obj_ = elf_obj;
          this->member_->arg_serial_ =
          this->member_->arg_serial_ =
              this->input_argument_->file().arg_serial();
              this->input_argument_->file().arg_serial();
          return true;
          return true;
        }
        }
 
 
Line 410... Line 424...
                                            this->symtab_, this->layout_,
                                            this->symtab_, this->layout_,
                                            this->dirpath_,
                                            this->dirpath_,
                                            this->dirindex_,
                                            this->dirindex_,
                                            this->mapfile_,
                                            this->mapfile_,
                                            this->input_argument_,
                                            this->input_argument_,
                                            obj,
                                            elf_obj,
                                            NULL,
                                            NULL,
                                            sd,
                                            sd,
                                            this->this_blocker_,
                                            this->this_blocker_,
                                            this->next_blocker_));
                                            this->next_blocker_));
 
 
Line 635... Line 649...
// Return whether a Read_member task is runnable.
// Return whether a Read_member task is runnable.
 
 
Task_token*
Task_token*
Read_member::is_runnable()
Read_member::is_runnable()
{
{
 
  if (this->this_blocker_ != NULL && this->this_blocker_->is_blocked())
 
    return this->this_blocker_;
  return NULL;
  return NULL;
}
}
 
 
void
void
Read_member::locks(Task_locker* tl)
Read_member::locks(Task_locker* tl)

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.