matt
86d6d815ae
Make sure to call dlerror() to clear any error messages after the relocations
...
are done and there are no errors. This will prevent spurious undefined weak
symbol errors being returned by dlerror().
Fixes PR bin/39240.
2008-07-29 16:27:01 +00:00
skrll
dccd9ddf7f
RCSID police
2008-07-24 06:51:58 +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
christos
d3b459e727
abort() if we are trying to use an undefined weak symbol from the plt. Remove
...
check from relocate_plt_object() since we cannot return _rtld_sym_zero anymore.
Code from gimpy.
2008-07-23 18:16:42 +00:00
christos
0d33a45b97
handle sym_zero like x86_64; other ports might need this too.
2008-07-22 22:27:07 +00:00
christos
56e895e29f
deal specially with sym_zero, returned by a weak symbol that was not found,
...
by retrieving it's name instead of printing random garbage.
2008-07-21 20:19:28 +00:00
ad
156176be13
Fix error in previous. From nakayama@.
2008-06-05 00:03:20 +00:00
ad
53c5ea5da9
Don't bother unmapping the ELF header unless it overlaps the first load
...
section.
2008-06-03 19:32:32 +00:00
ad
9795e155ec
__progname isn't const.
2008-06-03 19:22:07 +00:00
ad
36b49f84f3
Try read() on ld.so.conf. If the file is small, it avoids stat+mmap+munmap.
2008-06-03 18:36:59 +00:00
wiz
488200e6ea
Remove trailing whitespace and superfluous .Pp.
2008-05-25 19:48:35 +00:00
martin
11a6dbe728
Convert TNF licenses to new 2 clause variant
2008-04-30 13:10:46 +00:00
martin
ce099b4099
Remove clause 3 and 4 from TNF licenses
2008-04-28 20:22:51 +00:00
yamt
8c93baa802
constify
2008-01-14 08:53:42 +00:00
yamt
8a58f724e1
tabify
2008-01-14 08:52:16 +00:00
christos
8fb14189dc
make this compile again.
2007-12-29 01:44:03 +00:00
christos
716fde8fa0
simplify; mapbase == vaddrbase from the PaX author.
2007-12-28 19:36:21 +00:00
christos
8636ab52f6
Deal with ASLR PIE executables, by recognizing that phdr != phdr->v_addr
...
for PT_PHDR headers when the program has been loader to a vaddr other than
then one specified (a randomized one), and modifying the relocation base
address appropriately (idea from elad)
2007-12-26 21:14:41 +00:00
christos
8b0637156f
No need for stack_protector.o if USE_FORT is no.
...
XXX: compiling a binary with -Wl,--dynamic-linker,${NETBSDSRCDIR}/libexec/...
results in stack overflow. Investigate!
2007-12-26 21:11:52 +00:00
christos
5ad1b72097
print the symbol we are seaching for [when debugging]
2007-12-26 21:10:03 +00:00
ad
558a5ffd0f
rtld changes for PR bin/37347:
...
- Apply patch from J.T. Conklin to execute .init/.fini functions in order.
- Support DF_1_INITFIRST and mark libc with DF_1_INITFIRST. Shared libs
should be recording a dependency on libc, but it's too late to do that.
Ok christos@.
2007-12-07 20:34:04 +00:00
christos
496f9be3e8
support %z
2007-11-24 18:32:26 +00:00
ad
71ac015ebf
stack_protector.c has moved.
2007-11-13 15:34:51 +00:00
skrll
29353f93e2
Build a local copy of exit that doesn't call __cxa_finalize. It's not
...
needed and drags in a lot of libc via free.
2007-10-30 17:19:59 +00:00
christos
ed1a8fea8d
build stack protector locally so that we don't call syslog_ss that results
...
in 1/2 of libc dragged in.
2007-10-29 20:36:31 +00:00
ad
bf4b000d16
- Don't use the names malloc/free/etc, since we can end up pulling in libc's
...
malloc which is not what we want.
- Remove ancient memory compaction hack. Realloc on free memory is now an
error again (from joerg@).
Ok christos@.
2007-10-05 22:21:07 +00:00
christos
596c6ec5db
provide xrealloc, and don't cast and use malloc and realloc directly.
2007-09-27 17:52:16 +00:00
christos
2cce1500a2
If we are using SSP, compile in a separate copy of the stack protector
...
functions so that we don't end up calling syslog_ss() which drags in
a large portion of libc. Found by skrll...
2007-09-27 17:51:40 +00:00
christos
6f875d32e2
Don't trust AT_SUN_EXECNAME, if we are set{u,g}id.
2007-09-21 13:57:09 +00:00
christos
6eac115581
delete debug printf
...
make regress compile again.
2007-09-20 19:42:53 +00:00
christos
40cfdb5e3a
Use AT_SUN_EXECPATH instead of argv[0] for the executable name. This needs
...
kernel support, which is not there yet, thus $ORIGIN is broken at this time.
This is ok, nothing uses it yet.
2007-09-20 14:14:25 +00:00
cube
f7779133cd
Don't remove the last component of filename before calling
...
_rtld_digest_dynamic: it is done in expand(), and doing it twice is once
too much. This fixes $ORIGIN expansion for dependencies.
2007-09-20 07:50:32 +00:00
tnn
ea0fc2f827
5 is not a valid version for .Nx, so change it to 5.0.
2007-09-13 21:32:14 +00:00
joerg
ad61ac15d2
Don't define bool, false and true. Use stdbool.h.
2007-09-02 09:57:16 +00:00
christos
2ffe4b875f
Use an elf note to handle pax arguments. This is a temporary solution to
...
avoid wasting OS flag bits. In the future we'll probably use fileassoc to
achieve this (once there is a way to make fileassoc persistent) or in the
shorter term libelf, so that we can add and remove the note on demand instead
of burning bits on each binary. Of course since this is a tool, this means
that we'll need to think about how to handle libelf...
2007-06-24 20:35:36 +00:00
christos
3b320420fe
fix a comment.
2007-05-18 21:46:39 +00:00
christos
04ee85ad50
Support Solaris-like $ORIGIN etc. expansions in paths.
2007-05-18 21:44:08 +00:00
scw
596a371d09
Remove a test for defined(__SH5__).
2007-04-08 10:02:35 +00:00
scw
5764a76889
Remove support for NetBSD/{,evb}sh5.
2007-04-08 09:35:21 +00:00
matt
549524f84f
Deal with MKPICLIB != no.
2007-03-15 17:27:15 +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
matt
364993dede
Don't use cached results for plt lookups (nor save them).
2007-02-23 01:16:32 +00:00
matt
4d10e5e667
Make the COMBRELOC support generic.
2007-02-22 18:57:48 +00:00
martin
3cc1de3d7b
Add COMBRELOC support
2007-02-15 19:42:13 +00:00
skrll
1fddd99f52
Provide COMBRELOC support for amd64 in answer to PR/35589.
...
Some statistics:
base + COMBRELOC
$ time (for i in `seq 100`;do noatun --help>/dev/null;done)
(; for i in `seq 100`; do; noatun --help > /dev/null; done; ) 148.64s
user 4.82s system 99% cpu 2:33.93 total
base + DF caching:
$ time (for i in `seq 100`;do noatun --help>/dev/null;done)
(; for i in `seq 100`; do; noatun --help > /dev/null; done; ) 151.15s
user 5.53s system 99% cpu 2:37.23 total
base:
$ time (for i in `seq 100`;do noatun --help>/dev/null;done)
(; for i in `seq 100`; do; noatun --help > /dev/null; done; ) 492.36s user
5.34s system 99% cpu 8:19.17 total
2007-02-15 15:44:28 +00:00
wiz
09cb1d6f1c
s/existance/existence/, from Zafer.
2006-11-24 22:52:16 +00:00
christos
aac134252a
From defend dot the dot world at gmail dot com: Sanitize environment variables
...
for set{u,g}id binaries, so that in case they are playing with set{u,g}id
and exec'ing other binaries they don't get affected by the
LD_{PRELOAD,DEBUG,LIBRARY_PATH} environment setup. We leave LD_BIND_NOW alone.
There are no binaries affected in the base system.
2006-11-22 21:46:36 +00:00
skrll
6f388cd224
Create _rtld_relocate_plt_object and use it in _rtld_bind and
...
_rtld_relocate_plt_objects.
No functional change.
2006-10-17 08:33:36 +00:00
skrll
152e43d87a
Support unaligned DIR32 relocs.
...
Closes PR 18293
2006-10-17 08:28:06 +00:00
skrll
edf13fb5fb
Reformat a comment.
2006-10-16 13:53:09 +00:00