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

@ -80,6 +80,13 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
}
break;
case R_X86_64_PC64:
{
*addr64 += rel->r_addend + sym->st_value -
(Elf64_Xword) seg->addr - rel->r_offset;
}
break;
case R_X86_64_32:
{
grub_uint64_t value = *addr32 + rel->r_addend + sym->st_value;