if (__builtin_expect (_dl_debug_bindings, 0))
if (__builtin_expect (_dl_debug_mask & DL_DEBUG_BINDINGS, 0))
_dl_lookup_symbol_skip (const char *undef_name,			struct link_map *undef_map, const ElfW(Sym) **ref,			struct r_scope_elem *symbol_scope[],			struct link_map *skip_map){  const char *reference_name = undef_map ? undef_map->l_name : NULL;  const unsigned long int hash = _dl_elf_hash (undef_name);  struct sym_val current_value = { NULL, NULL };  struct r_scope_elem **scope;  size_t i;  int protected;  ++_dl_num_relocations;  /* Search the relevant loaded objects for a definition.  */  scope = symbol_scope;  for (i = 0; (*scope)->r_duplist[i] != skip_map; ++i)    assert (i < (*scope)->r_nduplist);  if (i >= (*scope)->r_nlist	 || ! do_lookup (undef_name, hash, *ref, &current_value, *scope, i,			 skip_map, 0, 0))    while (*++scope)      if (do_lookup (undef_name, hash, *ref, &current_value, *scope, 0,		     skip_map, 0, 0))	break;  if (__builtin_expect (current_value.s == NULL, 0))    {      *ref = NULL;      return 0;    }  protected = *ref && ELFW(ST_VISIBILITY) ((*ref)->st_other) == STV_PROTECTED;  if (__builtin_expect (_dl_debug_bindings, 0))    _dl_debug_message (1, "binding file ",		       (reference_name && reference_name[0]			? reference_name			: (_dl_argv[0] ?: "<main program>")),		       " to ", current_value.m->l_name[0]		       ? current_value.m->l_name : _dl_argv[0],		       ": ", protected ? "protected" : "normal",		       " symbol `", undef_name, "'\n", NULL);  if (__builtin_expect (protected == 0, 1))    {      *ref = current_value.s;      return LOOKUP_VALUE (current_value.m);    }  else    {      /* It is very tricky.  We need to figure out what value to         return for the protected symbol.  */      struct sym_val protected_value = { NULL, NULL };      if (i >= (*scope)->r_nlist	  || !do_lookup (undef_name, hash, *ref, &protected_value, *scope, i,			 skip_map, 0, 1))	while (*++scope)	  if (do_lookup (undef_name, hash, *ref, &protected_value, *scope, 0,			 skip_map, 0, 1))	    break;      if (protected_value.s == NULL || protected_value.m == undef_map)	{	  *ref = current_value.s;	  return LOOKUP_VALUE (current_value.m);	}      return LOOKUP_VALUE (undef_map);    }}