diff options
-rw-r--r-- | linker/linker.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp index 99c02d810..2573c8906 100644 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@ -1666,6 +1666,9 @@ static void soinfo_unload(soinfo* root) { if (local_unload_list.contains(child)) { continue; } else if (child->is_linked() && child->get_local_group_root() != root) { + child->get_parents().remove_if([&] (const soinfo* parent) { + return parent == si; + }); external_unload_list.push_back(child); } else { depth_first_list.push_front(child); |