1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-02-01 17:00:36 +00:00
freebsd/libexec/rtld-elf
John Polstra 3600eb76c6 Work around an assert failure in the dynamic linker's default thread
locking functions.  If an application loads a shared object with
dlopen() and the shared object has an init function which requires
lazy binding, then _rtld_bind is called when the thread is already
inside the dynamic linker.  This leads to a recursive acquisition
of the lock, which I was not expecting -- hence the assert failure.

This work-around makes the default locking functions handle recursive
locking.  It is NOT the correct fix -- that should be implemented
at the generic locking level rather than in the default locking
functions.  I will implement the correct fix in a future commit.

Since the dllockinit() interface will likely need to change, warn
about that in both the man page and the header file.
1999-12-28 04:38:17 +00:00
..
alpha Work around an assert failure in the dynamic linker's default thread 1999-12-28 04:38:17 +00:00
amd64 Work around an assert failure in the dynamic linker's default thread 1999-12-28 04:38:17 +00:00
i386 Work around an assert failure in the dynamic linker's default thread 1999-12-28 04:38:17 +00:00
debug.c
debug.h
lockdflt.c Work around an assert failure in the dynamic linker's default thread 1999-12-28 04:38:17 +00:00
Makefile
malloc.c
map_object.c
rtld.1
rtld.c
rtld.h
xmalloc.c