diff --git a/linker/linker.cpp b/linker/linker.cpp index d08bf75d6..196acb6d5 100755 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@ -947,6 +947,14 @@ static int soinfo_relocate_a(soinfo* si, Elf_Rela* rela, unsigned count, soinfo* *reinterpret_cast(reloc) = sym_addr + rela->r_addend; break; + case R_X86_64_64: + count_relocation(kRelocRelative); + MARK(rela->r_offset); + TRACE_TYPE(RELO, "RELO R_X86_64_64 %08zx <- +%08zx %s", static_cast(reloc), + static_cast(sym_addr), sym_name); + *reinterpret_cast(reloc) = sym_addr + rela->r_addend; + break; + case R_X86_64_PC32: count_relocation(kRelocRelative); MARK(rela->r_offset);