// copy-relocs.cc -- handle COPY relocations for gold.
-// Copyright (C) 2006-2015 Free Software Foundation, Inc.
+// Copyright (C) 2006-2016 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
Sized_relobj_file<size, big_endian>* object,
unsigned int shndx,
Output_section* output_section,
- const Reloc& rel,
+ unsigned int r_type,
+ typename elfcpp::Elf_types<size>::Elf_Addr r_offset,
+ typename elfcpp::Elf_types<size>::Elf_Swxword r_addend,
Output_data_reloc<sh_type, true, size, big_endian>* reloc_section)
{
if (this->need_copy_reloc(sym, object, shndx))
{
// We may not need a COPY relocation. Save this relocation to
// possibly be emitted later.
- this->save(sym, object, shndx, output_section, rel);
+ this->save(sym, object, shndx, output_section,
+ r_type, r_offset, r_addend);
}
}
Sized_relobj_file<size, big_endian>* object,
unsigned int shndx,
Output_section* output_section,
- const Reloc& rel)
+ unsigned int r_type,
+ typename elfcpp::Elf_types<size>::Elf_Addr r_offset,
+ typename elfcpp::Elf_types<size>::Elf_Swxword r_addend)
{
- unsigned int reloc_type = elfcpp::elf_r_type<size>(rel.get_r_info());
- typename elfcpp::Elf_types<size>::Elf_Addr addend =
- Reloc_types<sh_type, size, big_endian>::get_reloc_addend_noerror(&rel);
- this->entries_.push_back(Copy_reloc_entry(sym, reloc_type, object, shndx,
- output_section, rel.get_r_offset(),
- addend));
+ this->entries_.push_back(Copy_reloc_entry(sym, r_type, object, shndx,
+ output_section, r_offset,
+ r_addend));
}
// Emit any saved relocs.