761a938
Emergency patch for #1778344: A reference to a unique symbol in
761a938
libstdc++ causes it to be marked as NODELETE (as expected), but the
761a938
assert is not prepared for that situation.
761a938
761a938
diff --git a/elf/dl-open.c b/elf/dl-open.c
761a938
index df9f29a5e5683bf2..763e90187afaf09a 100644
761a938
--- a/elf/dl-open.c
761a938
+++ b/elf/dl-open.c
761a938
@@ -452,12 +452,9 @@ activate_nodelete (struct link_map *new, int mode)
761a938
 	    _dl_debug_printf ("activating NODELETE for %s [%lu]\n",
761a938
 			      imap->l_name, imap->l_ns);
761a938
 
761a938
-	  /* Only new objects should have set
761a938
-	     link_map_nodelete_pending.  Existing objects should not
761a938
-	     have gained any new dependencies and therefore cannot
761a938
-	     reach NODELETE status.  */
761a938
-	  assert (!imap->l_init_called || imap->l_type != lt_loaded);
761a938
-
761a938
+	  /* Note that this can also activate NODELETE for objects
761a938
+	     which had already been loaded at the time of the dlopen
761a938
+	     call.  */
761a938
 	  imap->l_nodelete = link_map_nodelete_active;
761a938
 	}
761a938
      }