about summary refs log tree commit diff
path: root/elf/rtld.c
Commit message (Collapse)AuthorAgeFilesLines
* Avoid crashing in LD_DEBUG when program name is unavailableSiddhesh Poyarekar2013-05-291-8/+5
| | | | | | | | | Resolves: #15465 The program name may be unavailable if the user application tampers with argc and argv[]. Some parts of the dynamic linker caters for this while others don't, so this patch consolidates the check and fallback into a single macro and updates all users.
* Fix NEED_DL_SYSINFO_DSO conditionals.Roland McGrath2013-03-011-2/+2
|
* Update copyright notices with scripts/update-copyrights.Joseph Myers2013-01-021-1/+1
|
* Set up the data structures for vDSO in libc.aH.J. Lu2012-10-051-94/+2
|
* Clean up conditionalize of ld.so.cache support.Roland McGrath2012-10-031-1/+1
|
* Define VERSYMIDX/VALIDX/ADDRIDX in ldsodefs.hH.J. Lu2012-09-281-9/+0
|
* rtld: limit self loading check to normal mode onlyDmitry V. Levin2012-09-191-1/+2
| | | | | | | | | Commit glibc-2.14~10 disallowed rtld self loading to avoid a segfault that used to happen when rtld was loading itself in normal mode. Unfortunately, that commit disallowed all modes of self loading, including those that used to work before. This change limits the check for self loading to normal mode only, so that instruments like ldd could handle rtld properly.
* Fix lots of bitrot for stub configurations.Roland McGrath2012-07-301-0/+2
|
* Add SystemTap static probes to the runtime linker. [BZ #14298]Gary Benson2012-07-271-0/+3
|
* Fix invalid memory access in do_lookup_x.Andreas Schwab2012-06-221-0/+2
| | | | | | | | [BZ #13579] Do not free l_initfini and allow it to be reused on subsequent dl_open calls for the same library. This fixes the invalid memory access in do_lookup_x when the previously free'd l_initfini was accessed through l_searchlist when a library had been opened for the second time.
* Use _dl_fatal_printf instead of a private variant.Roland McGrath2012-05-141-1/+1
|
* New ld.so argument --inhibit-ldcache to disable ld.so.cache lookupSiddhesh Poyarekar2012-04-111-0/+9
| | | | | | | | | | | It may sometimes be desirable to make the dynamic linker only pick up libraries from the library path and rpath and not look at the ld.so.cache that ldconfig generates. An example of such a use case is the glibc testsuite where the dynamic linker must not be influenced by any external paths or caches. This change adds a new option --inhibit-ldcache that when used, tells the dynamic linker to not use ld.so.cache even if it is available.
* Fix DL_DEBUG_UNUSED to elide the VDSO and handle PLT references properly.David S. Miller2012-04-051-1/+14
| | | | | | | | | | * elf/rtld.c (dl_main): If DL_DEBUG_UNUSED is enabled, turn off lazy binding. * elf/dl-lookup (_dl_lookup_symbol_x): If DL_DEBUG_UNUSED, ignore undefined symbol errors. * elf/rtlc.c (dl_main): Skip VDSO when checking for unused DT_NEEDED entries.
* Move stdio-common/_itoa.h to sysdeps/genericH.J. Lu2012-03-201-1/+1
|
* Always set l_used for vDSO.Marek Polacek2012-02-291-1/+4
|
* Replace FSF snail mail address with URLs.Paul Eggert2012-02-091-3/+2
|
* Don't call ifunc functions in trace modeAndreas Schwab2011-10-051-5/+7
|
* Also relocate in dependency order when doing symbol dependency testingAndreas Schwab2011-09-141-7/+4
|
* Only use USE___THREAD when definedAndreas Schwab2011-09-131-2/+12
|
* Revert "Remove last use of USE___THREAD"Ulrich Drepper2011-09-121-3/+135
| | | | | | | | This reverts commit de82006d43e198fd162807c9adc720c7ebd728a3. Conflicts: ChangeLog
* Remove last use of USE___THREADAndreas Schwab2011-09-121-135/+3
|
* Simplify malloc initializationUlrich Drepper2011-09-101-0/+1
| | | | | | Singificantly reduce the code needed at malloc initialization. In the process getpagesize is simplified by always initializing GLRO(dl_pagesize).
* Relocate objects in dependency orderAndreas Schwab2011-08-301-8/+4
|
* Improve printing of lookup scopesUlrich Drepper2011-08-161-1/+1
| | | | | | The scope of a new object should be printed earlier and when the scope of an already loaded object is extended only the changes should be printed.
* Warning patrol.Roland McGrath2011-08-141-1/+1
|
* Implement LD_DEBUG=scopesUlrich Drepper2011-08-131-2/+14
|
* Handle DSOs without any dependency in ld.soUlrich Drepper2011-05-301-1/+0
|
* One more thinko in CLUlrich Drepper2011-05-301-0/+1
|
* Prevent loader from loading itselfUlrich Drepper2011-05-301-0/+8
|
* Move setting variable in relro data earlier in ld.so.Andreas Schwab2011-02-201-4/+7
|
* Make PowerPC64 default to nonexecutable stackRyan S. Arnold2010-12-191-2/+4
|
* Fix assertion in ld.so, introduced by delayed adding to global list.Ulrich Drepper2010-10-261-1/+1
|
* Fix concurrency problem between dl_open and dl_iterate_phdrAndreas Krebbel2010-10-261-1/+8
|
* Require suid bit on audit objects in privileged programsAndreas Schwab2010-10-241-9/+7
|
* Don't try to free rpath strings allocated during startupAndreas Schwab2010-09-151-0/+4
|
* Don't deadlock in __dl_iterate_phdr while (un)loading objects.Andreas Schwab2010-05-031-0/+1
|
* elf/rtld.c (dl_main) [HAVE_AUX_VECTOR]: Add a cast.Roland McGrath2010-04-051-1/+1
|
* Handle platforms without aux vectorThomas Schwinge2010-03-291-3/+3
|
* ld.so: Adjust the auxv if ld.so is directly invoked.Andreas Krebbel2010-01-151-11/+30
| | | | | | | | If a binary gets invoked by passing it as argument to ld.so the stack still holds the auxiliary vector of ld.so when entering the _start routine of the executable. So the invocation via ld.so is not fully transparent to the executable. This causes problems if the executable wants to scan the auxv itself.
* Implement STB_GNU_UNIQUE handling.Ulrich Drepper2009-07-091-1/+6
| | | | | | | | | Some symbols have to be identified process-wide by their name. This is particularly important for some C++ features (e.g., class local static data and static variables in inline functions). This cannot completely be implemented with ELF functionality so far. The STB_GNU_UNIQUE binding helps by ensuring the dynamic linker will always use the same definition for all symbols with the same name and this binding.
* 2009-04-16 Samuel Thibault <samuel.thibault@ens-lyon.org>Roland McGrath2009-04-171-9/+7
| | | | | * elf/rtld.c (dl_main): Really call _dl_sysdep_start_cleanup after all calls to _dl_relocate_object.
* * elf/dl-open.c: Keep track of used name spaces and only iterate over cvs/fedora-glibc-20090401T0935Ulrich Drepper2009-04-011-2/+3
| | | | | | | | | | | | | | those which are used. * elf/dl-addr.c: Likewise. * elf/dl-caller.c: Likewise. * elf/dl-fini.c: Likewise. * elf/dl-iteratephdr.c: Likewise. * elf/dl-libc.c: Likewise. * elf/dl-load.c: Likewise. * elf/dl-support.c: Likewise. * elf/dl-sym.c: Likewise. * elf/rtld.c: Likewise. * sysdeps/generic/ldsodefs.h: Likewise.
* * elf/dl-load.c: Remove support for systems without MAP_ANON.Ulrich Drepper2009-03-311-7/+1
| | | | | | | * elf/dl-minimal.c: Likewise. * elf/dl-misc.c: Likewise. * elf/rtld.c: Likewise. * sysdeps/generic/ldsodefs.h: Likewise.
* [BZ #9733]Ulrich Drepper2009-03-161-5/+7
| | | | | | | | | | | * elf/dl-load.c (_dl_map_object_from_fd): Only call audit hooks if we are not loading a new audit library. * elf/dl-reloc (_dl_relocate_object): Third parameter is now a bitmask. Only use profiling trampoline for auditing if we are not relocating an audit library. * elf/dl-open.c (dl_open_worker): Adjust _dl_relocate_object call. * elf/rtld.c: Likewise. * sysdeps/generic/ldsodefs.h: Adjust _dl_relocate_object prototype.
* * elf/rtld.c (dl_main): Extend help message for --audit option.Ulrich Drepper2009-03-161-1/+2
|
* * sysdeps/generic/dl-osinfo.h (_dl_setup_stack_chk_guard): TakeUlrich Drepper2009-01-111-9/+9
| | | | | | | | | | | | | | | | | | | one parameter. If non-NULL use it to initialize return value. (_dl_setup_pointer_guard): New function. * sysdeps/unix/sysv/linux/dl-osinfo.h: Likewise. * sysdeps/generic/ldsodefs.h: Declare _dl_random. * elf/rtld.c (security_init): Pass _dl_random to _dl_setup_stack_chk_guard. Call _dl_setup_pointer_guard to initialize pointer_chk_guard. * elf/dl-sysdep.c (_dl_random): New variable. (_dl_sysdep_start): Handle AT_RANDOM. (_dl_show_auxv): Likewise. * elf/dl-support.c (_dl_random): New variable. (_dl_aux_init): Handle AT_RANDOM. * csu/libc-start.c [!SHARED] (libc_start_main): Pass _dl_random to _dl_setup_stack_chk_guard. * elf/elf.h (AT_RANDOM): Define AT_BASE_PLATFORM and AT_RANDOM.
* * sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): Undo allUlrich Drepper2008-08-141-2/+0
| | | | | | | | | | change related to AT_EXECFN. We cannot use that string. * sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Remove _dl_execfn member. * elf/dl-support.c: Remove _dl_execfn variable. (_dl_aux_init): Remove handling of AT_EXECFN. * elf/dl-sysdep.c (_dl_sysdep_start): Remove handling of AT_EXECFN. * elf/rtld.c (process_envvars): Remove use of __ASSUME_AT_EXECFN.
* * elf/elf.h: Define AT_EXECFN.Ulrich Drepper2008-07-241-0/+2
| | | | | | | | | | | | | | | | * elf/rtld.c [!__ASSUME_AT_EXECFN] (process_envvars): Don't handle LD_ORIGIN_PATH. * elf/dl-sysdep.c (_dl_sysdep_start): Handle AT_EXECFN. * elf/dl-support.c: Define _dl_execfn. Don't define _dl_origin_path if __ASSUME_AT_EXECFN is defined. (_dl_aux_init): Handle AT_EXECFN. * sysdeps/unix/sysv/linux/kernel-features.h: Define __ASSUME_AT_EXECFN for 2.6.27 and up. * sysdeps/generic/ldsodefs.h (rtld_global_ro): Add _dl_execfn. Don't define _dl_origin_path if __ASSUME_AT_EXECFN is defined. * sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): Use _dl_execfn if available and avoid compatibility code if __ASSUME_AT_EXECFN is defined.
* [BZ #5786]Ulrich Drepper2008-03-081-1/+4
| | | | | | | | | | | | | * elf/dl-sysdep.c: Undefine ROUND after use. * sysdeps/generic/ldsodefs.h [HAVE_DL_DISCOVER_OSVERSION] (struct rtld_global_ro): Add _dl_tls_get_addr_soft element. * elf/rtld.c (rtld_global_ro): Initialize _dl_discover_osversion. * sysdeps/unix/sysv/linux/dl-osinfo.h: Move _dl_discover_osversion to ... * sysdeps/unix/sysv/linux/dl-sysdep.c: ...here. * sysdeps/unix/sysv/linux/dl-sysdep.h: Declare _dl_discover_osversion if necessary. * sysdeps/unix/sysv/linux/sysconf.c: Handle _SC_ARG_MAX here.
* * sysdeps/generic/ldsodefs.h (struct rtld_global_ro): AddUlrich Drepper2008-03-081-2/+3
| | | | | | | | | | | _dl_tls_get_addr_soft element. * elf/rtld.c (rtld_global_ro): Initialize _dl_tls_get_addr_soft. * elf/Versions (ld): Don't export _dl_tls_get_addr_soft. * dlfcn/dlinfo.c (dlinfo_doit): Access dl_tls_get_addr_soft through GLRO. * elf/dl-iteratephdr.c (__dl_iterate_phdr): Likewise. * elf/dl-tls.c (_dl_tls_get_addr_soft): Use attribute_hidden instead of internal_function.