diff options
author | Cary Coutant <ccoutant@gmail.com> | 2015-11-09 08:43:46 -0800 |
---|---|---|
committer | Cary Coutant <ccoutant@gmail.com> | 2015-11-09 10:33:37 -0800 |
commit | 859d79870d7975ef8d98ea728ee52a264efe7d1e (patch) | |
tree | bc7a666959ce014a14dd5aba7d1030557b351277 /gold/copy-relocs.cc | |
parent | dddc0e16ef5d77e4f97d02ee0e2d4234c97dae0e (diff) | |
download | binutils-gdb-859d79870d7975ef8d98ea728ee52a264efe7d1e.tar.gz |
Remove unnecessary target dependencies on relocation format.
2015-11-09 Cary Coutant <ccoutant@gmail.com>
Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
gold/
* copy-relocs.h (Copy_relocs::copy_reloc): Replace reloc parameter
with type, offset, addend.
(Copy_relocs::save): Likewise.
* copy-relocs.cc (Copy_relocs::copy_reloc): Likewise.
(Copy_relocs::save): Likewise.
* aarch64.cc (Target_aarch64::copy_reloc): Pass r_type, r_offset,
and r_addend to Copy_relocs::copy_reloc.
* arm.cc (Target_arm::copy_reloc): Likewise.
* i386.cc (Target_i386::copy_reloc): Likewise.
* mips.cc (Target_mips::copy_reloc): Likewise.
* powerpc.cc (Target_powerpc::copy_reloc): Likewise.
* s390.cc (Target_s390::copy_reloc): Likewise.
* sparc.cc (Target_sparc::copy_reloc): Likewise.
* tilegx.cc (Target_tilegx::copy_reloc): Likewise.
* x86_64.cc (Target_x86_64::copy_reloc): Likewise.
Diffstat (limited to 'gold/copy-relocs.cc')
-rw-r--r-- | gold/copy-relocs.cc | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/gold/copy-relocs.cc b/gold/copy-relocs.cc index a7824fe36a2..2d03b1a01b6 100644 --- a/gold/copy-relocs.cc +++ b/gold/copy-relocs.cc @@ -42,7 +42,9 @@ Copy_relocs<sh_type, size, big_endian>::copy_reloc( 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)) @@ -51,7 +53,8 @@ Copy_relocs<sh_type, size, big_endian>::copy_reloc( { // 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); } } @@ -176,14 +179,13 @@ Copy_relocs<sh_type, size, big_endian>::save( 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. |