aboutsummaryrefslogtreecommitdiff
path: root/include/dlfcn.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove $FreeBSD$: two-line .h patternWarner Losh2023-08-161-2/+0
| | | | Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
* Implement RTLD_DEEPBIND.Konstantin Belousov2020-05-151-0/+2
| | | | | | | | | | | PR: 246462 Tested by: Martin Birgmeier <d8zNeCFG@aon.at> Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D24841 Notes: svn path=/head/; revision=361073
* Revert r343093 until I can address the issues raised by kib@.Dag-Erling Smørgrav2019-01-171-1/+0
| | | | Notes: svn path=/head/; revision=343116
* Implement dlopenat(3).Dag-Erling Smørgrav2019-01-161-0/+1
| | | | | | | MFC after: 3 weeks Notes: svn path=/head/; revision=343093
* include: further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-201-0/+2
| | | | | | | | | | | | | | | | | Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point. Notes: svn path=/head/; revision=326024
* Implement fdlopen(3), an rtld interface to load shared object by fileKonstantin Belousov2012-01-071-0/+1
| | | | | | | | | | | descriptor. Requested and tested by: des (previous version) Reviewed by: des, kan (previous version) MFC after: 2 weeks Notes: svn path=/head/; revision=229768
* - Remove const'ness from dlerror(3) prototype, for consistency with POSIX.Pietro Cerutti2010-03-241-2/+1
| | | | | | | | Approved by: cognet MFC after: 1 week Notes: svn path=/head/; revision=205606
* Remove the Berkeley clause 3's.Warner Losh2010-02-161-5/+1
| | | | | | | Add a few $FreeBSD$ Notes: svn path=/head/; revision=203964
* Implement RTLD_NOLOAD flag for dlopen(3).Konstantin Belousov2009-07-171-0/+1
| | | | | | | | | Requested and tested by: jkim Reviewed by: kan Approved by: re (kensmith) Notes: svn path=/head/; revision=195745
* Implement support for RTLD_NODELETE flag for dlopen() and -z nodeleteKonstantin Belousov2009-03-301-0/+1
| | | | | | | | | | static linker option. Do it by incrementing reference count on the loaded object and its dependencies. Reviewed by: davidxu, kan Notes: svn path=/head/; revision=190543
* Implement ELF symbol versioning using GNU semantics. This code aimsAlexander Kabaev2005-12-181-0/+2
| | | | | | | | | | | | to be compatible with symbol versioning support as implemented by GNU libc and documented by http://people.redhat.com/~drepper/symbol-versioning and LSB 3.0. Implement dlvsym() function to allow lookups for a specific version of a given symbol. Notes: svn path=/head/; revision=153515
* Implement dlinfo() function.Alexander Kabaev2003-02-131-3/+34
| | | | | | | | | | | | | Introdice RTLD_SELF special handle and properly process it within dlsym() and dlinfo() functions. The intention is to improve our compatibility with Solaris and to make a Java port easier. Partially submitted by: phantom Notes: svn path=/head/; revision=110804
* Conditionalize some objects to match the functions that they are usedMike Barcroft2002-09-111-2/+5
| | | | | | | with. Enable `restrict' type-qualifier. Notes: svn path=/head/; revision=103212
* Fix some style bugs:Mike Barcroft2002-09-101-30/+32
| | | | | | | | | o Space used instead of a tab after `#define' and `typedef'. o Sentences not ended with a period. o Unaligned function names and other spacing issues. Notes: svn path=/head/; revision=103196
* Since POSIX gives us plenary authority to define _t types, changeGarrett Wollman2002-05-291-2/+2
| | | | | | | | | | __dlfunc_t to dlfunc_t to match what I have proposed to the Austin Group. (This also makes it easier for applications to store these values before they decide what to do with them, e.g., in a wrapper function.) Notes: svn path=/head/; revision=97509
* Reorganize dlfcn.h slightly to separate out XSI and BSD interfaces.Garrett Wollman2002-05-291-3/+23
| | | | | | | | | | | Add new dlfunc() interface, which is a version of dlsym() with a return type that can be cast to a function pointer without turning your computer into a frog. Reviewed by: freebsd-standards Notes: svn path=/head/; revision=97475
* Breath deep and take __P out of the system include files.Warner Losh2002-03-231-12/+12
| | | | | | | | | # This appears to not break X11, but I'm having problems compiling the # glide part of the server with or without this patch, so I can't tell # for sure. Notes: svn path=/head/; revision=93032
* Allow ldd(1) be used on shared libraries in addition to executables.Maxim Sobolev2002-02-041-0/+1
| | | | Notes: svn path=/head/; revision=90172
* Add a definition for RTLD_DEFAULT.John Polstra2000-09-191-4/+3
| | | | Notes: svn path=/head/; revision=66055
* Add a #define for RTLD_LOCAL as required by the Single UnixJohn Polstra2000-01-291-0/+1
| | | | | | | Specification. Notes: svn path=/head/; revision=56782
* Remove the comment warning that the dllockinit() interface mightJohn Polstra2000-01-091-1/+0
| | | | | | | | change. I have decided that the interface is general enough to last. Notes: svn path=/head/; revision=55681
* Work around an assert failure in the dynamic linker's default threadJohn Polstra1999-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. Notes: svn path=/head/; revision=55165
* Add a new function dllockinit() for registering thread lockingJohn Polstra1999-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. Notes: svn path=/head/; revision=55122
* Add definition for RTLD_GLOBAL, which is soon to be supported.John Polstra1999-08-301-1/+3
| | | | Notes: svn path=/head/; revision=50603
* $Id$ -> $FreeBSD$Peter Wemm1999-08-271-1/+1
| | | | Notes: svn path=/head/; revision=50473
* Back out my change from 6 April PDT that added a new dlversion()John Polstra1999-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. Notes: svn path=/head/; revision=45929
* Add a new function dlversion() which returns the version number ofJohn Polstra1999-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. Notes: svn path=/head/; revision=45398
* Replace bogus "@(#)err.h 8.1 (Berkeley) 6/2/93" with RCS Id keyword.John Polstra1998-02-111-1/+1
| | | | | | | | Somebody must have blindly copied the leader comment when they created this file. Notes: svn path=/head/; revision=33237
* Remove the include of <dlfcn.h> from crt0.c; it is not needed nowJohn Polstra1998-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. Notes: svn path=/head/; revision=33236