* ld-mips-elf/reloc-4.s, ld-mips-elf/reloc-4.d,
[deliverable/binutils-gdb.git] / gold / target.h
index 039b97dc7f40f20c62408f591b577071aac6ecc8..9181a93193d53fd5e4d5f673e48105ec56ac10ef 100644 (file)
@@ -83,6 +83,12 @@ class Target
   common_pagesize() const
   { return this->pti_->common_pagesize; }
 
+  // This is called to tell the target to complete any sections it is
+  // handling.  After this all sections must have their final size.
+  void
+  finalize_sections(const General_options* options, Layout* layout)
+  { return this->do_finalize_sections(options, layout); }
+
  protected:
   // This struct holds the constant information for a child class.  We
   // use a struct to avoid the overhead of virtual function calls for
@@ -113,6 +119,11 @@ class Target
     : pti_(pti)
   { }
 
+  // Virtual function which may be implemented by the child class.
+  virtual void
+  do_finalize_sections(const General_options*, Layout*)
+  { }
+
  private:
   Target(const Target&);
   Target& operator=(const Target&);
@@ -134,15 +145,17 @@ class Sized_target : public Target
   // symbol table.  This will only be called if has_make_symbol()
   // returns true.
   virtual Sized_symbol<size>*
-  make_symbol()
+  make_symbol() const
   { gold_unreachable(); }
 
   // Resolve a symbol for the target.  This should be overridden by a
   // target which needs to take special action.  TO is the
   // pre-existing symbol.  SYM is the new symbol, seen in OBJECT.
-  // This will only be called if has_resolve() returns true.
+  // VERSION is the version of SYM.  This will only be called if
+  // has_resolve() returns true.
   virtual void
-  resolve(Symbol*, const elfcpp::Sym<size, big_endian>&, Object*)
+  resolve(Symbol*, const elfcpp::Sym<size, big_endian>&, Object*,
+         const char*)
   { gold_unreachable(); }
 
   // Scan the relocs for a section, and record any information
This page took 0.023019 seconds and 4 git commands to generate.