martin
3a4af49105
Add support for 64 bit TLS relocations.
2011-03-30 08:37:52 +00:00
joerg
cb1cd7e860
Add basic locking to ld.elf_so.
2011-03-25 18:07:04 +00:00
skrll
8f77c5159b
Comment reformat.
2010-09-24 12:00:10 +00:00
skrll
2c56298dd9
Wrap long line.
2010-09-24 11:59:28 +00:00
skrll
09601c884f
Whitespace.
2010-09-24 11:57:11 +00:00
joerg
f40b256f09
Reduce header pollution for mdreloc.c. Make Obj_Entry argument of
...
_rtld_relocate_nonplt_objects non-const in preparation for TLS support.
2010-08-06 16:33:17 +00:00
christos
12bd4dbd45
PR/39240: Satoshi Suetake: Don't fail when attempting to resolve weak symbols
...
when we are doing immediate binding, leave them alone and they will be dealt
with later during lazy binding. From skrll@
2010-01-13 20:17:21 +00:00
martin
c131490c29
Use the new Elf_SOff (signed offset) type to fix a few signed/unsigned
...
problems.
2009-05-22 21:47:46 +00:00
lukem
b4fba76b41
Fix const issues (cast const pointers to "const uint8_t *" instead of "caddr_t")
...
NOTE: change based on ../i386/mdreloc.c 1.27
XXX: not compile tested
2009-03-16 02:46:47 +00:00
matt
38bdc8954f
Refactor common code to _rtld_relocate_plt_object to i386 and arm so they
...
act like the other versions.
In _rtld_bind, if the result is 0, call _rtld_die.
Initialize _rtld_sym_zero.st_value to -_rtld_objself.maprelocbase. Now when
the symbol is resolved, st_value + maprelocbase will equal 0 and the above
check in _rtld_bind will fire and a call to NULL will be avoided.
2008-07-24 04:39:25 +00:00
martin
ce099b4099
Remove clause 3 and 4 from TNF licenses
2008-04-28 20:22:51 +00:00
matt
ee98d74a6b
Remove MD COMBRELOC support since it's now MI.
...
Enable COMBRELOC for all arches
2007-02-23 01:17:11 +00:00
martin
3cc1de3d7b
Add COMBRELOC support
2007-02-15 19:42:13 +00:00
mrg
084c052803
quell GCC 4.1 uninitialised variable warnings.
...
XXX: we should audit the tree for which old ones are no longer needed
after getting the older compilers out of the tree..
2006-05-10 21:53:14 +00:00
perry
ae6ae2c362
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
2005-12-24 20:56:41 +00:00
skrll
680596d08e
Add __RCSID.
2005-08-20 19:01:16 +00:00
skrll
9f486044a0
KNF
2005-08-15 10:52:42 +00:00
lukem
3ed9ffcae1
Explicitly prefix ld(1) options in LDFLAGS with "-Wl," rather than
...
using the ${LDFLAGS:@F@-Wl,$F@} make substitution because that breaks
if LDFLAGS is already set.
2005-06-04 16:17:17 +00:00
martin
35130888e4
Add LD_BIND_NOW support for sparc64.
2005-01-05 09:16:03 +00:00
skrll
d93f13855a
Move common LDFLAGS into Makefile from arch/*/Makefile.inc
2004-02-21 15:56:03 +00:00
skrll
151426159b
Whitespace.
2004-02-20 20:58:24 +00:00
skrll
5f573ab68d
ANSIfy and de-__P().
2003-07-24 10:12:25 +00:00
petrov
458dbd70ac
Fix alignment problem in debug output.
...
Happens only under RTLD_DEBUG_RELOC.
2003-05-23 20:13:50 +00:00
mycroft
33131cb294
Update copyright.
2003-03-01 15:14:59 +00:00
mycroft
eea1001a73
Adjust for the fact that the GOT is all 0s in new binutils -- do the trick of
...
disassembling a call to _DYNAMIC to determine its real address, and using the
first entry of the GOT as its base-relative address.
It's evil, but it works.
2003-02-27 05:39:42 +00:00
thorpej
b777dba640
_rtld_bind(): Don't use "rela" until after we've (potentially) adjusted
...
it.
2002-10-18 20:35:25 +00:00
mycroft
1c495430dd
Remove the `self' args to _rtld_relocate_objects() and
...
_rtld_relocate_nonplt_objects().
2002-09-26 20:42:10 +00:00
mycroft
ee398b4d07
Remove vestigal comments about _rtld_bind_start_0() -- it works now.
2002-09-26 02:25:57 +00:00
mycroft
26043b23b0
Make room for the argument save area in _rtld_start(). The PLT stub already
...
made room from _rtld_bind_start(), but add a comment explaining the instruction
it uses.
2002-09-26 02:14:10 +00:00
mycroft
0079455251
Add a comment explaining some of the magick.
2002-09-25 22:29:12 +00:00
mycroft
f6db390b5a
Fix a bug that caused PLT entries to effectively not be patched.
...
Also, fix more bugs in the large-PLT case -- my test program works now.
2002-09-25 22:25:11 +00:00
mycroft
d4e6f3ff08
Swap registers %o0 and %o1 in the binder stub to say one instruction.
...
Fix an obvious bug in the 64-bit PLT fixup: the SLLX was by 12 bits, when it
should be 32.
Fix what *appear* to be two bugs in the >32768 PLT entry stub:
* One division was wrong (/14 rather than /24).
* We need to subtract 1048576 (to make the offset relative to the beginning of
the upper section), not add it.
This path is still untested, and buggy.
2002-09-25 16:35:08 +00:00
mycroft
afb1082706
_rtld_bind_start_0_stub() is not actually used.
2002-09-25 14:36:37 +00:00
mycroft
028dd5150a
Push a multiple from _rtld_bind_start_[01]() to _rtld_bind().
2002-09-25 14:35:39 +00:00
mycroft
729925dfb9
Push the _rtld_bind() interface into MD code -- it's just a trivial wrapper
...
anyway.
2002-09-25 07:27:49 +00:00
mycroft
56288dc0e5
%ld -> %p
2002-09-24 13:59:31 +00:00
mycroft
9d8c69b929
Remove vestiges of VARPSZ.
2002-09-24 12:12:07 +00:00
mycroft
a3b892d178
Nuke -DRTLD_RELOCATE_SELF and `dodebug' from orbit.
2002-09-12 22:56:28 +00:00
mycroft
de4565ee93
Prototype different functions.
2002-09-12 20:24:03 +00:00
mycroft
547bc13b97
_rtld_bind_start() is not used in MI code, so declare it in the MD code.
2002-09-12 20:20:58 +00:00
mycroft
ebf50cdfbc
Update comments.
2002-09-12 17:18:37 +00:00
mycroft
5ee0e5e1c4
Pass the calculated relocation offset down to _rtld().
2002-09-12 17:07:25 +00:00
mycroft
403e42f619
Do self-relocation similar to sparc.
2002-09-11 19:46:40 +00:00
mycroft
492895a9f9
Expand the comment about the R_TYPE(RELATIVE) special-case, as it's not quite
...
obvious from the code. Also, just do it all the time, as an optimization.
2002-09-06 15:51:23 +00:00
mycroft
3eee01c5b9
Make the reloc tables const.
2002-09-06 15:32:56 +00:00
mycroft
6f0fac5efa
Pass down an additional flag to _rtld_relocate_nonplt_objects() which
...
indicates whether we're relocating ld.elf_so itself. Use this in some places
rather than hackish tests on `dodebug'. (The Alpha and HPPA `dodebug' tests
were actually noops, because RTLD_RELOCATE_SELF is not set, and therefore
dodebug is always true.)
2002-09-06 15:17:53 +00:00
mycroft
b97e4047b7
Re-poison a lot of consts, now that the mark shite is gone.
2002-09-06 03:12:04 +00:00
mycroft
a04012e731
Split _rtld_relocate_plt_object() into two MD functions:
...
* _rtld_relocate_plt_lazy() fixes up all the relocs pointing to the PLT. (On
most platforms it just does a simple base-relative fixup; on SPARC it does
nothing.)
* _rtld_relocate_plt_object() does immediate binding for a PLT entry.
The basic gist is that this saves a bit of time on SPARC (where the iteration
through the pltrela table was gratuitous), and a little less time on all other
platforms. A whole lot of #ifdef'ed crap is moved out of reloc.c, too.
NOT tested on: hppa sh x86_64
2002-09-06 03:05:35 +00:00
mycroft
5f016a11ef
Repair a slight biff I made earlier -- do not exit the loop in
...
_rtld_relocate_nonplt_objects() early.
2002-09-06 02:01:39 +00:00
mycroft
ac191986f3
Partially fix up some debug printf()s that don't need to use defobj.
2002-09-05 21:31:30 +00:00