1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-01 10:06:57 +03:00
* elf/dl-deps.c (struct openaux_args): Add open_mode element.
	(openaux): Pass open_mode as new last argument to _dl_map_object.
	(_dl_map_object_deps): Add new argument open_mode.  Initialize
	open_mode element of args variable with it.
	* elf/dl-open.c (dl_open_worker): Pass __RTLD_DLOPEN flag is set to
	_dl_map_object_deps.
	* elf/rtld.c (dl_main): Add zero as last parameter to
	_dl_map_object_deps call.
	* sysdeps/generic/ldsodefs.h: Adjust prototype of _dl_map_object_deps.
	* elf/nodlopen2.c: New file.
	* elf/nodlopenmod2.c: New file.
	* elf/Makefile: Add rules to build and run nodlopen2.

	* elf/tls-macros.hgg: ...here.  New file.
2002-02-08  Richard Henderson  <rth@redhat.com>
This commit is contained in:
Ulrich Drepper
2002-02-10 22:40:17 +00:00
parent 2cef4257d0
commit 87837aace9
8 changed files with 72 additions and 26 deletions

View File

@ -821,8 +821,9 @@ of this helper program; chances are you did not intend to run this program.\n\
&& (__builtin_expect (! __libc_enable_secure, 1)
|| strchr (p, '/') == NULL))
{
struct link_map *new_map = INTUSE(_dl_map_object) (GL(dl_loaded), p,
1, lt_library,
struct link_map *new_map = INTUSE(_dl_map_object) (GL(dl_loaded),
p, 1,
lt_library,
0, 0);
if (++new_map->l_opencount == 1)
/* It is no duplicate. */
@ -903,8 +904,9 @@ of this helper program; chances are you did not intend to run this program.\n\
if (problem != NULL)
{
char *p = strndupa (problem, file_size - (problem - file));
struct link_map *new_map = INTUSE(_dl_map_object) (GL(dl_loaded), p, 1,
lt_library, 0, 0);
struct link_map *new_map = INTUSE(_dl_map_object) (GL(dl_loaded), p,
1, lt_library,
0, 0);
if (++new_map->l_opencount == 1)
/* It is no duplicate. */
++npreloads;
@ -937,7 +939,8 @@ of this helper program; chances are you did not intend to run this program.\n\
specified some libraries to load, these are inserted before the actual
dependencies in the executable's searchlist for symbol resolution. */
HP_TIMING_NOW (start);
INTUSE(_dl_map_object_deps) (GL(dl_loaded), preloads, npreloads, mode == trace);
INTUSE(_dl_map_object_deps) (GL(dl_loaded), preloads, npreloads,
mode == trace, 0);
HP_TIMING_NOW (stop);
HP_TIMING_DIFF (diff, start, stop);
HP_TIMING_ACCUM_NT (load_time, diff);