Lines Matching refs:ldso

162 static struct dso ldso;
774 * Global so includes exe, ld preload so and ldso.
872 // for ldso, app, preload so which is global, should be accessible in all exist namespaces
1074 if (dso == &ldso) {
1075 /* Only ldso's REL table needs addend saving/reuse. */
1093 * chain consists of just ldso; otherwise read back
1095 if (head==&ldso)
1118 : dso != &ldso ? find_sym_by_saved_so_list(type, ctx, &vinfo, type==REL_PLT, dso)
1933 * case where ldso was invoked as a command to execute a
2193 name, ldso.name,
2194 ldso.base);
2200 if (!strcmp(name, ldso.name)) is_self = 1;
2202 if (!ldso.prev) {
2203 tail->next = &ldso;
2204 ldso.prev = tail;
2205 tail = &ldso;
2206 ldso.namespace = namespace;
2207 ns_add_dso(namespace, &ldso);
2209 return &ldso;
2304 /* Past this point, if we haven't reached runtime yet, ldso has
2555 if (p==&ldso) {
2686 if (dso == &ldso) return; /* self-relocation was done in _dlstart */
2708 if (p != &ldso) {
2724 if (head != &ldso && p->relro_start != p->relro_end &&
2901 if (p != &ldso) {
2905 if (p != &ldso) {
3020 if (aux[AT_BASE]) ldso.base = (void *)aux[AT_BASE];
3021 else ldso.base = (void *)(aux[AT_PHDR] & -4096);
3024 ldso.loadmap = p2 ? p2 : p1;
3025 ldso.base = laddr(&ldso, 0);
3027 ldso.base = base;
3032 Ehdr *ehdr = __ehdr_start ? (void *)__ehdr_start : (void *)ldso.base;
3033 ldso.name = ldso.shortname = "libc.so";
3034 ldso.phnum = ehdr->e_phnum;
3035 ldso.phdr = laddr(&ldso, ehdr->e_phoff);
3036 ldso.phentsize = ehdr->e_phentsize;
3037 ldso.is_global = true;
3039 kernel_mapped_dso(&ldso);
3040 decode_dyn(&ldso);
3042 if (DL_FDPIC) makefuncdescs(&ldso);
3049 decode_vec(ldso.dynv, dyn, DYN_CNT);
3050 size_t *rel = laddr(&ldso, dyn[DT_REL]);
3055 if (!IS_RELATIVE(rel[1], ldso.syms)) symbolic_rel_cnt++;
3060 head = &ldso;
3061 reloc_all(&ldso, NULL);
3063 ldso.relocated = 0;
3068 struct symdef dls2b_def = find_sym(&ldso, "__dls2b", 0);
3069 if (DL_FDPIC) ((stage3_func)&ldso.funcdescs[dls2b_def.sym-ldso.syms])(sp, auxv, aux);
3070 else ((stage3_func)laddr(&ldso, dls2b_def.sym->st_value))(sp, auxv, aux);
3081 /* Setup early thread pointer in builtin_tls for ldso/libc itself to
3092 struct symdef dls3_def = find_sym(&ldso, "__dls3", 0);
3093 if (DL_FDPIC) ((stage3_func)&ldso.funcdescs[dls3_def.sym-ldso.syms])(sp, auxv, aux);
3094 else ((stage3_func)laddr(&ldso, dls3_def.sym->st_value))(sp, auxv, aux);
3143 if (aux[AT_PHDR] != (size_t)ldso.phdr) {
3164 if (interp_off) ldso.name = laddr(&app, interp_off);
3221 ldso.name = ldname;
3229 ldso.name = laddr(&app, app.phdr[i].p_vaddr);
3231 dprintf(1, "\t%s (%p)\n", ldso.name, ldso.base);
3269 reclaim_gaps(&ldso);
3272 find_and_set_bss_name(&ldso);
3275 ldso.deps = (struct dso **)no_deps;
3278 LD_LOGD("__dls3 ldso.name:%{public}s.", ldso.name);
3279 /* Through ldso Name to judge whether the Asan function is enabled */
3280 if (strstr(ldso.name, "-asan")) {
3411 if (init_cfi_shadow(head, &ldso, &app, &vdso) == CFI_FAILED) {
3421 if (find_sym(head, "malloc", 1).dso != &ldso)
3423 if (find_sym(head, "aligned_alloc", 1).dso != &ldso)
4657 if (find_sym(&ldso, redir, 1).sym) s = redir;
5558 name, ldso.name,
5559 ldso.base);
5565 if (!strcmp(name, ldso.name)) {
5569 if (!ldso.prev) {
5570 tail->next = &ldso;
5571 ldso.prev = tail;
5572 tail = &ldso;
5573 ldso.namespace = namespace;
5574 ns_add_dso(namespace, &ldso);
5577 task->p = &ldso;
5804 /* Past this point, if we haven't reached runtime yet, ldso has
6176 debug.base = ldso.base;