mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 08:41:15 +00:00
LibELF/DynamicLinker: Evaluate symbols in library insertion order (#8802)
When loading libraries, it is required that each library uses the same instance of each symbol, and that they use the one from the executable if any. This is barely noticeable if done incorrectly; except that it completely breaks RTTI on Clang. This switches the hash map to be ordered; tested to work for Clang by @Bertaland
This commit is contained in:
parent
5f3e6085a2
commit
ca9c53c1a8
Notes:
sideshowbarker
2024-07-18 08:56:39 +09:00
Author: https://github.com/dascandy 🔰 Commit: https://github.com/SerenityOS/serenity/commit/ca9c53c1a88 Pull-request: https://github.com/SerenityOS/serenity/pull/8802
|
@ -34,7 +34,7 @@ namespace ELF {
|
|||
|
||||
static HashMap<String, NonnullRefPtr<ELF::DynamicLoader>> s_loaders;
|
||||
static String s_main_program_name;
|
||||
static HashMap<String, NonnullRefPtr<ELF::DynamicObject>> s_global_objects;
|
||||
static OrderedHashMap<String, NonnullRefPtr<ELF::DynamicObject>> s_global_objects;
|
||||
|
||||
using EntryPointFunction = int (*)(int, char**, char**);
|
||||
using LibCExitFunction = void (*)(int);
|
||||
|
|
Loading…
Reference in a new issue