mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:18:11 +00:00
LibELF: Store the full file path in DynamicObject
Otherwise, our `dirname` call on the parent object will always be empty when trying to resolve dependencies.
This commit is contained in:
parent
dc805e6c81
commit
e2036ca2ca
4 changed files with 16 additions and 16 deletions
|
@ -16,8 +16,8 @@
|
|||
|
||||
namespace ELF {
|
||||
|
||||
DynamicObject::DynamicObject(String const& filename, VirtualAddress base_address, VirtualAddress dynamic_section_address)
|
||||
: m_filename(filename)
|
||||
DynamicObject::DynamicObject(String const& filepath, VirtualAddress base_address, VirtualAddress dynamic_section_address)
|
||||
: m_filepath(filepath)
|
||||
, m_base_address(base_address)
|
||||
, m_dynamic_address(dynamic_section_address)
|
||||
{
|
||||
|
@ -474,9 +474,9 @@ auto DynamicObject::lookup_symbol(HashSymbol const& symbol) const -> Optional<Sy
|
|||
return SymbolLookupResult { symbol_result.value(), symbol_result.size(), symbol_result.address(), symbol_result.bind(), symbol_result.type(), this };
|
||||
}
|
||||
|
||||
NonnullRefPtr<DynamicObject> DynamicObject::create(String const& filename, VirtualAddress base_address, VirtualAddress dynamic_section_address)
|
||||
NonnullRefPtr<DynamicObject> DynamicObject::create(String const& filepath, VirtualAddress base_address, VirtualAddress dynamic_section_address)
|
||||
{
|
||||
return adopt_ref(*new DynamicObject(filename, base_address, dynamic_section_address));
|
||||
return adopt_ref(*new DynamicObject(filepath, base_address, dynamic_section_address));
|
||||
}
|
||||
|
||||
// offset is in PLT relocation table
|
||||
|
@ -499,7 +499,7 @@ VirtualAddress DynamicObject::patch_plt_entry(u32 relocation_offset)
|
|||
if (result.value().type == STT_GNU_IFUNC)
|
||||
symbol_location = VirtualAddress { reinterpret_cast<IfuncResolver>(symbol_location.get())() };
|
||||
} else if (symbol.bind() != STB_WEAK) {
|
||||
dbgln("did not find symbol while doing relocations for library {}: {}", m_filename, symbol.name());
|
||||
dbgln("did not find symbol while doing relocations for library {}: {}", m_filepath, symbol.name());
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue