Age | Commit message (Collapse) | Author |
|
ok kurt
|
|
entry momentarily, because another thread might attempt lazy resolve.
ok matthew guenther
|
|
ok matthew@
|
|
memory, we should be able to match other requests for libfoo.so.X.Z
against that same object.
ok kurt, kettenis
|
|
Otherwise the binary assumes that the requested TLS storage has been
allocated and will happily use it, resulting in unwanted memory corruption.
ok guenther@
|
|
_dl_dirdesc struct (containing just the fields ld.so's implementation
actually needs) instead of reusing libc's _dirdesc struct.
Also, switch ldconfig to use futimens() instead of futimes().
ok deraadt@
|
|
ok miod@
|
|
using DT_DEBUG if DT_MIPS_RLD_MAP isn't there. This requires us to make
.dynamic temporarily writable. Fixes debugging of PIE execuables with gdb(1).
ok miod@
|
|
and make it compatible with bsd.lv mandoc and with groff-1.21.
This tweak was originally added for compatibility with groff-1.15,
which is no longer needed.
ok jmc@ kristaps@
|
|
DF_1_NODELETE and DF_1_INITFIRST, as well as DF_1_NOW and DF_1_GLOBAL.
Committing for kurt@ who worked out the final version; ok guenther@ drahn@
|
|
constants are constructed with several instructions rather than
loaded from the data segment, avoiding relocations.
This fixes ld.so with gcc4. From miod@, ok jsg@
|
|
from .init that uses SSE doesn't randomly trigger SIGBUS.
ok drahn@, miod@
|
|
dd_flags is renamed to the placeholder position dd_unused so that
we can spot "broken software" which assumes we have Jan Simon Pendry's
union mounts (we don't have them, and won't have them ever again).
__opendir2 question spotted by matthew
verified to not break ports by sthen
|
|
otherwise double decrement can occur. ok kurt@ timeout on other reviewers.
|
|
|
|
has some issues. Discussed with various, ok drahn@
|
|
|
|
get it in tree now deraadt@, ok by several ports folks. Thanks for the testing.
|
|
|
|
outside the file the call is in. Since the function is empty, gcc
optmizes the call away, breaking the gdb hook needed to resolve symbols in
lazy bound shared libs. Analysis by kettenis@; ok miod@ kettenis@
|
|
it from usage(); if any developer wants to confirm that it will never
be an option, let me know and i'll zap the text entirely;
this is one half of a diff from Amit Kulkarni - i won;t be touching the other
half;
|
|
|
|
for chars.
|
|
|
|
races between ldconfig and ld.so
(simple commit, hours of bug hunt...)
okay kettenis@, deraad@, miod@
|
|
extended word argument slots required by the ABI.
Apparently gcc4 uses them in cases where gcc3 didn't. Fixes segmentation
faults with gcc4 because the space for the slots was colliding with
the space for dl_data that we allocated on the stack.
ok miod@, drahn@
|
|
ok espie@
|
|
library, but other library needs the one loaded. mostly ok kurt@
|
|
sparc has 4 byte long, but needs 8 byte alignment. recently the DIR
struct was changed to contain some off_t, which needs 8 byte alignment.
turns out the allocator calculated the bias for alignment, and then
subtracted out it's private linkage storage afterwards. on hppa this
worked because a 8-byte object can be loaded at a 4-byte boundary; on
all other architectures the situation was either 4/4 or 8/8.
thanks for a bit of help from drahn
|
|
so it works correctly with large offsets (and matches other systems).
This requires adding a new getdirentries syscall, with the old one
renamed to ogetdirentries. All in-tree consumers of getdirentries()
have been updated. Bump libc and libpthread major numbers.
OK and with deraadt@
|
|
|
|
|
|
|
|
always points to a pointer that is initialized to NULL. Consistently use
NULL instead of mixing NULL and 0 to make the pattern more obvious.
Fixes nm(1) crashes that happen when you pass it multiple object files on
the command line.
ok miod@
|
|
Pointed out by patrick keshish.
|
|
ok drahn@ kettenis@
|
|
already generated list. Speeds up startup on deeply nested dlopen binaries.
ok guenther@, tested by ckuethe@ and ajacoutot@
|
|
|
|
the assembler to pass %sr0 by default. No binary change.
ok kettenis@
|
|
instructions in the same cache line from being corrupted.
ok deraadt@, miod@
|
|
as 32bit values instead of 64bit values, synchronizing it with the
libc stub. gcc4 apparently packs the stack in _dl_bind() more
tightly, so this was resulting in the saved rbx register being
overwriten.
ok drahn@, marco@, NicM@
|
|
ok kettenis@
|
|
Apparently gcc4 uses them in cases where gcc3 didn't. Fixes segmentation
faults with gcc4 because the space for the slots was colliding with
the space for dl_data that we allocated on the stack.
ok miod@
|
|
|
|
overrides SYM_DLSYM, so remove the latter
ok drahn@, testing krw@
|
|
|
|
ok drahn@
|
|
ok drahn@
|
|
eyeballed by deraadt@ and drahn@
|
|
regress test run fine with this changes
ok deraadt@, drahn@
|