diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-12-30 07:32:48 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-12-30 07:32:48 +0000 |
commit | 8c2e201ba9e016820b9a5d934836b9287338a10f (patch) | |
tree | 603fcf79f7498c086fe70a5f9c56ec5952bee319 /elf/rtld.c | |
parent | 4e54d7e4761ec174a8217dc7f9c2b1fe092862ed (diff) | |
download | glibc-8c2e201ba9e016820b9a5d934836b9287338a10f.tar.gz glibc-8c2e201ba9e016820b9a5d934836b9287338a10f.tar.xz glibc-8c2e201ba9e016820b9a5d934836b9287338a10f.zip |
2005-12-08 Steven Munroe <sjmunroe@us.ibm.com>
Tom Gall <tom_gall@vnet.ibm.com> * elf/rtld.c (dl_main): Initialize l_local_scope for sysinfo_map. * sysdeps/powerpc/elf/libc-start.c: Move this... * sysdeps/unix/sysv/linux/powerpc/libc-start.c: ...to here. * sysdeps/powerpc/powerpc32/dl-start.S: Add _dl_main_dispatch label. * sysdeps/powerpc/powerpc32/hp-timing.h: New file. * sysdeps/unix/sysv/linux/powerpc/Versions: New file. * sysdeps/unix/sysv/linux/clock_getres.c: If HAVE_CLOCK_GETRES_VSYSCALL is not defined, redefine INTERNAL_VSYSCALL and INLINE_VSYSCALL to INTERNAL_SYSCALL and INLINE_SYSCALL respectively. Otherwise include <bits/libc-vdso.h>. Use INLINE_VSYSCALL and INTERNAL_SYSCALL instead of the normal versions throughout the code. * sysdeps/unix/sysv/linux/clock_gettime.c: Likewise if HAVE_CLOCK_GETTIME_VSYSCALL is defined. * sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h: New file. * sysdeps/unix/sysv/linux/powerpc/dl-vdso.c: New file. * sysdeps/unix/sysv/linux/powerpc/dl-vdso.h: New file. * sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c: Use vDSO. * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: New file. * sysdeps/unix/sysv/linux/powerpc/Makefile: Add dl-vdso to routines. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Define INLINE_VSYSCALL, INTERNAL_VSYSCALL, INTERNAL_SYSCALL_NCS, INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK, HAVE_CLOCK_GETRES_VSYSCALL, and HAVE_CLOCK_GETTIME_VSYSCALL. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r-- | elf/rtld.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/elf/rtld.c b/elf/rtld.c index 71bcf0ab71..76d129a0a0 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -1307,6 +1307,13 @@ ld.so does not support TLS, but program uses it!\n"); _dl_setup_hash (l); l->l_relocated = 1; + /* Initialize l_local_scope to contain just this map. This allows + the use of dl_lookup_symbol_x to resolve symbols within the vdso. + So we create a single entry list pointing to l_real as its only + element */ + l->l_local_scope[0]->r_nlist = 1; + l->l_local_scope[0]->r_list = &l->l_real; + /* Now that we have the info handy, use the DSO image's soname so this object can be looked up by name. Note that we do not set l_name here. That field gives the file name of the DSO, |