diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-11-02 21:48:45 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-11-02 21:48:45 +0000 |
commit | e3e35cfc95cbfdc7829a5717af244d978d309f42 (patch) | |
tree | 562c7b56fae088592433bbb61e54c386b5f93ff9 /elf/rtld.c | |
parent | 160698e277bb4bc9a402c0f044289fd04f958089 (diff) | |
download | glibc-e3e35cfc95cbfdc7829a5717af244d978d309f42.tar.gz glibc-e3e35cfc95cbfdc7829a5717af244d978d309f42.tar.xz glibc-e3e35cfc95cbfdc7829a5717af244d978d309f42.zip |
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 <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/netatalk/at.h: Include <linux/atalk.h> before <sys/socket.h> to make sockaddr_at available to <sys/socket.h>. * posix/glob.h: Remove __P from parameter lists of declarations. 1998-11-02 Andreas Jaeger <aj@arthur.rhein-neckar.de> * time/tzset.c (tz_compute): Remove unused parameter timer. Change caller. 1998-11-02 Mark Kettenis <kettenis@phys.uva.nl> * sysdeps/generic/bits/types.h (__ipc_pid_t): New typedef. 1998-11-02 Ulrich Drepper <drepper@cygnus.com>
Diffstat (limited to 'elf/rtld.c')
-rw-r--r-- | elf/rtld.c | 6 |
1 files changed, 5 insertions, 1 deletions
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. */ |