summaryrefslogtreecommitdiffstats
path: root/include/dlfcn.h
Commit message (Collapse)AuthorAgeFilesLines
* Add a definition for RTLD_DEFAULT.jdp2000-09-191-4/+3
|
* Add a #define for RTLD_LOCAL as required by the Single Unixjdp2000-01-291-0/+1
| | | | Specification.
* Remove the comment warning that the dllockinit() interface mightjdp2000-01-091-1/+0
| | | | | change. I have decided that the interface is general enough to last.
* Work around an assert failure in the dynamic linker's default threadjdp1999-12-281-0/+1
| | | | | | | | | | | | | | | | 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.
* Add a new function dllockinit() for registering thread lockingjdp1999-12-271-0/+7
| | | | | | | | | | | | | | | | | | | functions to be used by the dynamic linker. This can be called by threads packages at start-up time. I will add the call to libc_r soon. Also add a default locking method that is used up until dllockinit() is called. The default method works by blocking SIGVTALRM, SIGPROF, and SIGALRM in critical sections. It is based on the observation that most user-space threads packages implement thread preemption with one of these signals (usually SIGVTALRM). The dynamic linker has never been reentrant, but it became less reentrant in revision 1.34 of "src/libexec/rtld-elf/rtld.c". Starting with that revision, multiple threads each doing lazy binding could interfere with each other. The usual symptom was that a symbol was falsely reported as undefined at start-up time. It was rare but not unseen. This commit fixes it.
* Add definition for RTLD_GLOBAL, which is soon to be supported.jdp1999-08-301-1/+3
|
* $Id$ -> $FreeBSD$peter1999-08-271-1/+1
|
* Back out my change from 6 April PDT that added a new dlversion()jdp1999-04-221-1/+0
| | | | | | | function. It was an ill-considered feature. It didn't solve the problem I wanted it to solve. And it added Yet Another Version Number that would have to be maintained at every release point. I'm nuking it now before anybody grows too fond of it.
* Add a new function dlversion() which returns the version number ofjdp1999-04-071-1/+2
| | | | | | the dynamic linker in the same form as __FreeBSD_version. This is mainly intended for checking the dynamic linker version during a make world.
* Replace bogus "@(#)err.h 8.1 (Berkeley) 6/2/93" with RCS Id keyword.jdp1998-02-111-1/+1
| | | | | Somebody must have blindly copied the leader comment when they created this file.
* Remove the include of <dlfcn.h> from crt0.c; it is not needed nowjdp1998-02-111-0/+71
that the dl* trampolines have been moved into libc. Move dlfcn.h from src/lib/csu/i386 into src/include. Nothing in src/lib/csu/i386 uses it any more.
OpenPOWER on IntegriCloud