1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
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:
Ulrich Drepper
1998-10-07 13:40:55 +00:00
parent 0163d97b8c
commit 604510f717
8 changed files with 74 additions and 11 deletions

View File

@ -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;