about summary refs log tree commit diff
path: root/elf/rtld.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * csu/elf-init.c (__libc_csu_fini): Don't do anything here. Ulrich Drepper2005-01-061-100/+441
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sysdeps/generic/libc-start.c: Don't register program destructor here. * dlfcn/Makefile: Add rules to build dlfcn.c. (LDFLAGS-dl.so): Removed. * dlfcn/dlclose.c: _dl_close is now in ld.so, use function pointer table. * dlfcn/dlmopen.c: Likewise for _dl_open. * dlfcn/dlopen.c: Likewise. * dlfcn/dlopenold.c: Likewise. * elf/dl-libc.c: Likewise for _dl_open and _dl_close. * elf/Makefile (routines): Remove dl-open and dl-close. (dl-routines): Add dl-open, dl-close, and dl-trampoline. Add rules to build and run tst-audit1. * elf/tst-audit1.c: New file. * elf/tst-auditmod1.c: New file. * elf/Versions [libc]: Remove _dl_open and _dl_close. * elf/dl-close.c: Change for use inside ld.so instead of libc.so. * elf/dl-open.c: Likewise. * elf/dl-debug.c (_dl_debug_initialize): Allow reinitialization, signaled by nonzero parameter. * elf/dl-init.c: Fix use of r_state. * elf/dl-load.c: Likewise. * elf/dl-close.c: Add auditing checkpoints. * elf/dl-open.c: Likewise. * elf/dl-fini.c: Likewise. * elf/dl-load.c: Likewise. * elf/dl-sym.c: Likewise. * sysdeps/generic/libc-start.c: Likewise. * elf/dl-object.c: Allocate memory for auditing information. * elf/dl-reloc.c: Remove RESOLV. We now always need the map. Correctly initialize slotinfo. * elf/dynamic-link.h: Adjust after removal of RESOLV. * sysdeps/hppa/dl-lookupcfg.h: Likewise. * sysdeps/ia64/dl-lookupcfg.h: Likewise. * sysdeps/powerpc/powerpc64/dl-lookupcfg.h: Removed. * elf/dl-runtime.c (_dl_fixup): Little cleanup. (_dl_profile_fixup): New parameters to point to register struct and variable for frame size. Add auditing checkpoints. (_dl_call_pltexit): New function. Don't define trampoline code here. * elf/rtld.c: Recognize LD_AUDIT. Load modules on startup. Remove all the functions from _rtld_global_ro which only _dl_open and _dl_close needed. Add auditing checkpoints. * elf/link.h: Define symbols for auditing interfaces. * include/link.h: Likewise. * include/dlfcn.h: Define __RTLD_AUDIT. Remove prototypes for _dl_open and _dl_close. Adjust access to argc and argv in libdl. * dlfcn/dlfcn.c: New file. * sysdeps/generic/dl-lookupcfg.h: Remove all content now that RESOLVE is gone. * sysdeps/generic/ldsodefs.h: Add definitions for auditing interfaces. * sysdeps/generic/unsecvars.h: Add LD_AUDIT. * sysdeps/i386/dl-machine.h: Remove trampoline code here. Adjust for removal of RESOLVE. * sysdeps/x86_64/dl-machine.h: Likewise. * sysdeps/generic/dl-trampoline.c: New file. * sysdeps/i386/dl-trampoline.c: New file. * sysdeps/x86_64/dl-trampoline.c: New file. * sysdeps/generic/dl-tls.c: Cleanups. Fixup for dtv_t change. Fix updating of DTV. * sysdeps/generic/libc-tls.c: Likewise. * sysdeps/arm/bits/link.h: Renamed to ... * sysdeps/arm/buts/linkmap.h: ...this. * sysdeps/generic/bits/link.h: Renamed to... * sysdeps/generic/bits/linkmap.h: ...this. * sysdeps/hppa/bits/link.h: Renamed to... * sysdeps/hppa/bits/linkmap.h: ...this. * sysdeps/hppa/i386/link.h: Renamed to... * sysdeps/hppa/i386/linkmap.h: ...this. * sysdeps/hppa/ia64/link.h: Renamed to... * sysdeps/hppa/ia64/linkmap.h: ...this. * sysdeps/hppa/s390/link.h: Renamed to... * sysdeps/hppa/s390/linkmap.h: ...this. * sysdeps/hppa/sh/link.h: Renamed to... * sysdeps/hppa/sh/linkmap.h: ...this. * sysdeps/hppa/x86_64/link.h: Renamed to... * sysdeps/hppa/x86_64/linkmap.h: ...this. 2005-01-06 Ulrich Drepper <drepper@redhat.com> * allocatestack.c (init_one_static_tls): Adjust initialization of DTV entry for static tls deallocation fix. * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which also contains information whether the memory pointed to is static TLS or not. * sysdeps/i386/tls.h: Likewise. * sysdeps/ia64/tls.h: Likewise. * sysdeps/powerpc/tls.h: Likewise. * sysdeps/s390/tls.h: Likewise. * sysdeps/sh/tls.h: Likewise. * sysdeps/sparc/tls.h: Likewise. * sysdeps/x86_64/tls.h: Likewise.
* Update.Ulrich Drepper2005-01-061-3/+3
| | | | | | | 2005-01-05 Steven Munroe <sjmunroe@us.ibm.com> * elf/rtld.c (dl_main) [NEED_DL_SYSINFO_DSO]: Insure l_map_end and l_text_end are set for a VDSO with a single PT_LOAD entry.
* (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper2004-12-221-733/+310
|
* 2.5-18.1Jakub Jelinek2007-07-121-310/+733
|
* * elf/ldd.bash.in: When set -o pipefail is available, use that forRoland McGrath2004-12-081-2/+4
| | | | | | | | piping to cat; when not, don't use the pipe at all. Pipe to cat in all cases of running the executable. When direct running exits with code 5, retry running via ${RTLD}. * elf/rtld.c (process_envvars): If __libc_enable_secure and mode != normal, exit with exitcode 5.
* Update. cvs/fedora-glibc-20041207T1331Ulrich Drepper2004-12-071-3/+9
| | | | | | | | | | | 2004-12-01 Jakub Jelinek <jakub@redhat.com> * elf/rtld.c (process_envvars): Don't consider LD_SHOW_AUXV and LD_DYNAMIC_WEAK if __libc_enable_secure. If __libc_enable_secure, /etc/suid-debug doesn't exist and program will be actually run, turn off all debugging. * sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add LD_DEBUG, LD_DYNAMIC_WEAK and LD_SHOW_AUXV.
* Update.Ulrich Drepper2004-11-131-5/+15
| | | | | | | | | | | | | 2004-11-13 Jakub Jelinek <jakub@redhat.com> * elf/rtld.c (print_statistics): Avoid segfaults if not all namespaces are used. Fix computation of num_relative_relocations on RELA architectures other than IA-64 and Alpha. 2004-11-13 Ulrich Drepper <drepper@redhat.com> * malloc/malloc.c (_int_free): Use munmap_chunk for handling mmaped memory.
* * sysdeps/generic/ldsodefs.h (struct rtld_global_ro): DefineRoland McGrath2004-11-061-3/+5
| | | | | | | | | | | | | | | _dl_sysinfo_dso under [NEED_DL_SYSINFO_DSO] as well. * elf/rtld.c (dl_main): Set up GLRO(dl_sysinfo_dso) under [NEED_DL_SYSINFO_DSO] as well. * sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Always include AT_SYSINFO and AT_SYSINFO_EHDR in name table. (_dl_sysdep_start) [NEED_DL_SYSINFO_DSO]: Match AT_SYSINFO_EHDR. * elf/dl-support.c (_dl_sysinfo_dso): Define also under [NEED_DL_SYSINFO_DSO]. (_dl_aux_init) [NEED_DL_SYSINFO || NEED_DL_SYSINFO_DSO]: Match AT_SYSINFO_EHDR and set GL(dl_sysinfo_dso). 2004-11-05 Roland McGrath <roland@redhat.com>
* Update.Ulrich Drepper2004-10-141-1/+1
| | | | | | | | | 2004-10-14 Jakub Jelinek <jakub@redhat.com> * elf/rtld.c (_dl_start): Fix one last dl_loaded. * elf/dl-load.c (_dl_map_object_from_fd): Avoid definition of label when it is not needed. * elf/dl-close.c (_dl_close): Typo: & -> &&.
* [BZ #77]Ulrich Drepper2004-10-141-116/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update. Add support for namespaces in the dynamic linker. * dlfcn/Makefile (libdl-routines): Add dlmopen. * dlfcn/Versions [libdl, GLIBC_2.3.4]: Add dlmopen. * dlfcn/dlfcn.h: Define Lmid_t, LM_ID_BASE, and LM_ID_NEWLM. Declare dlmopen. Document RTLD_DI_LMID. * dlfcn/dlinfo.c: Handle RTLD_DI_LMID. * dlfcn/dlmopen.c: New file. * dlfcn/dlopen.c: Pass new parameter to _dl_open. * dlfcn/dlopenold.c: Likewise. * elf/dl-addr.c: Adjust for removal of GL(dl_loaded). * elf/dl-caller.c: Likewise. * elf/dl-close.c: Likewise. * elf/dl-conflict.c: Likewise. * elf/dl-debug.c: Likewise. * elf/dl-lookup.c: Likewise. * elf/dl-sym.c: Likewise. * elf/dl-version.c: Likewise. * elf/do-lookup.h: Likewise. * elf/rtld.c: Likewise. * sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise. * elf/dl-depsc: Likewise. Add new parameter to _dl_map_object. * elf/dl-fini.c: Call destructors in all namespaces. * elf/dl-iteratephdr.c: Compute total nloaded. Adjust for removal of GL(dl_loaded). * elf/dl-libc.c: Pass new parameter to _dl_open. Adjust for removal of GL(dl_loaded). * elf/dl-load.c (_dl_map_object_from_fd): Don't load ld.so a second time. Reuse the one from the main namespace in all others. Pass new parameter to _dl_new_object. Adjust for removal of GL(dl_loaded). * elf/dl-object.c: Take new parameter. Use it to initialize l_ns. Adjust for removal of GL(dl_loaded). * elf/dl-open.c (_dl_open): Take new parameter. Adjust for removal of GL(dl_loaded). * elf/dl-support.c: Replace global _dl_loaded etc variables with _dl_ns variable. * include/dlfcn.h: Adjust prototype of _dl_open. Define __LM_ID_CALLER. * include/link.h: Add l_real, l_ns, and l_direct_opencount elements. * sysdeps/generic/dl-tls.c: Bump TLS_STATIC_SURPLUS. Since libc is using TLS we need memory appropriate to the number of namespaces. * sysdeps/generic/ldsodefs.h (struct rtld_global): Replace _dl_loaded, _dl_nloaded, _dl_global_scope, _dl_main_searchlist, and _dl_global_scope_alloc with _dl_ns element. Define DL_NNS. Adjust prototypes of _dl_map_object and member in rtld_global_ro. * malloc/malloc.c: Include <dlfcn.h>. * malloc/arena.c (ptmalloc_init): If libc is not in primary namespace, never use brk. * elf/Makefile: Add rules to build and run tst-dlmopen1 and tst-dlmopen2. * elf/tst-dlmopen1.c: New file. * elf/tst-dlmopen1mod.c: New file. * elf/tst-dlmopen2.c: New file. * elf/dl-close.c: Improve reference counting by tracking direct loads. * elf/dl-lookup.c (add_dependency): Likewise. * elf/dl-open.c (dl_open_worker): Likewise. * elf/rtld.c (dl_main): Likewise. 2004-09-09 GOTO Masanori <gotom@debian.or.jp> [BZ #77] * elf/dl-close.c: Count down l_opencount to check not only for l_reldeps, but also l_initfini. 2004-10-13 Ulrich Drepper <drepper@redhat.com>
* Update.Ulrich Drepper2004-10-061-1/+2
| | | | | | | 2004-10-05 Ulrich Drepper <drepper@redhat.com> * elf/rtld.c (dl_main): Use _dl_debug_printf instead of _dl_printf for prelink message.
* Update.Ulrich Drepper2004-10-041-1/+1
| | | | | | | 2004-10-04 Ulrich Drepper <drepper@redhat.com> * elf/rtld.c (dl_main): Only skip => output in ldd mode if both strings are identical.
* Update.Ulrich Drepper2004-09-231-2/+3
| | | | | | | | | | | | | | | | | | | | | | 2004-09-23 Ulrich Drepper <drepper@redhat.com> * sysdeps/generic/bits/dlfcn.h: Add RTLD_DEEPBIND. * elf/dl-object.c (_dl_new_object): Add new parameter mode. If mode has RTLD_DEEPBIND set add local searchlist before global scope. * sysdeps/generic/ldsodefs.h (_dl_new_object): Adjust prototype. * elf/rtld.c: Adjust callers of _dl_new_object. * elf/dl-load.c: Likewise. (_dl_map_object_from_fd): If RTLD_DEEPBIND is used, don't do anything for DF_SYMBOLIC. * elf/dl-open.c (dl_open_writer): Pass RTLD_DEEPBIND flag on to _dl_map_object_deps. * elf/tst-deep1.c: New file. * elf/tst-deep1mod1.c: New file. * elf/tst-deep1mod2.c: New file. * elf/tst-deep1mod3.c: New file. * elf/Makefile: Add rules to build and run new tests. * elf/dl-deps.c: Pretty printing.
* Update.Ulrich Drepper2004-09-201-3/+2
| | | | | | | | | 2004-09-20 Ulrich Drepper <drepper@redhat.com> * elf/dl-load.c (_dl_map_object_from_fd): Add some error checking. Reorder code slightly. * elf/rtld.c (dl_main): No need to check whether l_info[DT_HASH] is non-null, _dl_setup_hash will do that.
* Update.Ulrich Drepper2004-09-181-0/+44
| | | | | | | | | | | | | | | 2004-09-17 Ulrich Drepper <drepper@redhat.com> * include/link.h (struct link_map): Add l_used element. * sysdeps/generic/ldsodefs.h: Define DL_DEBUG_UNUSED. * elf/rtld.c (process_dl_debug): Recognize unused. (dl_main): When unused debug flag is set check for unused direct dependencies. When printing dependencies and SONAME starts with /, omit the SONAME => part. * elf/dl-lookup.c (_dl_lookup_symbol_x): Mark object in which the symbol has been found as used. * elf/ldd.bash.in: Add -u option.
* (dl_main): First check existence of ld.so.preload with access.Ulrich Drepper2004-09-021-85/+96
|
* Update.Ulrich Drepper2004-07-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-07-10 Ulrich Drepper <drepper@redhat.com> * elf/ldconfig.c: Define PROCINFO_CLASS as static before including ldsodefs.h. * sysdeps/generic/ldsodefs.h: Only define PROCINFO_CLASS if it is not already defined. * sysdeps/i386/dl-procinfo.c: Define PROCINFO_CALLS only if not already defined. * elf/rtld.c (print_statistics): Mark with noinline attribute. * sysdeps/i386/dl-machine.h (elf_machine_rel): Mark with always_inline attribute. (elf_machine_rel_relative): Likewise. * include/string.h: Add libc_hidden_proto for __strtok_r and __strsep_g. * sysdeps/generic/strsep.c: Add libc_hidden_def. * sysdeps/generic/strtok_r.c: Likewise. * sysdeps/i386/strtok_r.S: Add alias for internal symbol. * sysdeps/i386/i686/strtok_r.S: Likewise. * sysdeps/x86_64/strtok_r.S: Likewise. 2004-07-09 Alexandre Oliva <aoliva@redhat.com> * inet/getnetgrent_r.c (internal_setnetgrent): Make it hidden instead of internal-linkage, such that we can alias to it. (internal_endnetgrent, internal_getnetgrent_r): Likewise.
* Update.Ulrich Drepper2004-07-061-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-07-05 Ulrich Drepper <drepper@redhat.com> * elf/dl-init.c: Don't define and use _dl_starting_up if HAVE_INLINED_SYSCALLS is defined and the variable is not used. * elf/dl-support.c: Likewise. * elf/rtld.c: Likewise. * elf/dl-misc.c (_dl_debug_vdprintf): Use writev syscall directly if HAVE_INLINED_SYSCALLS is defined. * sysdeps/powerpc/powerpc64/dl-machine.h: Don't rest _dl_starting_up here. * sysdeps/powerpc/powerpc32/dl-start.S: Likewise. * sysdeps/unix/sysv/linux/configure.in: Define HAVE_INLINED_SYSCALLS. * config.h.in: Add entry for HAVE_INLINED_SYSCALLS. * sysdeps/posix/profil.c: If compiled for ld.so, omit code which is needed to stop profiling. * elf/dl-open.c (dl_open_worker): If a newly opened object is to be profile make sure it cannot be unloaded. * sysdeps/unix/sysv/linux/dl-origin.c: Inline readlink syscall. * sysdeps/unix/sysv/linux/fcntl.c: If compiled without cancellation support, make sure the helper function is inlined. * sysdeps/unix/sysv/linux/pread.c: Likewise. * sysdeps/unix/sysv/linux/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c: Likewise.
* Update.Ulrich Drepper2004-07-051-1/+1
| | | | | | 2004-07-05 Ulrich Drepper <drepper@redhat.com> * elf/rtld.c (dl_main): Mark dyn_temp with attribute_relro.
* Update.Ulrich Drepper2004-03-271-0/+12
| | | | | | | | | | | | | | | | | | | | 2004-03-26 Ulrich Drepper <drepper@redhat.com> * elf/dl-caller.c: New file. * include/caller.h: New file. * Makefile (distribute): Add include/caller.h. * elf/Makefile (dl-routines): Add dl-caller. * elf/dl-load.c (_dl_map_object_from_fd): Record l_text_end. * elf/dl-open.c (check_libc_caller): Removed. (dl_open_worker): Use __check_caller instead. * elf/rtld.c (_rtld_global_ro): Initialize _dl_check_caller. (_dl_start_final): Record l_text_end for ld.so map. (dl_main): Record l_text_end for main object and vdso. * include/link.h (struct link_map): Add l_text_end field. * sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Add _dl_check_caller field. Define enum allowmask. Add declaration of _dl_check_caller. * sysdeps/unix/sysv/linux/dl-execstack.c: Also use __check_caller test.
* * elf/rtld.c (_rtld_global_ro) [MAP_COPY]: Don't set _dl_unload_cache.Roland McGrath2004-03-081-0/+2
| | | | | * sysdeps/mach/hurd/dl-sysdep.c (_dl_important_hwcaps): Don't use INTUSE with _dl_signal_error.
* Update.Ulrich Drepper2004-03-071-10/+10
| | | | | | | | | | | | | | | | | | | | | 2004-03-07 Ulrich Drepper <drepper@redhat.com> * sysdeps/generic/ldsodefs.h: Move _dl_initial_searclist, _dl_hp_timing_overhead, _dl_init_all_dirs, and the content of dl-procinfo.c from _rtld_global to _rtld_global_ro. * elf/rtld.c: Adjust initializer for _rtld_global_ro. * elf/dl-close.c: Use GLRO instead of GL where appropriate. * elf/dl-libc.c: Likewise. * elf/dl-load.c: Likewise. * sysdeps/i386/dl-procinfo.h: Likewise. * sysdeps/i386/i686/hp-timing.h: Likewise. * sysdeps/ia64/hp-timing.h: Likewise. * sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Likewise. * sysdeps/sparc/sparc64/hp-timing.h: Likewise. * sysdeps/unix/sysv/linux/arm/dl-procinfo.h: Likewise. * sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.
* Update.Ulrich Drepper2004-03-071-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-03-06 Ulrich Drepper <drepper@redhat.com> * elf/dl-lookup.c: We don't need for specialized lookup functions. Combining the functionality does not slow down relocation processing, it might even speed it up a little. * sysdeps/generic/ldsodefs.h: Adjust prototypes for lookup function. Add only one function pointer to rtlf_global_ro. * elf/do-lookup.h: Replace #ifs with ifs. * elf/dl-libc.c: Adjust _dl_lookup_* callers. * elf/dl-reloc.c: Likewise. * elf/dl-runtime.c: Likewise. * elf/dl-sym.c: Likewise. * elf/rtld.c: Likewise. Adjust _rtld_global_ro initialization. * sysdeps/generic/ldsodefs.h (__rtld_local_attribute__, __rtld_global_attribute__): Undef after use. (_rtld_local_ro): Define __rtld_local_attribute__ with just hidden if available. * sysdeps/alpha/Subdirs: New file. * sysdeps/alpha/soft-fp/Makefile: New file. * sysdeps/alpha/soft-fp/Versions: New file. * sysdeps/alpha/soft-fp/local-soft-fp.h: New file. * sysdeps/alpha/soft-fp/ots_add.c: New file. * sysdeps/alpha/soft-fp/ots_cmp.c: new file. * sysdeps/alpha/soft-fp/ots_cmpe.c: New file. * sysdeps/alpha/soft-fp/ots_cvtqux.c: New file. * sysdeps/alpha/soft-fp/ots_cvtqx.c: New file. * sysdeps/alpha/soft-fp/ots_cvttx.c: New file. * sysdeps/alpha/soft-fp/ots_cvtxq.c: New file. * sysdeps/alpha/soft-fp/ots_cvtxt.c: New file. * sysdeps/alpha/soft-fp/ots_div.c: New file. * sysdeps/alpha/soft-fp/ots_mul.c: New file. * sysdeps/alpha/soft-fp/ots_nintxq.c: New file. * sysdeps/alpha/soft-fp/ots_sub.c: New file.
* Update.Ulrich Drepper2004-03-061-5/+5
| | | | | * elf/dl-fini.c (_dl_fini): Combine _dl_debug_printf calls. * elf/rtld.c (print_statistics): Likewise.
* Update.Ulrich Drepper2004-03-061-1/+1
| | | | | | | | | | | 2004-03-06 Ulrich Drepper <drepper@redhat.com> * elf/dl-open.c: No need to pass any parameter to _dl_start_profile. They are the same in both places. * elf/dl-profile.c: Likewise. * elf/rtld.c: Likewise. * sysdeps/generic/ldsodefs.h: Likewise. * elf/dl-support.c: Define _dl_profile_output variable. Initialize it.
* Update.Ulrich Drepper2004-03-061-45/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * elf/Versions: Remove functions which are not exported anymore. * dlfcn/dlerror.c: Call ld.so functions through GLSO. * dlfcn/dlinfo.c: Likewise. * elf/dl-close.c: Likewise. * elf/dl-libc.c: Likewise. * elf/dl-open.c: Likewise. * elf/dl-sym.c: Likewise. * sysdeps/generic/libc-start.c: Likewise. * elf/dl-debug.c: Remove *_internal definition. Don't use INTUSE for functions which are not exported anymore. * elf/dl-deps.c: Likewise. * elf/dl-dst.h: Likewise. * elf/dl-error.c: Likewise. * elf/dl-fini.c: Likewise. * elf/dl-init.c: Likewise. * elf/dl-load.c: Likewise. * elf/dl-lookup.c: Likewise. * elf/dl-misc.c: Likewise. * elf/dl-profile.c: Likewise. * elf/dl-profstub.c: Likewise. * elf/dl-reloc.c: Likewise. * elf/dl-runtime.c: Likewise. * elf/dl-version.c: Likewise. * elf/do-lookup.h: Likewise. * include/dlfcn.h: Likewise. * sysdeps/generic/dl-cache.c: Likewise. * sysdeps/generic/dl-fptr.c: Likewise. * sysdeps/generic/dl-origin.c: Likewise. * sysdeps/generic/dl-sysdep.c: Likewise. * sysdeps/generic/dl-tls.c: Likewise. * sysdeps/generic/ldsodefs.h: Likewise. * sysdeps/i386/dl-tls.h: Likewise. * sysdeps/unix/sysv/linux/dl-origin.c: Likewise. * elf/rtld.c: Likewise. Export function though _rtld_global_ro. * generic/dl-fptr.c: Likewise. * mach/hurd/dl-sysdep.c: Likewise. * unix/sysv/linux/ia64/dl-static.c: Likewise. * unix/sysv/linux/ia64/getpagesize.c: Likewise. * unix/sysv/linux/m68k/getpagesize.c: Likewise. * unix/sysv/linux/sparc/sparc32/getpagesize.c: Likewise.
* Update.Ulrich Drepper2004-03-051-4/+4
| | | | | | | * sysdeps/generic/ldsodefs.h (struct rtld_global): Move dl_debug_fd to rtld_global_ro. * elf/rtld.c: Use GLRO instead of GL for dl_debug_fd. * elf/dl-misc.c: Likewise.
* Update.Ulrich Drepper2004-03-051-47/+63
| | | | | | | | | | | | | * sysdeps/sparc/sparc64/dl-machine.h: Likewise. * sysdeps/sparc/sparc32/dl-machine.h: Likewise. * sysdeps/s390/s390-64/dl-machine.h: Likewise. * sysdeps/s390/s390-32/dl-machine.h: Likewise. * sysdeps/powerpc/powerpc64/dl-machine.h: Likewise. * sysdeps/powerpc/powerpc32/dl-machine.c: Likewise. * sysdeps/m68k/dl-machine.h: Likewise. * sysdeps/ia64/dl-machine.h: Likewise. * sysdeps/arm/dl-machine.h: Likewise. * sysdeps/alpha/dl-machine.h: Likewise.
* Update.Ulrich Drepper2004-02-281-0/+1
| | | | | | * elf/rtld.c (dl_main): Adjust l->l_ld of the vDSO by l->l_addr. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Only set GL(dl_sysinfo) if non-zero.
* Update.Ulrich Drepper2004-02-261-17/+25
| | | | | | | | | 2004-02-26 Jakub Jelinek <jakub@redhat.com> * elf/rtld.c (dl_main): Correctly set up l_map_end and l_addr in vDSO's link_map, don't assume l_addr == 0. Set GL(dl_sysinfo) from e_entry only if AT_SYSINFO not present and adjust by l_addr. Take vDSO into account when inserting rtld into _dl_loaded chain.
* Update.Ulrich Drepper2004-02-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | 2004-02-19 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/generic/libc-start.c [LIBC_START_DISABLE_INLINE] (STATIC): Define as static. * sysdeps/powerpc/elf/libc-start.c: Define LIBC_START_DISABLE_INLINE because gcc does not allow inline of functions that call setjmp. 2004-02-19 Steven Munroe <sjmunroe@us.ibm.com> * sysdeps/powerpc/powerpc64/Makefile: Use -finline-limit. 2004-02-19 Jakub Jelinek <jakub@redhat.com> * elf/rtld.c (_dl_argv): If DL_ARGV_NOT_RELRO defined, don't use attribute_relro for _dl_argv. * sysdeps/alpha/dl-machine.h (DL_ARGV_NOT_RELRO): Define. * sysdeps/ia64/dl-machine.h (DL_ARGV_NOT_RELRO): Define. * sysdeps/sparc/sparc32/dl-machine.h (DL_ARGV_NOT_RELRO): Define. * sysdeps/sparc/sparc64/dl-machine.h (DL_ARGV_NOT_RELRO): Define. vfork instead of fork.
* Update.Ulrich Drepper2004-02-171-9/+32
| | | | | * elf/rtld.c (dl_main): Don't fail execution if file named in ld.so.preload is not present.
* Update.Ulrich Drepper2004-01-271-12/+23
| | | | | | | | | | | | | | | | | | | | | | 2004-01-26 David Mosberger <davidm@hpl.hp.com> * elf/link.h (struct dl_phdr_info): Fix typo in comment. * elf/rtld.c (dl_main): After incrementing dl_nloaded, also increment dl_load_adds. * elf/dl-iteratephdr.c (__dl_iterate_phdr): Replace GL(dl_load_subs) with equivalent GL(dl_load_adds - GL(dl_nloaded). (dl_iterate_phdr): Likewise. * elf/dl-close.c (_dl_close): Delete increment of GL(dl_load_subs). * elf/dl-support.c: Remove global variable _dl_load_subs. * sysdeps/generic/ldsodefs.h (struct rtld_global): Remove _dl_load_subs member. 2004-01-27 Jakub Jelinek <jakub@redhat.com> * elf/rtld.c (_dl_start_final): Don't set l_relro_* here. (_dl_start): And neither here. (dl_main): Set GL(dl_loaded)->l_relro_* and GL(dl_rtld_map)->l_relro_*.
* Update.Ulrich Drepper2004-01-241-6/+7
| | | | | | | | | | | | | 2004-01-22 Jakub Jelinek <jakub@redhat.com> * elf/dl-reloc.c (_dl_relocate_object): Move PT_GNU_RELRO protection into... (_dl_protect_relro): New routine. * sysdeps/generic/ldsodefs.h (_dl_protect_relro): New prototype. * elf/rtld.c (_dl_start_final): Copy l_relro_addr and l_relro_size from bootstrap_map. (_dl_main): Don't set GL(_dl_loaded)->l_relro_{addr,size} here. Call _dl_protect_relro for libraries if prelinking.
* Update.Ulrich Drepper2004-01-161-1/+7
| | | | | | 2004-01-15 Ulrich Drepper <drepper@redhat.com> * elf/rtld.c: Handle platforms with HP_TIMING_NONAVAIL defined.
* Update.Ulrich Drepper2004-01-151-1/+1
| | | | * elf/rtld.c: Initialize _dl_argv to allow aliasing.
* Update.Ulrich Drepper2004-01-151-21/+21
| | | | | | | | | | | | | | | | | | | | 2004-01-14 Ulrich Drepper <drepper@redhat.com> * configure.in: Define HAVE_Z_RELRO if the linker supports -z relro. * config.h.in: Add entry for HAVE_Z_RELRO. * include/libc-symbols.h: Define attribute_relro. * elf/dl-load.c: Add attribute_relro to env_path_list, capstr, ncapstr, max_capstrlen, and max_dirnamelen definitions. * elf/rtld.c: Add attribute_relro to _dl_argc, _dl_argv, _dl_skip_args, load_time, start_time, library_path, preloadlist, version_info, any_debug. Remove rtld_total_time. Make it a local variable. Pass pointer to it to print_statistics. Change print_statistics accordingly. * sysdeps/generic/dl-sysdep.c: Add attribute_relro to _dl_auxv. Use attribute_relro instead of explicitly assigning variable to the .data.rel.ro section for __libc_enable_secure and __libc_stack_end. * sysdeps/generic/ldsodefs.h: Declare __libc_stack_end, _dl_argc, _dl_argv, _dl_argv_internal with attribute_relro.
* Update.Ulrich Drepper2004-01-141-0/+3
| | | | | | | | | | | | | | | | | | 2004-01-13 Ulrich Drepper <drepper@redhat.com> * sysdeps/x86_64/dl-machine.h: Include <tls.h>. * elf/rtld.c (_dl_start_final): Initialze __libc_stack_end here. * sysdeps/generic/dl-sysdep.c: Define __libc_stack_end with rtld_hidden_def and move into .data.rel.ro section. * sysdeps/generic/ldsodefs.h: Declare __libc_stack_end with rtld_hidden_proto. * sysdeps/generic/libc-start.c: Only initialize __libc_stack_end here if !SHARED. * sysdeps/unix/sysv/linux/dl-execstack.c (_dl_make_stack_executable): Move common code in front. Use __builtin_expect.
* Update.Ulrich Drepper2004-01-131-37/+47
| | | | | | | | | | | | | | | | | | | | | | 2004-01-13 Ulrich Drepper <drepper@redhat.com> * Makeconfig: Define relro-LDFLAGS if have-z-relro==yes. Add it to LDFLAGS.so and LDFLAGS-rtld. (+link): Add relro-LDFLAGS. * Makeconfig (shlib.lds): Place __libc_subfreeres, __libc_atexit, and __libc_thread_subfreeres sections after .jcr section. * config.make.in: Add have-z-relro. * configure.in: Add check for -z relro option. * include/link.h (struct link_map): Add relro_addr and relro_size members. * elf/dl-load.c (_dl_map_object_from_fd): Recognize PT_GNU_RELRO. * elf/dl-reloc.c (_dl_relocate_object): At the end, make relro part of loaded segments read-only. * elf/elf.h: Define PT_GNU_RELRO. * elf/rtld.c (_dl_start): Recognize PT_GNU_RELRO of ld.so. (dl_main): Recognize PT_GNU_RELRO of the application. Call _dl_debug_initialize and initialize l_info[DT_DEBUG] before relocations.
* Update.Ulrich Drepper2003-12-201-1/+1
| | | | | | | 2003-12-20 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define. * sysdeps/unix/sysv/linux/getpid.c: New file.
* Update.Ulrich Drepper2003-12-171-2/+7
| | | | | | | | | 2003-12-17 Ulrich Drepper <drepper@redhat.com> * elf/rtld.c: Don't use strong_alias to define _rtld_local. This removes the visibility attributes which might be defined earlier for some gcc versions. Instead spell out what strong_alias does plus the visibility.
* Update.Ulrich Drepper2003-12-101-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-12-02 David Mosberger <davidm@hpl.hp.com> * sysdeps/ia64/elf/initfini.c: Add unwind info. * sysdeps/ia64/dl-machine.h (elf_machine_matches_host): Mark with attribute "unused". (elf_machine_dynamic): Mark with attributes "unused" and "const". (elf_machine_runtime_setup): Likewise. * sysdeps/generic/dl-fptr.c (make_fptr_table): Mark with attribute "always_inline". * sysdeps/ia64/dl-machine.h (__ia64_init_bootstrap_fdesc_table): Likewise. * configure.in: Check whether compiler has libunwind support. * config.make.in (have-cc-with-libunwind): New variable. * config.h.in (HAVE_CC_WITH_LIBUNWIND): New macro. * Makeconfig (gnulib): If have-cc-withh-libunwind is "yes", also mention -lunwind. 003-11-12 David Mosberger <davidm@hpl.hp.com> * sysdeps/unix/sysv/linux/ia64/sysdep.h: Define DO_CALL_VIA_BREAK. Redefine DO_CALL to use vdso if supported, otherwise DO_CALL_VIA_BREAK. Likewise for DO_INLINE_SYSCALL. Make INTERNAL_SYSCALL use DO_INLINE_SYSCALL. * sysdeps/unix/sysv/linux/ia64/vfork.S: Use DO_CALL_VIA_BREAK() instead of DO_CALL(). * sysdeps/unix/sysv/linux/ia64/clone2.S: Use break directly instead of DO_CALL(). * sysdeps/unix/sysv/linux/ia64/brk.S (__curbrk): Restructure it to take advantage of DO_CALL() macro. * sysdeps/unix/sysv/linux/ia64/setcontext.S: Likewise. * sysdeps/unix/sysv/linux/ia64/getcontext.S: Likewise. * elf/rtld.c (dl_main): Restrict dl_sysinfo_dso check to first program header. On ia64, the check failed previously because there are two program headers. * sysdeps/generic/s_nexttowardf.c: Likewise. * math/bug-nexttoward.c: New file.
* Update.Ulrich Drepper2003-11-261-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-11-25 Ulrich Drepper <drepper@redhat.com> * posix/runptests.c (main): Make errors fatal. * posix/PTESTS: One test in GA135 and GA136 check functionality which seems not guaranteed. 2003-11-25 Jakub Jelinek <jakub@redhat.com> * posix/regexec.c (re_search_internal): If prune_impossible_nodes returned REG_NOMATCH, set match_last to -1. Don't initialize pmatch[0] needlessly. Fix comment. (prune_impossible_nodes): Don't segfault on NULL state_log entry. (set_regs): Fix comment. * posix/regcomp.c (parse_bracket_exp): Only set has_plural_match if adding both SIMPLE_BRACKET and COMPLEX_BRACKET. (build_charclass_op): Set has_plural_match if adding both SIMPLE_BRACKET and COMPLEX_BRACKET. * posix/bug-regex11.c (tests): Fix register values for one commented out test. Add new tests. * posix/regex_internal.c (re_string_allocate): Make sure init_len is at least dfa->mb_cur_max. (re_string_reconstruct): If is_utf8, don't fall back into re_string_skip_chars just because idx points into a middle of valid UTF-8 character. Instead, set the wcs bytes which correspond to the partial character bytes to WEOF. * posix/regexec.c (re_search_internal): Allocate input.bufs_len + 1 instead of dfa->nodes_len + 1 state_log entries initially. * posix/bug-regex20.c (main): Uncomment backwards case insensitive tests.
* Update.Ulrich Drepper2003-10-271-1/+2
| | | | | * elf/rtld.c (map_doit): Pass __RTLD_OPENEXEC in last parameter to _dl_map_object.
* Update.Ulrich Drepper2003-10-271-1/+2
| | | | | | | | | | | * include/dlfcn.h (__RTLD_OPENEXEC): Define. * elf/dl-load.c (_dl_map_object_from_fd): Don't allow loading executables unless __RTLD_OPENEXEC flag is present. * elf/rtld.c (dl_main): Pass __RTLD_OPENEXEC flag to _dl_map_object when loading the executable. reverse lookup format for IPv6 addresses is using bitstring and * resolv/ns_name.c: Implement encoding and decoding bitstring in
* Update.Ulrich Drepper2003-10-151-0/+20
| | | | | | | 2003-10-15 Jakub Jelinek <jakub@redhat.com> * elf/rtld.c (print_statistics): Print also number of relative relocations.
* 2003-10-09 Roland McGrath <roland@redhat.com>Roland McGrath2003-10-091-4/+6
| | | | | * elf/rtld.c (dl_main): Don't set l_name for sysinfo DSO, since there is no file to name.
* * elf/rtld.c (dl_main): Add cast in last change.Roland McGrath2003-10-011-1/+1
|
* Update.Ulrich Drepper2003-09-301-3/+13
| | | | | | | | | | | 2003-09-30 Ulrich Drepper <drepper@redhat.com> * elf/rtld.c (dl_main): Also set l_map_start. 2003-09-30 Daniel Jacobowitz <drow@mvista.com> * elf/rtld.c (dl_main): Set l_libname and l_name for the sysinfo DSO to work around kernel problem.
* * elf/rtld.c (dl_main): In rtld_is_main case, reinitializeRoland McGrath2003-09-241-4/+23
| | | | | | | | GL(dl_stack_flags) according to rtld's own PT_GNU_STACK. Move GL(dl_make_stack_executable_hook) initialization up. * elf/tst-execstack-prog.c: New file. * elf/Makefile (tests-execstack-yes): Add it. (LDFLAGS-tst-execstack-prog): New variable.