support more relocation type in elfloader

mostly copied from linux kernel 4.20, Shh...
This commit is contained in:
daishengdong
2020-06-09 20:26:12 +08:00
parent 0a2d5a4e90
commit 5e16690f7b
5 changed files with 172 additions and 16 deletions

View File

@@ -136,7 +136,9 @@ __STATIC__ el_err_t elfloader_relocate(int fd, void *address,
return ELFLOADER_ERR_SYM_NOT_FOUND;
}
elfloader_arch_relocate(rela.r_offset + (uint32_t)address, 0, (uint32_t)addr, &rela, is_rela);
if (elfloader_arch_relocate(rela.r_offset + (uint32_t)address, 0, (uint32_t)addr, &rela, is_rela, &sym) != ELFLOADER_ERR_NONE) {
return ELFLOADER_ERR_RELOCATE_FAILED;
}
rel_offset += rel_entsize;
}