Handle X86_64_PC64 relocation.

Those are generated by some cygwin compilers.
This commit is contained in:
Vladimir Serbinenko 2013-12-16 14:24:19 +01:00
parent 252a289cb3
commit f4171ebd34
4 changed files with 26 additions and 0 deletions

View file

@ -709,6 +709,18 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections,
break;
}
case R_X86_64_PC64:
{
*target = grub_host_to_target64 (grub_target_to_host64 (*target)
+ addend + sym_addr
- target_section_addr - offset
- image_target->vaddr_offset);
grub_util_info ("relocating an R_X86_64_PC64 entry to 0x%llx at the offset 0x%llx",
(unsigned long long) *target,
(unsigned long long) offset);
break;
}
case R_X86_64_32:
case R_X86_64_32S:
{