diff options
Diffstat (limited to 'binutils-2.19/gold/target-reloc.h')
-rw-r--r-- | binutils-2.19/gold/target-reloc.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/binutils-2.19/gold/target-reloc.h b/binutils-2.19/gold/target-reloc.h index 510eea0..0bd060b 100644 --- a/binutils-2.19/gold/target-reloc.h +++ b/binutils-2.19/gold/target-reloc.h @@ -515,7 +515,7 @@ relocate_for_relocatable( const Relocatable_relocs* rr, unsigned char* view, typename elfcpp::Elf_types<size>::Elf_Addr view_address, - section_size_type, + section_size_type view_size, unsigned char* reloc_view, section_size_type reloc_view_size) { @@ -537,6 +537,19 @@ relocate_for_relocatable( if (strategy == Relocatable_relocs::RELOC_DISCARD) continue; + if (strategy == Relocatable_relocs::RELOC_SPECIAL) + { + // Target wants to handle this relocation. + Sized_target<size, big_endian>* target = + parameters->sized_target<size, big_endian>(); + target->relocate_special_relocatable(relinfo, sh_type, prelocs, + i, output_section, + offset_in_output_section, + view, view_address, + view_size, pwrite); + pwrite += reloc_size; + continue; + } Reltype reloc(prelocs); Reltype_write reloc_write(pwrite); |