Merge pull request #286 from managarm/rtdl_jump_slot

rtdl: Support R_X86_64_JUMP_SLOT relocation type
This commit is contained in:
Geert Custers 2021-07-14 10:05:47 +02:00 committed by GitHub
commit a80b6af80a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1227,6 +1227,12 @@ void Loader::_processRela(SharedObject *object, Elf64_Rela *reloc) {
uint64_t symbol_addr = p ? p->virtualAddress() : 0;
*((uint64_t *)rel_addr) = symbol_addr;
} break;
case R_X86_64_JUMP_SLOT: {
__ensure(symbol_index);
__ensure(!reloc->r_addend);
uint64_t symbol_addr = p ? p->virtualAddress() : 0;
*((uint64_t *)rel_addr) = symbol_addr;
} break;
case R_X86_64_RELATIVE: {
__ensure(!symbol_index);
*((uint64_t *)rel_addr) = object->baseAddress + reloc->r_addend;