57c807c1f1
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. |
||
---|---|---|
.. | ||
elf_rtld.x | ||
lockdflt.c | ||
Makefile.inc | ||
reloc.c | ||
rtld_machdep.h | ||
rtld_start.S |