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
1dc277048c
Fix caller information of NSS modules
2011-08-13 12:47:47 -04:00
Ulrich Drepper
07df30d995
Better check for last patch
...
Don't indicate that dependencies of dynamically loaded objects are
also dynamically loaded.
2011-08-12 13:32:10 -04:00
Ulrich Drepper
9ac533d31b
Better debug information from ld.so
...
Differentiate between loading as a dependency and loading on request.
2011-08-12 13:20:11 -04:00
Ulrich Drepper
5644ef5461
Fix check for AVX enablement
...
The AVX bit is set if the CPU supports AVX. But this doesn't mean the
kernel does. Add checks according to Intel's documentation.
2011-07-20 21:21:03 -04:00
Marek Polacek
c8835729b8
_dl_sort_fini: Remove unused argument
2011-07-19 20:27:43 -04:00
Marek Polacek
8991e135f7
elf/cache.c: Remove unnecessary condition
2011-07-19 20:17:51 -04:00
Roland McGrath
a6928d5102
Fix remaining explicit uses of shlib.lds to use $(shlib-lds).
2011-07-14 20:49:27 -07:00
Roland McGrath
31fffa6b07
Make asserts accept DT_FLAGS/DT_FLAGS_1 with zero flags.
2011-07-02 15:12:19 -07:00
Roland McGrath
4e34ac6a1e
Use -defsym=_begin=0 instead of linker script munging.
2011-07-02 15:11:43 -07:00
Roland McGrath
78a7eee7fa
Fix missing .ctors/.dtors lead word in soinit
2011-06-27 20:26:54 -07:00
Ulrich Drepper
68468076c2
We don't use linkobj/libc.so at runtmie, no need to check for text rels
...
This also works around a toolchain issu.
2011-06-26 03:04:07 -04:00
Ulrich Drepper
b36b153d5d
Revert unwanted patch
2011-06-21 12:40:22 -04:00
Ulrich Drepper
75d39ff212
Add missing DL_CALL_FCT
2011-06-21 11:23:25 -04:00
David S. Miller
42675c6ff0
Add an elf_ifunc_invoke interface so that architectures can implement
...
the ifunc resolver calls however they wish.
2011-06-20 19:56:40 -07:00
Roland McGrath
decd4e50b6
Better detect total failure of linker script generation.
2011-06-10 23:37:35 -07:00
Roland McGrath
5615eaf264
Quash some new warnings from GCC 4.6.
2011-06-10 22:44:20 -07:00
Roland McGrath
b350afabd9
Revert -r -> -Wl,-r change.
2011-06-10 10:34:45 -07:00
Roland McGrath
28368601e3
Use -Wl,-r instead of plain -r.
2011-06-09 17:07:50 -07:00
Ulrich Drepper
11988f8f96
Add pldd program
2011-06-09 07:06:21 -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
Ulrich Drepper
0464f746e8
Don't build AVX tests with old compilers
2011-05-29 21:25:58 -04:00
Ulrich Drepper
b0316e569f
Fix bug in last checkin which left ldd uninstalled
2011-05-28 14:22:06 -04:00
Ulrich Drepper
a917104752
Add sotruss program
2011-05-28 13:20:12 -04:00
Ulrich Drepper
de7ce8f171
Fix flags parameter value passed to pltenter and pltexit
2011-05-22 21:30:31 -04:00
Martin von Gagern
d26dfc60ed
Fix handling of static TLS in dlopen'ed objects
...
When dynamically loading a library along with several dependencies, calls to
_dl_add_to_slotinfo and _dl_update_slotinfo can become intermixed. As a
consequence, _dl_update_slotinfo will update the generation counter of the dtv
although not all of the slots belonging to that generation have been added.
Subsequent calls to _dl_add_to_slotinfo will add more slots to the same
generation, for which no storage will be allocated, as the dtv generation
checks will claim no work is necessary. This will lead to uninitialized dtv
entries and will likely cause a SIGSEGV when thread local variables are
accessed.
2011-05-14 21:25:43 -04:00
Andreas Schwab
da62f81bdd
Add support for generated PIE link rules
2011-05-13 23:31:43 -04:00
Piotr Bury
320a5dc07b
Fix resizing able for unique symbols when adding symbol for copy relocation
2011-05-12 21:59:09 -04:00
Ulrich Drepper
22836f52e3
Fix up testing for valid $ORIGIN use
2011-05-11 00:15:38 -04:00
Alan Modra
66bdbaa452
static tls memory leak on TLS_DTV_AT_TP archs
2011-05-07 21:27:51 -04:00
Ulrich Drepper
47c3cd7a74
Allow $ORIGIN to reference trusted directoreis in SUID binaries.
2011-05-07 11:44:26 -04:00
Andreas Schwab
00ee369c1c
ldconfig: don't crash on empty path in config file
2011-05-03 13:44:25 -04:00
Jim Meyering
ded5b9b7c7
Remove doubled words.
2011-04-22 21:34:32 -04:00
Richard Sandiford
e3d8f58414
elf.h: Define R_ARM_IRELATIVE reloc type.
2011-04-19 09:38:42 -07:00
Ulrich Drepper
e6c6149412
Fix memory leak in TLS of loaded objects.
2011-04-10 22:43:01 -04:00
Andreas Schwab
34fe483e12
Don't leave empty element in rpath when skipping an element
2011-04-09 14:55:26 -04:00
Ulrich Drepper
028478fa40
Fix copy relocations handling of unique objects.
2011-03-10 12:51:33 -05:00
Ulrich Drepper
33f85a3fb9
Don't run tests checking xecutable stack when SELinux is enforcing.
2011-03-10 03:18:21 -05:00
Ulrich Drepper
6a5ee1029b
Fix loading first object along a path when tracing.
2011-03-06 00:01:50 -05:00
Andreas Schwab
4bff6e0175
Fix memory leak in dlopen with RTLD_NOLOAD.
2011-02-25 20:49:48 -05:00
Andreas Schwab
f2092faf2b
Don't crash when dependencies are missing
2011-02-25 16:51:24 -05:00
Andreas Schwab
e23fe25b33
Move setting variable in relro data earlier in ld.so.
2011-02-20 07:24:56 -05:00
Nathan Sidwell
d3f02e1012
elf/elf.h: Add new ARM TLS relocs.
2011-02-18 11:09:18 -08:00
Ulrich Drepper
e943389325
Remove use of ranlib.
2011-02-15 14:52:29 -05:00
Roland McGrath
a0bf67cca2
Fix some warning nits.
2011-02-04 10:53:51 -08:00
H.J. Lu
435b95ebd0
AVX audit test failures with gcc 4.6
2011-02-02 19:28:44 -05:00
Ulrich Drepper
8517b15ee8
Fix passing symbol value to pltexit callbacks when ld.so auditing.
2011-02-02 11:50:49 -05:00
Ulrich Drepper
968dad0ab1
Fix ordering of DSO constructors and destructors.
2011-01-19 16:00:11 -05:00
Ulrich Drepper
5d5732b0dc
Run IFUNC tests unless no support build in at all.
2011-01-18 12:30:07 -05:00
Ulrich Drepper
c0dafcf176
Update copyright year.
2011-01-17 15:08:10 -05:00
Andreas Schwab
1f20b93a6c
Fix missing dependencies and ensure correct CPPFLAGS.
2011-01-16 21:32:07 -05:00
Andreas Schwab
68dc949774
Fix check-execstack test
2011-01-13 16:21:55 -05:00
Ulrich Drepper
0876917582
Fix assertion when handling DSTs during auditing.
2011-01-12 23:10:00 -05:00
Ulrich Drepper
8bdf4e6eb8
Pretty printing.
2010-12-24 20:15:45 -05:00
H.J. Lu
4a531bb0b3
Remove .ctors' and
.dtors' output sections
2010-12-24 20:14:37 -05:00
Ryan S. Arnold
30950a5fd2
Make PowerPC64 default to nonexecutable stack
2010-12-19 22:49:01 -05:00
Petr Baudis
6db52fbb27
Allow aux_cache_file open()ing to fail silently even in the chroot mode.
...
The aux_cache fix of bug 11149 introduced a new bug - normally,
ldconfig -r never cares if the auxiliary cache is not available and
that is not a fatal problem, however this is not the case in case
of ldconfig -r when executed as non-root. In that case, ldconfig -r
fails hard unless var/cache/ldconfig/ exists within the chroot. This
patch fixes that.
Conflicts:
ChangeLog
2010-11-22 12:47:57 -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
bc96fbda27
Work around shortest-stem feature in make 3.82+
2010-10-24 21:42:39 -04:00
Andreas Schwab
22cd1c9bcf
Don't expand DST twice in dl_open
2010-10-24 20:40:14 -04:00
Ulrich Drepper
09fad1a611
Whitespace cleanup.
2010-09-21 13:53:31 -07:00
Andreas Schwab
56801c50d4
Move freeres function from ld.so to libc.so.
2010-09-21 13:52:12 -07:00
Andreas Schwab
bc5fb0374c
Don't try to free rpath strings allocated during startup
2010-09-15 07:20:57 -07:00
Roland McGrath
5dbc3b6cc0
Fix vDSO synthetic hwcap handling so they are not masked out from ld.so.cache matching.
2010-07-20 19:09:50 -07:00
Andreas Schwab
5be9d05d31
Don't pass NULL occation to dl_signal_cerror
2010-07-06 08:09:54 -07:00
Ulrich Drepper
702e8f1450
More linking issues fixed.
2010-07-02 09:49:05 -07:00
Ulrich Drepper
d85f8ff667
Revert unwanted patch. Again.
2010-06-27 19:52:51 -07:00
Ulrich Drepper
a3d731d344
Fix whitespaces.
2010-06-27 19:39:01 -07:00
Kirill A. Shutemov
80da2e093c
Flush cache after solving TEXTRELs if arch requires it.
2010-06-14 17:23:01 -07:00
Ulrich Drepper
b32b8b451b
Don't crash on unresolved weak symbol reference when auditing.
2010-05-21 23:51:18 -07:00
Andreas Schwab
9acbe24da8
Don't crash on unresolved weak symbol reference
2010-05-21 12:51:43 -07:00
Roland McGrath
3f7dcb2b0f
Fix a const warning in ldconfig.
2010-05-07 16:23:03 -07:00
Ulrich Drepper
7dee26605b
Fix ldconfig to handle symlinks in chroot correctly.
2010-05-03 14:04:52 -07:00
Ulrich Drepper
f297602394
Simplify OOM handling in ldconfig.
2010-05-03 13:33:13 -07:00
Ulrich Drepper
49bd556d43
One more bug in ldconfig -r handling.
2010-05-03 10:40:30 -07:00
Andreas Schwab
5a2a1d7504
Don't deadlock in __dl_iterate_phdr while (un)loading objects.
2010-05-03 08:08:28 -07:00
Ulrich Drepper
c739ec3d81
Code cleanup in __dl_iterate_phdr.
2010-05-03 06:34:56 -07:00
Roland McGrath
1d4bf3155f
Link elf/noload test against -ldl.
2010-04-19 15:38:48 -07:00
Andreas Schwab
18a26b301b
Don't crash in trace mode when dependencies are missing
2010-04-14 22:16:06 -07:00
Matt Fleming
3d1020f0cc
elf/elf.h: Add SH specific ELF header flags.
2010-04-13 12:10:31 -07:00
Ulrich Drepper
85997fc3eb
Merge remote branch 'origin/roland/hwcap_mask'
2010-04-08 16:06:54 -07:00
Joseph Myers
afd46a4c7d
elf/elf.h (ELFOSABI_ARM_AEABI): Define.
2010-04-05 20:14:43 -07:00
Roland McGrath
7bfa311ff5
Obey LD_HWCAP_MASK in ld.so.cache lookups.
2010-04-05 19:47:27 -07:00
Roland McGrath
4dd019e3a1
elf/rtld.c (dl_main) [HAVE_AUX_VECTOR]: Add a cast.
2010-04-05 19:44:16 -07:00
Ulrich Drepper
4bc2bcba67
Fix aux cache handling in ldconfig with chroot.
2010-04-05 11:26:43 -07:00
Thomas Schwinge
bc58236c65
Handle platforms without aux vector
2010-03-29 15:13:53 -07:00
Richard Henderson
b1c1949e60
Don't take the address of a void object.
...
GCC 4.5 warns about "extern void _end; &end;".
Use char[] instead, as that also doesn't fall foul
of a target's .sdata optimizations.
Signed-off-by: Richard Henderson <rth@twiddle.net>
2010-03-26 09:16:21 -07:00
Ulrich Drepper
4ad43b62d6
Fix handling of STB_GNU_UNIQUE in LD_TRACE_PRELINKING
2010-03-24 10:14:22 -07:00
Ulrich Drepper
04f2902d9f
Future safety in checking ELF header.
...
If we should use further fields in the e_ident array in the ELF header
of files we want zero to mean the default. Enforce zero for now so
that non-optional features indicated by nonzero values are not go
unnoticed when using an old dynamic linker.
2010-03-18 13:15:27 -07:00
Ulrich Drepper
d8c47894ca
Extended ELF ABI version handling only for Linux.
...
If the OSABI is generic we should not allow the ABI version to be nonzero.
Move all the new functionality into Linux-specific files.
2010-03-16 23:34:59 -07:00
Ulrich Drepper
561470e061
Update copyright year.
2010-03-15 11:50:59 -07:00
Ulrich Drepper
92ad15a8f1
Implement handling of libc ABI in ELF header.
2010-03-15 11:44:58 -07:00
Andreas Schwab
4c35fb65c9
Don't underestimate length of DST substitution
2010-03-12 07:57:19 -08:00
Roland McGrath
4bf7d39245
elf.h: Add missing R_X86_64_*64 relocs.
2010-03-11 00:44:28 -08:00
Ulrich Drepper
3df9903e41
Define new x86-64 relocation symbols
2010-03-04 19:49:04 -08:00
Roland McGrath
f2899a62cf
Define NT_X86_XSTATE constant for ELF core files.
2010-02-28 16:26:27 -08:00
Ulrich Drepper
844c394a05
Fix comment.
2010-02-24 19:27:24 -08:00
Alan Modra
c62cf60c6b
fix powerpc macros in tls-macros.h
2010-02-12 05:32:09 -08:00
David S. Miller
311927f1bd
Sparc STT_GNU_IFUNC support
2010-02-10 07:42:17 -08:00
Maxim Kuvyrkov
bbabf1f73f
Add m68k TLS relocations
2010-02-10 07:24:21 -08:00
Andreas Schwab
db07e962b6
Use correct type when casting d_tag.
2010-01-18 07:24:09 -08:00
Andreas Schwab
7a033a828d
Ignore negative dynamic entry types.
2010-01-18 07:23:23 -08:00
Andreas Krebbel
7760ccced8
/390: Add runtime check for the highgprs kernel feature.
2010-01-15 09:10:44 -08: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
Roland McGrath
d5ea695b42
Add new ELF constant PN_XNUM.
2010-01-07 18:48:32 -08:00
Roland McGrath
4472e1de30
Use NT_GNU_HWCAP instead of literal 2.
2010-01-07 15:43:10 -08:00
Ulrich Drepper
2af6396817
Avoid ELF lookup race.
...
On some architectures the update of the l_used field in the lookup
functions races with setting the other bits in the bitfield. Simply
avoid this and optimize use of l_used in general.
2009-12-15 12:32:27 -08:00
Ulrich Drepper
639d6699e9
Fix up whitespaces.
2009-11-06 09:34:23 -08:00
H.J. Lu
8608ae1f7b
Properly handle STT_GNU_IFUNC symbols in do_sym.
...
do_sym should use DL_FIXUP_VALUE_XXX macros to call IFUNC function.
Otherwise, it won't compile on ia64. This patch fixes it and adds
a test.
2009-11-06 09:30:56 -08:00
Ulrich Drepper
3005703bb9
Add cast in tst-execstack to avoid warning.
2009-10-30 09:26:00 -07:00
Alan Modra
31c759bf37
Uglify IFUNC tests for PPC.
2009-10-30 00:48:54 -07:00
Alan Modra
77799d9d9b
Implement IFUNC for PPC.
2009-10-30 00:39:38 -07:00
Andreas Schwab
bc5e846218
Handle IFUNC symbols in dlsym.
2009-10-21 06:23:42 -07:00
Andreas Schwab
96961bf71d
Fix descriptor leak when calling dlopen with RTLD_NOLOAD
2009-10-07 10:25:38 +02:00
Ulrich Drepper
4fd894620f
Fix missing reloc dependency
...
When DL_LOOKUP_ADD_DEPENDENCY was introduced a few callers of
_dl_lookup_versioned_symbol were not properly adjusted. One of them
survived until now.
2009-09-28 03:19:58 -07:00
H.J. Lu
4e1e2f4247
Support mixed SSE/AVX audit and check AVX only once.
...
This patch fixes mixed SSE/AVX audit and checks AVX only once in
_dl_runtime_profile. When an AVX or SSE register value in pltenter is
modified, we have to make sure that the SSE part value is the same in both
lr_xmm and lr_vector fields so that pltexit will get the correct value
from either lr_xmm or lr_vector fields. AVX-enabled pltenter should
update both lr_xmm and lr_vector fields to support stacked AVX/SSE
pltenter functions.
2009-08-08 10:54:42 -07:00
Andreas Schwab
7bc513cf18
Fix expanding STB_GNU_UNIQUE hash table.
...
An invalid symbol name pointer was entered into the hash table while
enlarging it.
2009-08-07 10:39:55 -07:00
Ulrich Drepper
b48a267b8f
Preserve SSE registers in runtime relocations on x86-64.
...
SSE registers are used for passing parameters and must be preserved
in runtime relocations. This is inside ld.so enforced through the
tests in tst-xmmymm.sh. But the malloc routines used after startup
come from libc.so and can be arbitrarily complex. It's overkill
to save the SSE registers all the time because of that. These calls
are rare. Instead we save them on demand. The new infrastructure
put in place in this patch makes this possible and efficient.
2009-07-29 08:33:03 -07:00
Ulrich Drepper
9655389317
Fix bookkeeping of static TLS block for TLS_TCB_AT_TP architectures.
2009-07-28 21:58:32 -07:00
Ulrich Drepper
87cfd82a1f
Break out _dl_scope_free into its own file.
...
This reduces the coarse static callgraph that can be discovered by
looking at the object files.
2009-07-27 13:23:00 -07:00
Jakub Jelinek
09cd1f5754
Fix STB_GNU_UNIQUE handling for > 30 unique symbols.
...
There were several issues when the initial 31 entries hashtab filled up.
size * 3 <= tab->n_elements is always false, table can't have more elements
than its size. I assume from libiberty/hashtab.c this meant to be check for
3/4 full. Even after fixing that, _dl_higher_prime_number (31) apparently
returns 31, only _dl_higher_prime_number (32) returns 61. And, size
variable wasn't updated during reallocation, which means during reallocation
the insertion of the new entry was done into a wrong spot.
All this lead to a hang in ld.so, because a search with n_elements 31 size
31 wouldn't ever terminate.
2009-07-27 07:25:57 -07:00
Ulrich Drepper
889f847e4a
Define NT_GNU_GOLD_VERSION.
2009-07-26 08:26:43 -07:00
Ulrich Drepper
c15b1d20cd
Minor optimization of unloading prevention patch.
...
References to unique symbols from copy relocations can only come
from executables which cannot be unloaded anyway. Optimize the
code to set the unload flag a bit.
2009-07-23 07:40:56 -07:00
Ulrich Drepper
fe4d2935e8
Fix comment.
2009-07-23 07:37:48 -07:00
Ulrich Drepper
077e7700b3
Some more fixes for the unique symbol handling.
...
The hash value can be zero, so we need a different test for empty
slots. And unify the way we prevent a DSO from being unloaded.
2009-07-23 07:36:34 -07:00
Ulrich Drepper
802fe9a1ca
Handle unloading of DSO with a unique symbol definition.
2009-07-23 07:07:53 -07:00
Ulrich Drepper
55c4ce6885
Remove warning and little optimization.
...
The prototype for _dl_higher_prime_number was missing. While at it,
the function is now marked with internal_function.
2009-07-16 07:18:53 -07:00
Ulrich Drepper
59cbcac015
Fix build issue with modules for audit test on machines != x86-64.
2009-07-15 08:27:19 -07:00
H.J. Lu
b0ecde3a63
Add AVX support to ld.so auditing for x86-64.
2009-07-10 12:04:14 -07:00
Ulrich Drepper
786b74f41a
Remove do-lookup.h.
...
It is not necessary/useful anymore to have the content separate
from dl-lookup.c.
2009-07-10 08:50:33 -07: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
Ulrich Drepper
b4f55afd03
Define STB_GNU_UNIQUE.
2009-07-07 09:53:01 -07:00
Ulrich Drepper
eba0994e75
Clean up code for hash table handling in ld.so.
2009-07-07 09:49:55 -07:00
Ulrich Drepper
a38862a589
Optimize test for valid ELF symbol types in lookup function.
2009-07-06 06:55:57 -07:00
Ulrich Drepper
241e680320
Fix whitespace in last patch.
2009-07-02 04:34:35 -07:00
H.J. Lu
167d5ed5de
Fix handling of xmm6 in ld.so audit hooks on x86-64.
2009-07-02 04:33:12 -07:00
Ulrich Drepper
9618c7c20e
More whitespace cleanups.
2009-06-22 15:11:18 -07:00
Ulrich Drepper
e364e6f118
Clean up whitespaces in last patch.
2009-06-22 15:10:30 -07:00
H.J. Lu
3c30afc862
Add more IFUNC tests.
...
Mostly tests around not-exported IFUNC functions, IFUNC in statically
linked binaries and PIEs, etc.
2009-06-22 15:07:40 -07:00
H.J. Lu
d8366b0970
Use +link-pie Makefile rule to link PIE ifunc tests.
2009-06-17 19:55:18 -07:00
Andreas Schwab
f60ddf9bf7
Don't treat bug reporting message as a format string.
2009-06-16 20:34:55 -07:00
H.J. Lu
435aa54b3b
Consolidate PIE linking Makefile rules.
2009-06-16 09:19:59 -07:00
Jakub Jelinek
0212596218
libc part of prelink IFUNC support.
...
The dl-lookup.c changes are needed for prelink (support in prelink
checked into SVN, tested for both i?86 and x86-64), dl-irel.h just
something I discovered by code inspection.
2009-06-15 07:46:53 -07:00
H.J. Lu
2f083d7511
Test for ELF IFUNC functionality.
2009-06-03 16:21:40 -07:00
Ulrich Drepper
fbb04b35e7
Terminate correct buffer.
...
Little typo could cause additional characters to be printed.
2009-06-03 08:30:35 -07:00