1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:57:35 +00:00

LibELF: Split do_relocation into do_{direct,plt}_relocation

No functional changes intended. This is in preparation of a commit that
overhauls how IFUNCs are resolved.

This commit lets us move the implementation of PLT patching from
`DynamicObject` to `DynamicLoader` where all other relocation code
lives. For this, got[2] now stores the loader's address instead of the
object's.
This commit is contained in:
Daniel Bertalan 2023-04-22 11:44:02 +02:00 committed by Andreas Kling
parent c4e0f5e5ee
commit cd45c2d295
4 changed files with 82 additions and 56 deletions

View file

@ -314,9 +314,6 @@ public:
Optional<SymbolLookupResult> lookup_symbol(StringView name) const;
Optional<SymbolLookupResult> lookup_symbol(HashSymbol const& symbol) const;
// Will be called from _fixup_plt_entry, as part of the PLT trampoline
VirtualAddress patch_plt_entry(u32 relocation_offset);
bool elf_is_dynamic() const { return m_is_elf_dynamic; }
void* symbol_for_name(StringView name);