_dl_close (obj->handle);
__libc_dlclose (obj->handle);
do_release_shlib (const void *nodep, VISIT value, int level){  struct __gconv_loaded_object *obj = *(struct __gconv_loaded_object **) nodep;  if (value != preorder && value != leaf)    return;  if (obj == release_handle)    /* This is the object we want to unload.  Now set the release       counter to zero.  */    obj->counter = 0;  else if (obj->counter <= 0)    {      if (--obj->counter < -TRIES_BEFORE_UNLOAD && obj->handle != NULL)	{	  /* Unload the shared object.  We don't use the trick to	     catch errors since in the case an error is signalled	     something is really wrong.  */	  _dl_close (obj->handle);	  obj->handle = NULL;	}    }}