From e3e35cfc95cbfdc7829a5717af244d978d309f42 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 2 Nov 1998 21:48:45 +0000 Subject: Update. * elf/Versions [libc, GLIBC_2.01]: Add _dl_global_scope_alloc. * elf/dl-open.c (_dl_global_scope_alloc): Move definition to * elf/dl-deps.c: ...here. * elf/dl-open.c (dl_open_worker): Call _dl_map_object_deps with new parameter and expect result. Remove code handling RTLD_GLOBAL. Add return value of _dl_map_object_deps to _dl_main_searchlist->r_nlist. * elf/dl-deps.c (_dl_map_object_deps): Change to return value. If we parameter GLOBAL is nonzero add object and dependencies to the global scope. * elf/ldsodefs.h: Adapt prototype for _dl_map_object_deps. * elf/rtld.c (dl_main): Call _dl_map_object_deps with new parameter. Mark all objects as in global scope. * elf/dl-object.c (_dl_new_object): Initialize l_global to zero. * sysdeps/unix/sysv/linux/bits/sockunion.h: Add Econet support. * sysdeps/unix/sysv/linux/i386/sysdep.h: Add .L prefix to symbols used in macro magic. 1998-11-02 Andreas Jaeger * sysdeps/unix/sysv/linux/netatalk/at.h: Include before to make sockaddr_at available to . * posix/glob.h: Remove __P from parameter lists of declarations. 1998-11-02 Andreas Jaeger * time/tzset.c (tz_compute): Remove unused parameter timer. Change caller. 1998-11-02 Mark Kettenis * sysdeps/generic/bits/types.h (__ipc_pid_t): New typedef. 1998-11-02 Ulrich Drepper --- elf/rtld.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'elf/rtld.c') diff --git a/elf/rtld.c b/elf/rtld.c index 8d3a9c47a1..472cb21127 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -667,7 +667,11 @@ of this helper program; chances are you did not intend to run this program.\n\ /* Load all the libraries specified by DT_NEEDED entries. If LD_PRELOAD specified some libraries to load, these are inserted before the actual dependencies in the executable's searchlist for symbol resolution. */ - _dl_map_object_deps (_dl_loaded, preloads, npreloads, mode == trace); + _dl_map_object_deps (_dl_loaded, preloads, npreloads, mode == trace, 0); + + /* Mark all objects as being in the global scope. */ + for (i = _dl_loaded->l_searchlist.r_nlist; i > 0; ) + _dl_loaded->l_searchlist.r_list[--i]->l_global = 1; #ifndef MAP_ANON /* We are done mapping things, so close the zero-fill descriptor. */ -- cgit 1.4.1