if (remmap->l_searchlist.r_list != NULL)
if (remmap->l_searchlist.r_list != NULL && remmap->l_direct_opencount > 0)
	void mark_removed (struct link_map *remmap)	  {	    /* Test whether this object was also loaded directly.  */	    if (remmap->l_searchlist.r_list != NULL)	      {		/* In this case we have to decrement all the dependencies of		   this object.  They are all in MAP's dependency list.  */		unsigned int j;		struct link_map **dep_list = remmap->l_searchlist.r_list;		for (j = 1; j < remmap->l_searchlist.r_nlist; ++j)		  if (! (dep_list[j]->l_flags_1 & DF_1_NODELETE)		      || ! dep_list[j]->l_init_called)		{		  assert (dep_list[j]->l_idx < map->l_searchlist.r_nlist);		  if (--new_opencount[dep_list[j]->l_idx] == 0)		    {		      assert (dep_list[j]->l_type == lt_loaded);		      mark_removed (dep_list[j]);		    }		}	      }	    if (remmap->l_reldeps != NULL)	      {		unsigned int j;		for (j = 0; j < remmap->l_reldepsact; ++j)		  {		    /* Find out whether this object is in our list.  */		    if (remmap->l_reldeps[j]->l_idx < nopencount			&& (list[remmap->l_reldeps[j]->l_idx]			    == remmap->l_reldeps[j]))		      /* Yes, it is.  */		      if (--new_opencount[remmap->l_reldeps[j]->l_idx] == 0)			{			  /* This one is now gone, too.  */			  assert (remmap->l_reldeps[j]->l_type == lt_loaded);			  mark_removed (remmap->l_reldeps[j]);			}		  }	      }	  }