diff --git a/Userland/Libraries/LibC/elf.h b/Userland/Libraries/LibC/elf.h index 0d2ac66928..0edd9f6cd7 100644 --- a/Userland/Libraries/LibC/elf.h +++ b/Userland/Libraries/LibC/elf.h @@ -803,3 +803,4 @@ struct elf_args { #define R_X86_64_GLOB_DAT 6 #define R_X86_64_JUMP_SLOT 7 #define R_X86_64_RELATIVE 8 +#define R_X86_64_TPOFF64 18 diff --git a/Userland/Libraries/LibELF/DynamicLoader.cpp b/Userland/Libraries/LibELF/DynamicLoader.cpp index 1871696e51..e471f941b3 100644 --- a/Userland/Libraries/LibELF/DynamicLoader.cpp +++ b/Userland/Libraries/LibELF/DynamicLoader.cpp @@ -486,6 +486,13 @@ DynamicLoader::RelocationResult DynamicLoader::do_relocation(const ELF::DynamicO *patch_ptr = negative_offset_from_tls_block_end(res.value().value, dynamic_object_of_symbol->tls_offset().value(), res.value().size); break; } +#else + case R_X86_64_TPOFF64: + dbgln("FIXME: Patched R_X86_64_TPOFF64 relocation with invalid ptr."); + *patch_ptr = 0xaaaaaaaaaaaaaaaa; + break; +#endif +#ifndef __LP64__ case R_386_JMP_SLOT: { #else case R_X86_64_JUMP_SLOT: {