Lines Matching refs:ldso
136 static struct dso ldso;
372 return find_sym(&ldso, "readdir_r", 1);
377 if (!strcmp(buf, p)) return find_sym(&ldso, buf, 1);
401 if (dso == &ldso) {
402 /* Only ldso's REL table needs addend saving/reuse. */
420 * chain consists of just ldso; otherwise read back
422 if (head==&ldso)
565 if (dso == &ldso) return; /* self-relocation was done in _dlstart */
967 * case where ldso was invoked as a command to execute a
1111 name, ldso.name,
1112 ldso.base);
1118 if (!strcmp(name, ldso.name)) is_self = 1;
1120 if (!ldso.prev) {
1121 tail->next = &ldso;
1122 ldso.prev = tail;
1123 tail = &ldso;
1125 return &ldso;
1150 if (ldso.name[0]=='/') {
1152 for (s=t=z=ldso.name; *s; s++)
1154 prefix_len = z-ldso.name;
1156 prefix = ldso.name;
1237 /* Past this point, if we haven't reached runtime yet, ldso has
1437 if (p==&ldso) {
1467 if (head != &ldso && p->relro_start != p->relro_end) {
1763 if (aux[AT_BASE]) ldso.base = (void *)aux[AT_BASE];
1764 else ldso.base = (void *)(aux[AT_PHDR] & -4096);
1767 ldso.loadmap = p2 ? p2 : p1;
1768 ldso.base = laddr(&ldso, 0);
1770 ldso.base = base;
1772 Ehdr *ehdr = __ehdr_start ? (void *)__ehdr_start : (void *)ldso.base;
1773 ldso.name = ldso.shortname = "libc.so";
1774 ldso.phnum = ehdr->e_phnum;
1775 ldso.phdr = laddr(&ldso, ehdr->e_phoff);
1776 ldso.phentsize = ehdr->e_phentsize;
1778 kernel_mapped_dso(&ldso);
1779 decode_dyn(&ldso);
1781 if (DL_FDPIC) makefuncdescs(&ldso);
1788 decode_vec(ldso.dynv, dyn, DYN_CNT);
1789 size_t *rel = laddr(&ldso, dyn[DT_REL]);
1794 if (!IS_RELATIVE(rel[1], ldso.syms)) symbolic_rel_cnt++;
1799 head = &ldso;
1800 reloc_all(&ldso);
1802 ldso.relocated = 0;
1807 struct symdef dls2b_def = find_sym(&ldso, "__dls2b", 0);
1808 if (DL_FDPIC) ((stage3_func)&ldso.funcdescs[dls2b_def.sym-ldso.syms])(sp, auxv);
1809 else ((stage3_func)laddr(&ldso, dls2b_def.sym->st_value))(sp, auxv);
1820 /* Setup early thread pointer in builtin_tls for ldso/libc itself to
1831 struct symdef dls3_def = find_sym(&ldso, "__dls3", 0);
1832 if (DL_FDPIC) ((stage3_func)&ldso.funcdescs[dls3_def.sym-ldso.syms])(sp, auxv);
1833 else ((stage3_func)laddr(&ldso, dls3_def.sym->st_value))(sp, auxv);
1876 if (aux[AT_PHDR] != (size_t)ldso.phdr) {
1898 if (interp_off) ldso.name = "/lib/libc.so";
1900 if (interp_off) ldso.name = laddr(&app, interp_off);
1965 ldso.name = ldname;
1973 ldso.name = laddr(&app, app.phdr[i].p_vaddr);
1975 dprintf(1, "\t%s (%p)\n", ldso.name, ldso.base);
2012 reclaim_gaps(&ldso);
2015 ldso.deps = (struct dso **)no_deps;
2111 if (find_sym(head, "malloc", 1).dso != &ldso)
2113 if (find_sym(head, "aligned_alloc", 1).dso != &ldso)
2124 debug.base = ldso.base;
2458 if (find_sym(&ldso, redir, 1).sym) s = redir;