Commit Graph

426 Commits

Author SHA1 Message Date
Andreas Schwab
774f928582 Remove second argument from TLS_INIT_TP macro 2014-05-27 14:48:46 +02:00
Andreas Schwab
3d8c8bff79 Remove last use of USE___THREAD 2014-05-14 09:49:00 +02:00
Roland McGrath
44c4e5d598 Use __ehdr_start, when available, for rtld to get its own headers. 2014-03-13 10:38:27 -07:00
Paul Pluzhnikov
798212a013 2014-03-12 Paul Pluzhnikov <ppluzhnikov@google.com>
[BZ #16381]

	* elf/Makefile (tests): Add tst-pie2.
        (tests-pie): Add tst-pie2.
	* elf/tst-pie2.c: New file.
	* elf/dl-load.c (_dl_map_object_from_fd): Assert correct l_type
	for ET_EXEC.
	* elf/rtld.c (map_doit): Load executable as lt_executable.
	(dl_main): Likewise.
2014-03-12 15:58:39 -07:00
Carlos O'Donell
d050367659 BZ #16613: Support TLS in audit libraries.
This commit fixes a bug where the dynamic loader would crash
when loading audit libraries, via LD_AUDIT, where those libraries
used TLS. The dynamic loader was not considering that the audit
libraries would use TLS and failed to bump the TLS generation
counter leaving TLS usage inconsistent after loading the audit
libraries.

https://sourceware.org/ml/libc-alpha/2014-02/msg00569.html
2014-02-25 13:18:15 -05:00
Ondřej Bílka
a1ffb40e32 Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
Allan McRae
d4697bc93d Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Paul Pluzhnikov
5c3499508e Adjust AT_EXECFN when using explicit loader invocation.
2013-11-18  Paul Pluzhnikov  <ppluzhnikov@google.com>

	* elf/Makefile (tst-auxv): New test.
	* elf/tst-auxv.c: New
	* elf/rtld.c (dl_main): Adjust AT_EXECFN
2013-11-18 15:11:55 -08:00
Ondřej Bílka
17c8c3dc72 Remove unused NONTLS_INIT_TP. 2013-11-03 18:15:24 +01:00
Michael Stahl
4db5b08f91 Print the reason why preloading failed in do_preload() 2013-10-20 10:34:09 +02:00
Siddhesh Poyarekar
b937534868 Avoid crashing in LD_DEBUG when program name is unavailable
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.
2013-05-29 21:34:12 +05:30
Roland McGrath
7775448e57 Fix NEED_DL_SYSINFO_DSO conditionals. 2013-03-01 14:44:44 -08:00
Joseph Myers
568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
H.J. Lu
9cee558564 Set up the data structures for vDSO in libc.a 2012-10-05 10:20:39 -07:00
Roland McGrath
f57f805541 Clean up conditionalize of ld.so.cache support. 2012-10-03 16:13:14 -07:00
H.J. Lu
9bac1d8624 Define VERSYMIDX/VALIDX/ADDRIDX in ldsodefs.h 2012-09-28 11:30:57 -07:00
Dmitry V. Levin
f3fd569c36 rtld: limit self loading check to normal mode only
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.
2012-09-19 21:28:13 +00:00
Roland McGrath
bea9b19322 Fix lots of bitrot for stub configurations. 2012-07-30 16:34:33 -07:00
Gary Benson
815e6fa3e0 Add SystemTap static probes to the runtime linker. [BZ #14298] 2012-07-27 14:03:20 +01:00
Andreas Schwab
0479b305c5 Fix invalid memory access in do_lookup_x.
[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.
2012-06-22 11:10:31 -07:00
Roland McGrath
ceb809dcae Use _dl_fatal_printf instead of a private variant. 2012-05-14 16:10:12 -07:00
Siddhesh Poyarekar
73d65cc378 New ld.so argument --inhibit-ldcache to disable ld.so.cache lookup
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.
2012-04-11 00:13:52 +05:30
David S. Miller
ff9f1c5f32 Fix DL_DEBUG_UNUSED to elide the VDSO and handle PLT references properly.
* 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.
2012-04-05 05:20:37 -04:00
H.J. Lu
eb96ffb07d Move stdio-common/_itoa.h to sysdeps/generic 2012-03-20 16:00:23 -07:00
Marek Polacek
1f393a11f6 Always set l_used for vDSO. 2012-02-29 15:28:38 +01:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Andreas Schwab
3a62d00d40 Don't call ifunc functions in trace mode 2011-10-05 14:35:40 +02:00
Andreas Schwab
48b67d71ec Also relocate in dependency order when doing symbol dependency testing 2011-09-14 13:29:24 +02:00
Andreas Schwab
995a80dfbc Only use USE___THREAD when defined 2011-09-13 10:21:47 +02:00
Ulrich Drepper
037e9fe21c Revert "Remove last use of USE___THREAD"
This reverts commit de82006d43.

Conflicts:

	ChangeLog
2011-09-12 16:20:40 -04:00
Andreas Schwab
de82006d43 Remove last use of USE___THREAD 2011-09-12 13:37:57 +02:00
Ulrich Drepper
02d46fc4b9 Simplify malloc initialization
Singificantly reduce the code needed at malloc initialization.  In
the process getpagesize is simplified by always initializing
GLRO(dl_pagesize).
2011-09-10 21:47:36 -04:00
Andreas Schwab
2bc174332b Relocate objects in dependency order 2011-08-30 15:37:54 +02:00
Ulrich Drepper
174baab3f9 Improve printing of lookup scopes
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.
2011-08-16 16:11:03 -04:00
Roland McGrath
5e4287d16f Warning patrol. 2011-08-14 15:59:11 -07:00
Ulrich Drepper
73d7af4f4c Implement LD_DEBUG=scopes 2011-08-13 22:24:08 -04:00
Ulrich Drepper
6b1e7d1992 Handle DSOs without any dependency in ld.so 2011-05-30 12:31:25 -04:00
Ulrich Drepper
4997db7429 One more thinko in CL 2011-05-30 11:57:50 -04:00
Ulrich Drepper
01f16ab0a5 Prevent loader from loading itself 2011-05-30 01:55:40 -04:00
Andreas Schwab
e23fe25b33 Move setting variable in relro data earlier in ld.so. 2011-02-20 07:24:56 -05:00
Ryan S. Arnold
30950a5fd2 Make PowerPC64 default to nonexecutable stack 2010-12-19 22:49:01 -05:00
Ulrich Drepper
fa41c84d73 Fix assertion in ld.so, introduced by delayed adding to global list. 2010-10-26 13:01:46 -04:00
Andreas Krebbel
f09677388a Fix concurrency problem between dl_open and dl_iterate_phdr 2010-10-26 00:23:14 -04:00
Andreas Schwab
8e9f92e9d5 Require suid bit on audit objects in privileged programs 2010-10-24 21:43:15 -04:00
Andreas Schwab
bc5fb0374c Don't try to free rpath strings allocated during startup 2010-09-15 07:20:57 -07:00
Andreas Schwab
5a2a1d7504 Don't deadlock in __dl_iterate_phdr while (un)loading objects. 2010-05-03 08:08:28 -07:00
Roland McGrath
4dd019e3a1 elf/rtld.c (dl_main) [HAVE_AUX_VECTOR]: Add a cast. 2010-04-05 19:44:16 -07:00
Thomas Schwinge
bc58236c65 Handle platforms without aux vector 2010-03-29 15:13:53 -07:00
Andreas Krebbel
3a56ea2673 ld.so: Adjust the auxv if ld.so is directly invoked.
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.
2010-01-15 09:09:35 -08:00
Ulrich Drepper
415ac3df9b Implement STB_GNU_UNIQUE handling.
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-07-09 23:52:22 -07:00