Merge "linker: unload RTLD_NODELETE libraries when loading fails"
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 855b32b..bda713e 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -3220,7 +3220,7 @@
 }
 
 bool soinfo::can_unload() const {
-  return (get_rtld_flags() & (RTLD_NODELETE | RTLD_GLOBAL)) == 0;
+  return !is_linked() || ((get_rtld_flags() & (RTLD_NODELETE | RTLD_GLOBAL)) == 0);
 }
 
 bool soinfo::is_linked() const {