! strcmp (name, (const char *) (l->addr +
! strcmp (name, (const char *) (l->l_addr +
_dl_map_object (struct link_map *loader, const char *name, int type){  int fd;  char *realname;  struct link_map *l;  /* Look for this name among those already loaded.  */  for (l = _dl_loaded; l; l = l->l_next)    if (! strcmp (name, l->l_libname) || /* NAME was requested before.  */	/* If the requested name matches the soname of a loaded object,	   use that object.  */	(l->l_info[DT_SONAME] &&	 ! strcmp (name, (const char *) (l->addr +					 l->l_info[DT_SONAME]->d_un.d_ptr))))      {	/* The object is already loaded.	   Just bump its reference count and return it.  */	++l->l_opencount;	return l;      }  if (strchr (name, '/') == NULL)    {      /* Search for NAME in several places.  */      size_t namelen = strlen (name) + 1;      inline void trypath (const char *dirpath)	{	  fd = open_path (name, namelen, dirpath, &realname);	}      fd = -1;      /* First try the DT_RPATH of the dependent object that caused NAME	 to be loaded.  Then that object's dependent, and on up.  */      for (l = loader; fd == -1 && l; l = l->l_loader)	if (l && l->l_info[DT_RPATH])	  trypath ((const char *) (l->l_addr +				   l->l_info[DT_STRTAB]->d_un.d_ptr +				   l->l_info[DT_RPATH]->d_un.d_val));      /* If dynamically linked, try the DT_RPATH of the executable itself.  */      l = _dl_loaded;      if (fd == -1 && l && l->l_type != lt_loaded && l->l_info[DT_RPATH])	trypath ((const char *) (l->l_addr +				 l->l_info[DT_STRTAB]->d_un.d_ptr +				 l->l_info[DT_RPATH]->d_un.d_val));      /* Try an environment variable (unless setuid).  */      if (fd == -1 && ! _dl_secure)	trypath (getenv ("LD_LIBRARY_PATH"));      /* Finally, try the default path.  */      if (fd == -1)	{	  extern const char *_dl_rpath;	/* Set in rtld.c. */	  trypath (_dl_rpath);	}    }  else    {      fd = __open (name, O_RDONLY);      if (fd != -1)	{	  size_t len = strlen (name) + 1;	  realname = malloc (len);	  if (realname)	    memcpy (realname, name, len);	  else	    {	      __close (fd);	      fd = -1;	    }	}    }  if (fd == -1)    _dl_signal_error (errno, name, "cannot open shared object file");  return _dl_map_object_from_fd (name, fd, realname, loader, type);}