#0 strlen () at ../sysdeps/x86_64/strlen.S:106 #1 0x00005611853ccf4e in __strdup (s=0x401ecc ) at strdup.c:41 36: 37: /* Duplicate S, returning an identical malloc'd string. */ 38: char * 39: __strdup (const char *s) 40: { 41: size_t len = strlen (s) + 1; 42: void *new = malloc (len); 43: 44: if (new == NULL) 45: return NULL; 46: #2 0x00005611853b8333 in decompose_rpath (sps=sps@entry=0x5611855d74a0, rpath=, l=l@entry=0x5611855d7188, what=what@entry=0x5611853cfc02 "RPATH") at dl-load.c:585 580: } 581: while (*inhp != '\0'); 582: } 583: 584: /* Make a writable copy. */ 585: copy = __strdup (rpath); 586: if (copy == NULL) 587: { 588: errstring = N_("cannot create RUNPATH/RPATH copy"); 589: goto signal_error; 590: } #3 0x00005611853b8839 in _dl_init_paths (llp=0x0) at dl-load.c:762 757: 758: if (l->l_info[DT_RPATH]) 759: { 760: /* Allocate room for the search path and fill in information 761: from RPATH. */ 762: decompose_rpath (&l->l_rpath_dirs, 763: (const void *) (D_PTR (l, l_info[DT_STRTAB]) 764: + l->l_info[DT_RPATH]->d_un.d_val), 765: l, "RPATH"); 766: /* During rtld init the memory is allocated by the stub 767: malloc, prevent any attempt to free it by the normal #4 0x00005611853b37f6 in dl_main (phdr=, phnum=9, user_entry=, auxv=) at rtld.c:1248 1243: DL_SYSDEP_OSCHECK (_dl_fatal_printf); 1244: #endif 1245: 1246: /* Initialize the data structures for the search paths for shared 1247: objects. */ 1248: _dl_init_paths (library_path); 1249: 1250: /* Initialize _r_debug. */ 1251: struct r_debug *r = _dl_debug_initialize (GL(dl_rtld_map).l_addr, 1252: LM_ID_BASE); 1253: r->r_state = RT_CONSISTENT; #5 0x00005611853c9632 in _dl_sysdep_start (start_argptr=start_argptr@entry=0x7fff2f4d48d0, dl_main=dl_main@entry=0x5611853b21e0 ) at ../elf/dl-sysdep.c:249 #6 0x00005611853b1c2a in _dl_start_final (arg=0x7fff2f4d48d0) at rtld.c:323 318: 319: /* Call the OS-dependent function to set up life so we can do things like 320: file access. It will call `dl_main' (below) to do all the real work 321: of the dynamic linker, and then unwind our frame and run the user 322: entry point on the same stack we entered on. */ 323: start_addr = _dl_sysdep_start (arg, &dl_main); 324: 325: #ifndef HP_TIMING_NONAVAIL 326: hp_timing_t rtld_total_time; 327: if (HP_SMALL_TIMING_AVAIL) 328: { #7 _dl_start (arg=0x7fff2f4d48d0) at rtld.c:429 424: header table in core. Put the rest of _dl_start into a separate 425: function, that way the compiler cannot put accesses to the GOT 426: before ELF_DYNAMIC_RELOCATE. */ 427: { 428: #ifdef DONT_USE_BOOTSTRAP_MAP 429: ElfW(Addr) entry = _dl_start_final (arg); 430: #else 431: ElfW(Addr) entry = _dl_start_final (arg, &info); 432: #endif 433: 434: #ifndef ELF_MACHINE_START_ADDRESS #8 0x00005611853b0c38 in _start ()