diff options
Diffstat (limited to 'gold/x86_64.cc')
-rw-r--r-- | gold/x86_64.cc | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gold/x86_64.cc b/gold/x86_64.cc index 5ba15c4..e4a7043 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -345,6 +345,17 @@ class Target_x86_64 : public Target_freebsd<64, false> unsigned int plt_entry_size() const; + // Apply an incremental relocation. + void + apply_relocation(const Relocate_info<64, false>* relinfo, + elfcpp::Elf_types<64>::Elf_Addr r_offset, + unsigned int r_type, + elfcpp::Elf_types<64>::Elf_Swxword r_addend, + const Symbol* gsym, + unsigned char* view, + elfcpp::Elf_types<64>::Elf_Addr address, + section_size_type view_size); + // Add a new reloc argument, returning the index in the vector. size_t add_tlsdesc_info(Sized_relobj<64, false>* object, unsigned int r_sym) @@ -3014,6 +3025,32 @@ Target_x86_64::relocate_section( reloc_symbol_changes); } +// Apply an incremental relocation. Incremental relocations always refer +// to global symbols. + +void +Target_x86_64::apply_relocation( + const Relocate_info<64, false>* relinfo, + elfcpp::Elf_types<64>::Elf_Addr r_offset, + unsigned int r_type, + elfcpp::Elf_types<64>::Elf_Swxword r_addend, + const Symbol* gsym, + unsigned char* view, + elfcpp::Elf_types<64>::Elf_Addr address, + section_size_type view_size) +{ + gold::apply_relocation<64, false, Target_x86_64, Target_x86_64::Relocate>( + relinfo, + this, + r_offset, + r_type, + r_addend, + gsym, + view, + address, + view_size); +} + // Return the size of a relocation while scanning during a relocatable // link. |