mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
1998-10-07 Ulrich Drepper <drepper@cygnus.com> * elf/dl-open.c (_dl_global_scope_alloc): Make global. (dl_open_worker): Use realloc, not malloc to resize array. * elf/rtld.c (_dl_initial_searchlist): New variable. (_dl_main): Copy content of _dl_main_searchlist to _dl_initial_searchlist. * elf/ldsodefs.h: Add declarations for _dl_initial_searchlist and _dl_global_scope_alloc. * elf/Versions [libc, GLIBC_2.1]: Add _dl_initial_searchlist. * elf/dl-close.c (_dl_close): When removing object with global scope remove allocated searchlist if no dynamically loaded object is on it anymore. * elf/dl-support.c (_dl_initial_searchlist): Renamed from fake_scope. (_dl_global_scope, _dl_main_searchlist): Use _dl_initial_searchlist. * malloc/mtrace.c (tr_where): Don't print space in location string, print it afterwards. Print better symbol name information.
This commit is contained in:
@ -42,7 +42,10 @@ extern char **__libc_argv;
|
||||
|
||||
extern char **__environ;
|
||||
|
||||
static size_t _dl_global_scope_alloc;
|
||||
/* This is zero at program start to signal that the global scope map is
|
||||
allocated by rtld. Later it keeps the size of the map. It might be
|
||||
reset if in _dl_close if the last global object is removed. */
|
||||
size_t _dl_global_scope_alloc;
|
||||
|
||||
|
||||
/* During the program run we must not modify the global data of
|
||||
@ -167,7 +170,9 @@ dl_open_worker (void *a)
|
||||
/* We have to extend the existing array of link maps in the
|
||||
main map. */
|
||||
new_global = (struct link_map **)
|
||||
malloc ((_dl_global_scope_alloc + 8) * sizeof (struct link_map *));
|
||||
realloc (_dl_main_searchlist->r_list,
|
||||
((_dl_global_scope_alloc + 8)
|
||||
* sizeof (struct link_map *)));
|
||||
if (new_global == NULL)
|
||||
goto nomem;
|
||||
|
||||
|
Reference in New Issue
Block a user