Add PR reference to ChangeLog entry.
[deliverable/binutils-gdb.git] / gold / copy-relocs.cc
index 20b110dba2ca187b9b8b00ed88ef303210e9efa6..41b65631aad8f9f69c592c3519a9aa5c5c06d915 100644 (file)
@@ -1,6 +1,6 @@
 // copy-relocs.cc -- handle COPY relocations for gold.
 
-// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+// Copyright (C) 2006-2014 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
 namespace gold
 {
 
-// Copy_relocs::Copy_reloc_entry methods.
-
-// Emit the reloc if appropriate.
-
-template<int sh_type, int size, bool big_endian>
-void
-Copy_relocs<sh_type, size, big_endian>::Copy_reloc_entry::emit(
-    Output_data_reloc<sh_type, true, size, big_endian>* reloc_section)
-{
-  // If the symbol is no longer defined in a dynamic object, then we
-  // emitted a COPY relocation, and we do not want to emit this
-  // dynamic relocation.
-  if (this->sym_->is_from_dynobj())
-    reloc_section->add_global(this->sym_, this->reloc_type_,
-                             this->output_section_, this->relobj_,
-                             this->shndx_, this->address_,
-                             this->addend_);
-}
-
 // Copy_relocs methods.
 
 // Handle a relocation against a symbol which may force us to generate
@@ -115,7 +96,8 @@ Copy_relocs<sh_type, size, big_endian>::emit_copy_reloc(
   symtab->define_with_copy_reloc(sym, posd, offset);
 
   // Add the COPY relocation to the dynamic reloc section.
-  reloc_section->add_global(sym, this->copy_reloc_type_, posd, offset, 0);
+  reloc_section->add_global_generic(sym, this->copy_reloc_type_, posd,
+                                   offset, 0);
 }
 
 // Make a COPY relocation for SYM and emit it.
@@ -214,7 +196,18 @@ Copy_relocs<sh_type, size, big_endian>::emit(
   for (typename Copy_reloc_entries::iterator p = this->entries_.begin();
        p != this->entries_.end();
        ++p)
-    p->emit(reloc_section);
+    {
+      Copy_reloc_entry& entry = *p;
+
+      // If the symbol is no longer defined in a dynamic object, then we
+      // emitted a COPY relocation, and we do not want to emit this
+      // dynamic relocation.
+      if (entry.sym_->is_from_dynobj())
+        reloc_section->add_global_generic(entry.sym_, entry.reloc_type_,
+                                          entry.output_section_, entry.relobj_,
+                                          entry.shndx_, entry.address_,
+                                          entry.addend_);
+    }
 
   // We no longer need the saved information.
   this->entries_.clear();
This page took 0.023747 seconds and 4 git commands to generate.