Age | Commit message (Collapse) | Author |
|
|
|
ok matthew@ deraadt@
|
|
the main program should not register a cleanup handler with atexit(3).
This will allow us to add the cleanup handler registration code to crt0.c
and have ld.so pass its cleanup handler to the main program in the future.
ok kurt@
|
|
for passing around a pointer to a cleanup function and we'd like to use it
for that purpose in the near future.
ok miod@
|
|
for passing around a pointer to a cleanup function and we'd like to use it
for that purpose in the near future.
ok miod@
|
|
EXIT STATUS one;
ok guenther
|
|
Makes "make build" build with WARNINGS=Yes on amd64.
ok espie
|
|
problem initially noticed by deraadt@, exchanged various patches with
kettenis@
decided to fix the bug now, even though ldconfig could probably use
a larger rewrite.
okay matthew@
|
|
so mkdep can find it. This was breaking builds after recent
changes to mkdep to error out if the compiler does.
ok deraadt@
|
|
ld.so itself, but also make it easier to debug code that uses dlopen(3).
ok deraadt@, matthew@
|
|
it isn't NULL before we dereference it.
Fixes perl PIE on hppa.
ok matthew@, deraadt@
|
|
executable and DSO (via crtbegin.c/crtbeginS.c). Not used yet, but
needed before GCC can start emitting -fstack-protector code that uses
them instead of __guard.
|
|
initializing their __guard values. For the time being, we're leaving
libc's constructor method as a backup to make sure __guard actually
gets initialized and to emit syslog warnings when it's not.
Not really an ABI change, so no shlib bump... "hold on to your butts"
ok deraadt, kettenis
|
|
segments to the kernel, ld (2.15), and ld.so. Tested on alpha, amd64,
i386, macppc, and sparc64 (thanks naddy, mpi, and okan!).
Idea discussed for some time; committing now for further testing.
ok deraadt
|
|
"memory" to the list of clobbered registers for all syscalls that
accept a pointer. This prevents GCC from optimizing away memory loads
and stores that otherwise appear unused in a function.
Issue noted and identified by miod; fix by me.
ok miod, mpi
|
|
|
|
indicate that the kernel should fail with MAP_FAILED if the specified
address is not currently available instead of unmapping it.
Change ld.so on i386 to make use of __MAP_NOREMAP to improve
reliability.
__MAP_NOREMAP diff by guenther based on an earlier diff by Ariane;
ld.so bits by guenther and me
bulk build stress testing of earlier diffs by sthen
ok deraadt; committing now for further testing
|
|
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@
|
|
|
|
|
|
|