Support R_PPC_PLTREL24
It's emitted by clang 7. It's the same as R_PPC_REL24. Signed-off-by: Vladimir Serbinenko <phcoder@google.com>
This commit is contained in:
parent
d422df6711
commit
28e02c29eb
2 changed files with 4 additions and 1 deletions
|
@ -79,7 +79,8 @@ grub_arch_dl_get_tramp_got_size (const void *ehdr, grub_size_t *tramp,
|
|||
max = rel + s->sh_size / s->sh_entsize;
|
||||
rel < max;
|
||||
rel++)
|
||||
if (ELF_R_TYPE (rel->r_info) == GRUB_ELF_R_PPC_REL24)
|
||||
if (ELF_R_TYPE (rel->r_info) == GRUB_ELF_R_PPC_REL24
|
||||
|| ELF_R_TYPE (rel->r_info) == GRUB_ELF_R_PPC_PLTREL24)
|
||||
(*tramp)++;
|
||||
|
||||
}
|
||||
|
@ -122,6 +123,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
|||
*(Elf_Half *) addr = value;
|
||||
break;
|
||||
|
||||
case GRUB_ELF_R_PPC_PLTREL24:
|
||||
case GRUB_ELF_R_PPC_REL24:
|
||||
{
|
||||
Elf_Sword delta = value - (Elf_Word) addr;
|
||||
|
|
|
@ -29,6 +29,7 @@ struct grub_module_verifier_arch archs[] = {
|
|||
GRUB_ELF_R_PPC_ADDR16_HA,
|
||||
GRUB_ELF_R_PPC_ADDR32,
|
||||
GRUB_ELF_R_PPC_REL32,
|
||||
GRUB_ELF_R_PPC_PLTREL24,
|
||||
-1
|
||||
} },
|
||||
{ "sparc64", 8, 1, EM_SPARCV9, GRUB_MODULE_VERIFY_SUPPORTS_RELA, (int[]){
|
||||
|
|
Loading…
Reference in a new issue