_dl_debug_printf ("\ncalling init: %s\n\n", l->l_name[0] ? l->l_name : _dl_argv[0]);
INT(_dl_debug_printf) ("\ncalling init: %s\n\n", l->l_name[0] ? l->l_name : _dl_argv[0]);
call_init (struct link_map *l, int argc, char **argv, char **env){  if (l->l_init_called)    /* This object is all done.  */    return;  /* Avoid handling this constructor again in case we have a circular     dependency.  */  l->l_init_called = 1;  /* Check for object which constructors we do not run here.  */  if (__builtin_expect (l->l_name[0], 'a') == '\0'      && l->l_type == lt_executable)    return;  /* Are there any constructors?  */  if (l->l_info[DT_INIT] == NULL      && __builtin_expect (l->l_info[DT_INIT_ARRAY] == NULL, 1))    return;  /* Print a debug message if wanted.  */  if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0))    _dl_debug_printf ("\ncalling init: %s\n\n",		      l->l_name[0] ? l->l_name : _dl_argv[0]);  /* Now run the local constructors.  There are two forms of them:     - the one named by DT_INIT     - the others in the DT_INIT_ARRAY.  */  if (l->l_info[DT_INIT] != NULL)    {      init_t init = (init_t) DL_DT_INIT_ADDRESS	(l, l->l_addr + l->l_info[DT_INIT]->d_un.d_ptr);      /* Call the function.  */      init (argc, argv, env);    }  /* Next see whether there is an array with initialization functions.  */  if (l->l_info[DT_INIT_ARRAY] != NULL)    {      unsigned int j;      unsigned int jm;      ElfW(Addr) *addrs;      jm = l->l_info[DT_INIT_ARRAYSZ]->d_un.d_val / sizeof (ElfW(Addr));      addrs = (ElfW(Addr) *) (l->l_info[DT_INIT_ARRAY]->d_un.d_ptr			      + l->l_addr);      for (j = 0; j < jm; ++j)	((init_t) addrs[j]) (argc, argv, env);    }}