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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [gold/] [symtab.h] - Diff between revs 27 and 148

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

Rev 27 Rev 148
Line 801... Line 801...
            && parameters->options().copyreloc()
            && parameters->options().copyreloc()
            && this->is_from_dynobj()
            && this->is_from_dynobj()
            && !this->is_func());
            && !this->is_func());
  }
  }
 
 
 
  // Return true if this symbol was predefined by the linker.
 
  bool
 
  is_predefined() const
 
  { return this->is_predefined_; }
 
 
 protected:
 protected:
  // Instances of this class should always be created at a specific
  // Instances of this class should always be created at a specific
  // size.
  // size.
  Symbol()
  Symbol()
  { memset(this, 0, sizeof *this); }
  { memset(this, 0, sizeof *this); }
Line 826... Line 831...
 
 
  // Initialize fields for an Output_data.
  // Initialize fields for an Output_data.
  void
  void
  init_base_output_data(const char* name, const char* version, Output_data*,
  init_base_output_data(const char* name, const char* version, Output_data*,
                        elfcpp::STT, elfcpp::STB, elfcpp::STV,
                        elfcpp::STT, elfcpp::STB, elfcpp::STV,
                        unsigned char nonvis, bool offset_is_from_end);
                        unsigned char nonvis, bool offset_is_from_end,
 
                        bool is_predefined);
 
 
  // Initialize fields for an Output_segment.
  // Initialize fields for an Output_segment.
  void
  void
  init_base_output_segment(const char* name, const char* version,
  init_base_output_segment(const char* name, const char* version,
                           Output_segment* os, elfcpp::STT type,
                           Output_segment* os, elfcpp::STT type,
                           elfcpp::STB binding, elfcpp::STV visibility,
                           elfcpp::STB binding, elfcpp::STV visibility,
                           unsigned char nonvis,
                           unsigned char nonvis,
                           Segment_offset_base offset_base);
                           Segment_offset_base offset_base,
 
                           bool is_predefined);
 
 
  // Initialize fields for a constant.
  // Initialize fields for a constant.
  void
  void
  init_base_constant(const char* name, const char* version, elfcpp::STT type,
  init_base_constant(const char* name, const char* version, elfcpp::STT type,
                     elfcpp::STB binding, elfcpp::STV visibility,
                     elfcpp::STB binding, elfcpp::STV visibility,
                     unsigned char nonvis);
                     unsigned char nonvis, bool is_predefined);
 
 
  // Initialize fields for an undefined symbol.
  // Initialize fields for an undefined symbol.
  void
  void
  init_base_undefined(const char* name, const char* version, elfcpp::STT type,
  init_base_undefined(const char* name, const char* version, elfcpp::STT type,
                      elfcpp::STB binding, elfcpp::STV visibility,
                      elfcpp::STB binding, elfcpp::STV visibility,
Line 989... Line 996...
  // True if UNDEF_BINDING_WEAK_ has been set (bit 32).
  // True if UNDEF_BINDING_WEAK_ has been set (bit 32).
  bool undef_binding_set_ : 1;
  bool undef_binding_set_ : 1;
  // True if this symbol was a weak undef resolved by a dynamic def
  // True if this symbol was a weak undef resolved by a dynamic def
  // (bit 33).
  // (bit 33).
  bool undef_binding_weak_ : 1;
  bool undef_binding_weak_ : 1;
 
  // True if this symbol is a predefined linker symbol (bit 34).
 
  bool is_predefined_ : 1;
};
};
 
 
// The parts of a symbol which are size specific.  Using a template
// The parts of a symbol which are size specific.  Using a template
// derived class like this helps us use less space on a 32-bit system.
// derived class like this helps us use less space on a 32-bit system.
 
 
Line 1018... Line 1027...
  // Initialize fields for an Output_data.
  // Initialize fields for an Output_data.
  void
  void
  init_output_data(const char* name, const char* version, Output_data*,
  init_output_data(const char* name, const char* version, Output_data*,
                   Value_type value, Size_type symsize, elfcpp::STT,
                   Value_type value, Size_type symsize, elfcpp::STT,
                   elfcpp::STB, elfcpp::STV, unsigned char nonvis,
                   elfcpp::STB, elfcpp::STV, unsigned char nonvis,
                   bool offset_is_from_end);
                   bool offset_is_from_end, bool is_predefined);
 
 
  // Initialize fields for an Output_segment.
  // Initialize fields for an Output_segment.
  void
  void
  init_output_segment(const char* name, const char* version, Output_segment*,
  init_output_segment(const char* name, const char* version, Output_segment*,
                      Value_type value, Size_type symsize, elfcpp::STT,
                      Value_type value, Size_type symsize, elfcpp::STT,
                      elfcpp::STB, elfcpp::STV, unsigned char nonvis,
                      elfcpp::STB, elfcpp::STV, unsigned char nonvis,
                      Segment_offset_base offset_base);
                      Segment_offset_base offset_base, bool is_predefined);
 
 
  // Initialize fields for a constant.
  // Initialize fields for a constant.
  void
  void
  init_constant(const char* name, const char* version, Value_type value,
  init_constant(const char* name, const char* version, Value_type value,
                Size_type symsize, elfcpp::STT, elfcpp::STB, elfcpp::STV,
                Size_type symsize, elfcpp::STT, elfcpp::STB, elfcpp::STV,
                unsigned char nonvis);
                unsigned char nonvis, bool is_predefined);
 
 
  // Initialize fields for an undefined symbol.
  // Initialize fields for an undefined symbol.
  void
  void
  init_undefined(const char* name, const char* version, elfcpp::STT,
  init_undefined(const char* name, const char* version, elfcpp::STT,
                 elfcpp::STB, elfcpp::STV, unsigned char nonvis);
                 elfcpp::STB, elfcpp::STV, unsigned char nonvis);
Line 1248... Line 1257...
    UNDEFINED,
    UNDEFINED,
    // Defined in a linker script.
    // Defined in a linker script.
    SCRIPT,
    SCRIPT,
    // Predefined by the linker.
    // Predefined by the linker.
    PREDEFINED,
    PREDEFINED,
 
    // Defined by the linker during an incremental base link, but not
 
    // a predefined symbol (e.g., common, defined in script).
 
    INCREMENTAL_BASE,
  };
  };
 
 
  // The order in which we sort common symbols.
  // The order in which we sort common symbols.
  enum Sort_commons_order
  enum Sort_commons_order
  {
  {
Line 1339... Line 1351...
                  size_t* defined);
                  size_t* defined);
 
 
  // Add one external symbol from the incremental object OBJ to the symbol
  // Add one external symbol from the incremental object OBJ to the symbol
  // table.  Returns a pointer to the resolved symbol in the symbol table.
  // table.  Returns a pointer to the resolved symbol in the symbol table.
  template<int size, bool big_endian>
  template<int size, bool big_endian>
  Symbol*
  Sized_symbol<size>*
  add_from_incrobj(Object* obj, const char* name,
  add_from_incrobj(Object* obj, const char* name,
                   const char* ver, elfcpp::Sym<size, big_endian>* sym);
                   const char* ver, elfcpp::Sym<size, big_endian>* sym);
 
 
  // Define a special symbol based on an Output_data.  It is a
  // Define a special symbol based on an Output_data.  It is a
  // multiple definition error if this symbol is already defined.
  // multiple definition error if this symbol is already defined.

powered by: WebSVN 2.1.0

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