| /elf/ |
| A D | setup-vdso.h | 50 if (! l->l_addr) in setup_vdso() 51 l->l_addr = ph->p_vaddr; in setup_vdso() 63 l->l_addr = l->l_map_start - l->l_addr; in setup_vdso() 64 l->l_map_end += l->l_addr; in setup_vdso() 65 l->l_text_end += l->l_addr; in setup_vdso() 66 l->l_ld = (void *) ((ElfW(Addr)) l->l_ld + l->l_addr); in setup_vdso() 68 _dl_setup_hash (l); in setup_vdso() 69 l->l_relocated = 1; in setup_vdso() 72 l->l_used = 1; in setup_vdso() 79 l->l_local_scope[0]->r_list = &l->l_real; in setup_vdso() [all …]
|
| A D | dl-dst.h | 22 # define IS_RTLD(l) (l) == &GL(dl_rtld_map) argument 24 # define IS_RTLD(l) 0 argument 27 #define DL_DST_REQUIRED(l, name, len, cnt) \ argument 45 if ((l)->l_origin == NULL) \ 47 assert ((l)->l_name[0] == '\0' || IS_RTLD (l)); \ 48 (l)->l_origin = _dl_get_origin (); \ 49 dst_len = ((l)->l_origin && (l)->l_origin != (char *) -1 \ 50 ? strlen ((l)->l_origin) : 0); \ 53 dst_len = (l)->l_origin == (char *) -1 \ 54 ? 0 : strlen ((l)->l_origin); \
|
| A D | dl-fini.c | 72 struct link_map *l; in _dl_fini() local 74 for (l = GL(dl_ns)[ns]._ns_loaded, i = 0; l != NULL; l = l->l_next) in _dl_fini() 76 if (l == l->l_real) in _dl_fini() 80 maps[i] = l; in _dl_fini() 81 l->l_idx = i; in _dl_fini() 86 ++l->l_direct_opencount; in _dl_fini() 113 if (l->l_init_called) in _dl_fini() 116 l->l_init_called = 0; in _dl_fini() 144 (l, l->l_addr + l->l_info[DT_FINI]->d_un.d_ptr); in _dl_fini() 149 _dl_audit_objclose (l); in _dl_fini() [all …]
|
| A D | dl-iteratephdr.c | 34 struct link_map *l; in __dl_iterate_phdr() local 49 for (struct link_map *l = GL(dl_ns)[cnt]._ns_loaded; l; l = l->l_next) in __dl_iterate_phdr() local 54 if (caller >= (const void *) l->l_map_start in __dl_iterate_phdr() 55 && caller < (const void *) l->l_map_end in __dl_iterate_phdr() 56 && (l->l_contiguous in __dl_iterate_phdr() 62 for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next) in __dl_iterate_phdr() 64 info.dlpi_addr = l->l_real->l_addr; in __dl_iterate_phdr() 65 info.dlpi_name = l->l_real->l_name; in __dl_iterate_phdr() 66 info.dlpi_phdr = l->l_real->l_phdr; in __dl_iterate_phdr() 67 info.dlpi_phnum = l->l_real->l_phnum; in __dl_iterate_phdr() [all …]
|
| A D | dl-addr-obj.c | 64 _dl_addr_inside_object (struct link_map *l, const ElfW(Addr) addr) in _dl_addr_inside_object() argument 66 int n = l->l_phnum; in _dl_addr_inside_object() 67 const ElfW(Addr) reladdr = addr - l->l_addr; in _dl_addr_inside_object() 70 if (l->l_phdr[n].p_type == PT_LOAD in _dl_addr_inside_object() 71 && reladdr - l->l_phdr[n].p_vaddr < l->l_phdr[n].p_memsz) in _dl_addr_inside_object()
|
| A D | dl-runtime.c | 76 version = &l->l_versions[ndx]; in attribute_hidden() 95 result = _dl_lookup_symbol_x (strtab + sym->st_name, l, &sym, l->l_scope, in attribute_hidden() 116 value = DL_FIXUP_MAKE_VALUE (l, SYMBOL_ADDRESS (l, sym, true)); in attribute_hidden() 117 result = l; in attribute_hidden() 133 if (l->l_reloc_result != NULL) in attribute_hidden() 178 if (l->l_reloc_result == NULL) in DL_FIXUP_VALUE_TYPE() 195 l, reloc_arg); in DL_FIXUP_VALUE_TYPE() 263 version = &l->l_versions[ndx]; in DL_FIXUP_VALUE_TYPE() 279 &defsym, l->l_scope, version, in DL_FIXUP_VALUE_TYPE() 301 value = DL_FIXUP_MAKE_VALUE (l, SYMBOL_ADDRESS (l, refsym, true)); in DL_FIXUP_VALUE_TYPE() [all …]
|
| A D | dl-unmap-segments.h | 30 _dl_unmap_segments (struct link_map *l) in _dl_unmap_segments() argument 32 __munmap ((void *) l->l_map_start, l->l_map_end - l->l_map_start); in _dl_unmap_segments()
|
| A D | dl-init.c | 26 call_init (struct link_map *l, int argc, char **argv, char **env) in call_init() argument 31 assert (l->l_real->l_relocated || l->l_real->l_type == lt_executable); in call_init() 33 if (l->l_init_called) in call_init() 39 l->l_init_called = 1; in call_init() 42 if (__builtin_expect (l->l_name[0], 'a') == '\0' in call_init() 43 && l->l_type == lt_executable) in call_init() 49 DSO_FILENAME (l->l_name)); in call_init() 55 if (ELF_INITFINI && l->l_info[DT_INIT] != NULL) in call_init() 56 DL_CALL_DT_INIT(l, l->l_addr + l->l_info[DT_INIT]->d_un.d_ptr, argc, argv, env); in call_init() 59 ElfW(Dyn) *init_array = l->l_info[DT_INIT_ARRAY]; in call_init() [all …]
|
| A D | dl-reloc.c | 187 : l) 232 if (l->l_relocated) in _dl_relocate_object() 254 for (ph = l->l_phdr; ph < &l->l_phdr[l->l_phnum]; ++ph) in _dl_relocate_object() 263 + (caddr_t) l->l_addr; in _dl_relocate_object() 302 l->l_reloc_result = calloc (sizeof (l->l_reloc_result[0]), relcount); in _dl_relocate_object() 315 l->l_relocated = 1; in _dl_relocate_object() 335 if (l->l_relro_size != 0) in _dl_relocate_object() 336 _dl_protect_relro (l); in _dl_relocate_object() 344 + l->l_relro_addr), in _dl_protect_relro() 347 + l->l_relro_addr in _dl_protect_relro() [all …]
|
| A D | dl-find_object.h | 67 _dl_find_object_from_map (struct link_map *l, in _dl_find_object_from_map() argument 70 result->map_start = (uintptr_t) l->l_map_start; in _dl_find_object_from_map() 71 result->map_end = (uintptr_t) l->l_map_end; in _dl_find_object_from_map() 72 result->map = l; in _dl_find_object_from_map() 75 result->eh_dbase = (void *) l->l_info[DT_PLTGOT]; in _dl_find_object_from_map() 78 for (const ElfW(Phdr) *ph = l->l_phdr, *ph_end = l->l_phdr + l->l_phnum; in _dl_find_object_from_map() 82 result->eh_frame = (void *) (ph->p_vaddr + l->l_addr); in _dl_find_object_from_map() 110 void _dl_find_object_dlclose (struct link_map *l) attribute_hidden;
|
| A D | dl-load.c | 999 for (l = GL(dl_ns)[nsid]._ns_loaded; l != NULL; l = l->l_next) in _dl_map_object_from_fd() 1033 l->l_ld = l->l_real->l_ld; in _dl_map_object_from_fd() 1256 l->l_map_start = l->l_map_end = 0; in _dl_map_object_from_fd() 1262 l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr); in _dl_map_object_from_fd() 1355 l->l_tls_initimage = (char *) l->l_tls_initimage + l->l_addr; in _dl_map_object_from_fd() 1361 for (ph = &l->l_phdr[l->l_phnum]; ph != l->l_phdr; --ph) in _dl_map_object_from_fd() 1388 l->l_entry += l->l_addr; in _dl_map_object_from_fd() 2012 for (l = GL(dl_ns)[nsid]._ns_loaded; l; l = l->l_next) in _dl_map_object() 2091 for (l = loader; l; l = l->l_loader) in _dl_map_object() 2361 l = l->l_loader; in _dl_rtld_di_serinfo() [all …]
|
| A D | dl-map-segments.h | 75 _dl_map_segments (struct link_map *l, int fd, in _dl_map_segments() argument 99 - MAP_BASE_ADDR (l)); in _dl_map_segments() 106 l->l_map_end = l->l_map_start + maplength; in _dl_map_segments() 107 l->l_addr = l->l_map_start - c->mapstart; in _dl_map_segments() 123 l->l_contiguous = 1; in _dl_map_segments() 129 l->l_map_start = c->mapstart + l->l_addr; in _dl_map_segments() 130 l->l_map_end = l->l_map_start + maplength; in _dl_map_segments() 131 l->l_contiguous = !has_holes; in _dl_map_segments() 145 _dl_postprocess_loadcmd (l, header, c); in _dl_map_segments() 153 zero = l->l_addr + c->dataend; in _dl_map_segments() [all …]
|
| A D | get-dynamic-info.h | 39 if (!bootstrap && l->l_ld == NULL) in elf_get_dynamic_info() 43 ElfW(Dyn) **info = l->l_info; in elf_get_dynamic_info() 72 if (l->l_addr != 0 && dl_relocate_ld (l)) in elf_get_dynamic_info() 74 ElfW(Addr) l_addr = l->l_addr; in elf_get_dynamic_info() 137 l->l_flags = info[DT_FLAGS]->d_un.d_val; in elf_get_dynamic_info() 139 if (l->l_flags & DF_SYMBOLIC) in elf_get_dynamic_info() 141 if (l->l_flags & DF_TEXTREL) in elf_get_dynamic_info() 143 if (l->l_flags & DF_BIND_NOW) in elf_get_dynamic_info() 150 if (l->l_flags_1 & DF_1_NODELETE) in elf_get_dynamic_info() 151 l->l_nodelete_pending = true; in elf_get_dynamic_info() [all …]
|
| A D | dl-load.h | 57 # define MAP_BASE_ADDR(l) 0 argument 88 _dl_postprocess_loadcmd (struct link_map *l, const ElfW(Ehdr) *header, in _dl_postprocess_loadcmd() argument 92 l->l_text_end = l->l_addr + c->mapend; in _dl_postprocess_loadcmd() 94 if (l->l_phdr == 0 in _dl_postprocess_loadcmd() 99 l->l_phdr = (void *) (uintptr_t) (c->mapstart + header->e_phoff in _dl_postprocess_loadcmd() 116 static const char *_dl_map_segments (struct link_map *l, int fd,
|
| A D | dl-audit.c | 27 _dl_audit_activity_map (struct link_map *l, int action) in _dl_audit_activity_map() argument 55 if (l == NULL || l->l_auditing || code == 0) in _dl_audit_objsearch() 63 struct auditstate *state = link_map_audit_state (l, cnt); in _dl_audit_objsearch() 75 _dl_audit_objopen (struct link_map *l, Lmid_t nsid) in _dl_audit_objopen() argument 87 l->l_audit_any_plt |= state->bindflags != 0; in _dl_audit_objopen() 95 _dl_audit_objclose (struct link_map *l) in _dl_audit_objclose() argument 98 || GL(dl_ns)[l->l_ns]._ns_loaded->l_auditing) in _dl_audit_objclose() 106 struct auditstate *state= link_map_audit_state (l, cnt); in _dl_audit_objclose() 116 _dl_audit_preinit (struct link_map *l) in _dl_audit_preinit() argument 125 afct->preinit (&link_map_audit_state (l, cnt)->cookie); in _dl_audit_preinit() [all …]
|
| A D | dl-find_object.c | 39 for (struct link_map *l = GL(dl_ns)[ns]._ns_loaded; l != NULL; in _dl_find_object_slow() local 40 l = l->l_next) in _dl_find_object_slow() 41 if (addr >= l->l_map_start && addr < l->l_map_end in _dl_find_object_slow() 42 && (l->l_contiguous || _dl_addr_inside_object (l, addr))) in _dl_find_object_slow() 490 l = l->l_next) in rtld_hidden_def() 492 if (l != main_map && l == l->l_real) in rtld_hidden_def() 495 if (l->l_type == lt_library || l->l_nodelete_active) in rtld_hidden_def() 767 for (struct link_map *l = new_map; l != NULL; l = l->l_next) in _dl_find_object_update() local 769 count += l == l->l_real && !l->l_find_object_processed; in _dl_find_object_update() 775 for (struct link_map *l = new_map; l != NULL; l = l->l_next) in _dl_find_object_update() local [all …]
|
| A D | dl-deps.c | 213 if (l->l_searchlist.r_list == NULL && l->l_initfini == NULL in _dl_map_object_deps() 214 && l != map && l->l_ldnum > 0) in _dl_map_object_deps() 224 if (l->l_info[DT_NEEDED] || l->l_info[AUXTAG] || l->l_info[FILTERTAG]) in _dl_map_object_deps() 232 args.map = l; in _dl_map_object_deps() 445 l_initfini[0] = l; in _dl_map_object_deps() 450 l->l_initfini = l_initfini; in _dl_map_object_deps() 451 l->l_free_initfini = 1; in _dl_map_object_deps() 518 if (l == map in _dl_map_object_deps() 519 || (l->l_local_scope[0] in _dl_map_object_deps() 523 if (l->l_info[AUXTAG] || l->l_info[FILTERTAG]) in _dl_map_object_deps() [all …]
|
| A D | dl-fptr.c | 74 size_t old_npages = l->npages; in new_fdesc_table() 103 struct local *l; in make_fdesc() local 105 ELF_MACHINE_LOAD_ADDRESS (l, local); in make_fdesc() 108 root = l->root; in make_fdesc() 121 if (l->free_list) in make_fdesc() 126 fdesc = l->free_list; in make_fdesc() 211 struct local *l; in _dl_make_fptr() local 239 ELF_MACHINE_LOAD_ADDRESS (l, local); in _dl_make_fptr() 240 if (l->root != &l->boot_table in _dl_make_fptr() 253 ELF_MACHINE_LOAD_ADDRESS (l, local); in _dl_make_fptr() [all …]
|
| A D | dl-open.c | 215 struct link_map *l; in _dl_find_dso_for_object() local 219 for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next) in _dl_find_dso_for_object() 220 if (addr >= l->l_map_start && addr < l->l_map_end in _dl_find_dso_for_object() 225 return l; in _dl_find_dso_for_object() 453 l = l->l_next) in activate_nodelete() 458 l->l_name, l->l_ns); in activate_nodelete() 512 if (l) in dl_open_worker_begin() 513 call_map = l; in dl_open_worker_begin() 689 _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1); in dl_open_worker_begin() 702 _dl_relocate_object (l, l->l_scope, reloc_mode, 0); in dl_open_worker_begin() [all …]
|
| A D | dl-conflict.c | 49 _dl_resolve_conflicts (struct link_map *l, ElfW(Rela) *conflict, in _dl_resolve_conflicts() argument 54 _dl_debug_printf ("\nconflict processing: %s\n", DSO_FILENAME (l->l_name)); in _dl_resolve_conflicts() 61 assert (l->l_ns == LM_ID_BASE); in _dl_resolve_conflicts() 73 elf_machine_rela (l, NULL, conflict, NULL, NULL, in _dl_resolve_conflicts()
|
| A D | dl-sym-post.h | 24 struct link_map *l = _dl_find_dso_for_object (caller); in _dl_sym_find_caller_link_map() local 25 if (l != NULL) in _dl_sym_find_caller_link_map() 26 return l; in _dl_sym_find_caller_link_map()
|
| A D | rtld.c | 782 l = l->l_next) in init_tls() 1915 l = l->l_next; in dl_main() 2060 struct relocate_args args = { .l = l, in dl_main() 2074 l = l->l_next; in dl_main() 2079 l = l->l_next; in dl_main() 2102 for (l = main_map->l_next; l; l = l->l_next) in dl_main() 2112 l->l_name, (int) sizeof l->l_map_start * 2, in dl_main() 2152 if (l != &GL(dl_rtld_map) && ! l->l_faked) in dl_main() 2154 args.l = l; in dl_main() 2317 for (struct link_map *l = main_map; l != NULL; l = l->l_next) in dl_main() local [all …]
|
| A D | dl-libc.c | 132 lookup_t l; in do_dlsym_private() local 142 l = GLRO(dl_lookup_symbol_x) (args->name, args->map, &args->ref, in do_dlsym_private() 144 args->loadbase = l; in do_dlsym_private() 261 struct link_map *l; in libc_freeres_fn() local 275 for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next) in libc_freeres_fn() 277 struct libname_list *lnp = l->l_libname->next; in libc_freeres_fn() 279 l->l_libname->next = NULL; in libc_freeres_fn() 291 if (l->l_free_initfini) in libc_freeres_fn() 292 free (l->l_initfini); in libc_freeres_fn() 293 l->l_initfini = NULL; in libc_freeres_fn()
|
| A D | dl-close.c | 176 for (struct link_map *l = ns->_ns_loaded; l != NULL; l = l->l_next) in _dl_close_worker() local 178 l->l_map_used = 0; in _dl_close_worker() 179 l->l_map_done = 0; in _dl_close_worker() 180 l->l_idx = idx; in _dl_close_worker() 181 maps[idx] = l; in _dl_close_worker() 192 if (l->l_map_done) in _dl_close_worker() 199 && !l->l_nodelete_active in _dl_close_worker() 203 && !l->l_map_used) in _dl_close_worker() 207 l->l_map_used = 1; in _dl_close_worker() 208 l->l_map_done = 1; in _dl_close_worker() [all …]
|
| A D | dl-object.c | 37 struct link_map *l = GL(dl_ns)[nsid]._ns_loaded; in _dl_add_to_namespace_list() local 38 while (l->l_next != NULL) in _dl_add_to_namespace_list() 39 l = l->l_next; in _dl_add_to_namespace_list() 40 new->l_prev = l; in _dl_add_to_namespace_list() 42 l->l_next = new; in _dl_add_to_namespace_list()
|