summaryrefslogtreecommitdiff
path: root/Libraries/LibELF
diff options
context:
space:
mode:
authorItamar <itamar8910@gmail.com>2020-11-13 14:47:00 +0200
committerAndreas Kling <kling@serenityos.org>2020-12-14 23:05:53 +0100
commitdfdd977a823e643bf9952acd1f59a2ef78816732 (patch)
treea663e30aedab7a8dae37e4dc36e5099ee505380d /Libraries/LibELF
parent706a8c05fd7dffedb713b74072fb714c17f6564d (diff)
downloadserenity-dfdd977a823e643bf9952acd1f59a2ef78816732.zip
LibC: Link statically with libstdc++
This allows us to have the implementation of __cxa_demangle in libc.so.
Diffstat (limited to 'Libraries/LibELF')
-rw-r--r--Libraries/LibELF/DynamicObject.cpp5
-rw-r--r--Libraries/LibELF/Loader.cpp5
2 files changed, 1 insertions, 9 deletions
diff --git a/Libraries/LibELF/DynamicObject.cpp b/Libraries/LibELF/DynamicObject.cpp
index 09e162ced4..25973e5de3 100644
--- a/Libraries/LibELF/DynamicObject.cpp
+++ b/Libraries/LibELF/DynamicObject.cpp
@@ -420,11 +420,6 @@ Elf32_Addr DynamicObject::patch_plt_entry(u32 relocation_offset)
ASSERT(relocation.type() == R_386_JMP_SLOT);
auto sym = relocation.symbol();
- if (StringView { sym.name() } == "__cxa_demangle") {
- dbgln("__cxa_demangle is currently not supported for shared objects");
- // FIXME: Where is it defined?
- ASSERT_NOT_REACHED();
- }
u8* relocation_address = relocation.address().as_ptr();
auto res = lookup_symbol(sym);
diff --git a/Libraries/LibELF/Loader.cpp b/Libraries/LibELF/Loader.cpp
index ecc7d1fbeb..1260a862b9 100644
--- a/Libraries/LibELF/Loader.cpp
+++ b/Libraries/LibELF/Loader.cpp
@@ -264,10 +264,7 @@ String Loader::symbolicate(u32 address, u32* out_offset) const
#else
auto& demangled_name = symbol.demangled_name;
if (demangled_name.is_null()) {
-
- // FIXME: Temporarily disabled demangling since it is currently not supported with shared libraries
- demangled_name = symbol.name;
- // demangled_name = demangle(symbol.name);
+ demangled_name = demangle(symbol.name);
}
#endif