History log of /freebsd-current/include/dlfcn.h
Revision Date Author Comments
# b3e76948 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: two-line .h pattern

Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/


# 1659238a 15-May-2020 Konstantin Belousov <kib@FreeBSD.org>

Implement RTLD_DEEPBIND.

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


# c9cf7cb8 17-Jan-2019 Dag-Erling Smørgrav <des@FreeBSD.org>

Revert r343093 until I can address the issues raised by kib@.


# 9b35e902 15-Jan-2019 Dag-Erling Smørgrav <des@FreeBSD.org>

Implement dlopenat(3).

MFC after: 3 weeks


# 2321c474 20-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

include: further adoption of SPDX licensing ID tags.

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.


# 5d8aec9c 07-Jan-2012 Konstantin Belousov <kib@FreeBSD.org>

Implement fdlopen(3), an rtld interface to load shared object by file
descriptor.

Requested and tested by: des (previous version)
Reviewed by: des, kan (previous version)
MFC after: 2 weeks


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# 28f91736 31-Mar-2010 Pietro Cerutti <gahr@FreeBSD.org>

MFC r205606
Remove const'ness from dlerror(3) prototype, for consistency with POSIX.

Approved by: cognet


# 071ab531 24-Mar-2010 Pietro Cerutti <gahr@FreeBSD.org>

- Remove const'ness from dlerror(3) prototype, for consistency with POSIX.

Approved by: cognet
MFC after: 1 week


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# f2556687 16-Feb-2010 Warner Losh <imp@FreeBSD.org>

Remove the Berkeley clause 3's.
Add a few $FreeBSD$


# 49e8c06b 17-Jul-2009 Konstantin Belousov <kib@FreeBSD.org>

Implement RTLD_NOLOAD flag for dlopen(3).

Requested and tested by: jkim
Reviewed by: kan
Approved by: re (kensmith)


# 2b0b4ee3 30-Mar-2009 Konstantin Belousov <kib@FreeBSD.org>

Implement support for RTLD_NODELETE flag for dlopen() and -z nodelete
static linker option. Do it by incrementing reference count on the loaded
object and its dependencies.

Reviewed by: davidxu, kan


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 0eb88f20 18-Dec-2005 Alexander Kabaev <kan@FreeBSD.org>

Implement ELF symbol versioning using GNU semantics. This code aims
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.


# 42d206e9 13-Feb-2003 Alexander Kabaev <kan@FreeBSD.org>

Implement dlinfo() function.

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


# 24c502cb 10-Sep-2002 Mike Barcroft <mike@FreeBSD.org>

Conditionalize some objects to match the functions that they are used
with. Enable `restrict' type-qualifier.


# a30ec216 10-Sep-2002 Mike Barcroft <mike@FreeBSD.org>

Fix some style bugs:
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.


# fda23019 29-May-2002 Garrett Wollman <wollman@FreeBSD.org>

Since POSIX gives us plenary authority to define _t types, change
__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.)


# dc12134a 29-May-2002 Garrett Wollman <wollman@FreeBSD.org>

Reorganize dlfcn.h slightly to separate out XSI and BSD interfaces.
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


# bb28f3c2 23-Mar-2002 Warner Losh <imp@FreeBSD.org>

Breath deep and take __P out of the system include files.

# 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.


# c6de4ce7 04-Feb-2002 Maxim Sobolev <sobomax@FreeBSD.org>

Allow ldd(1) be used on shared libraries in addition to executables.


# 362a3ead 18-Sep-2000 John Polstra <jdp@FreeBSD.org>

Add a definition for RTLD_DEFAULT.


# 8a889bcb 28-Jan-2000 John Polstra <jdp@FreeBSD.org>

Add a #define for RTLD_LOCAL as required by the Single Unix
Specification.


# 4fba53a0 09-Jan-2000 John Polstra <jdp@FreeBSD.org>

Remove the comment warning that the dllockinit() interface might
change. I have decided that the interface is general enough to
last.


# 3600eb76 27-Dec-1999 John Polstra <jdp@FreeBSD.org>

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.


# d3980376 26-Dec-1999 John Polstra <jdp@FreeBSD.org>

Add a new function dllockinit() for registering thread locking
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.


# 30f6d5b5 29-Aug-1999 John Polstra <jdp@FreeBSD.org>

Add definition for RTLD_GLOBAL, which is soon to be supported.


# a4add9a9 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 6d30b167 21-Apr-1999 John Polstra <jdp@FreeBSD.org>

Back out my change from 6 April PDT that added a new dlversion()
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.


# 14f5fa05 06-Apr-1999 John Polstra <jdp@FreeBSD.org>

Add a new function dlversion() which returns the version number of
the dynamic linker in the same form as __FreeBSD_version. This is
mainly intended for checking the dynamic linker version during a make
world.


# c1effe8a 10-Feb-1998 John Polstra <jdp@FreeBSD.org>

Replace bogus "@(#)err.h 8.1 (Berkeley) 6/2/93" with RCS Id keyword.
Somebody must have blindly copied the leader comment when they
created this file.


# 0fbd9e98 10-Feb-1998 John Polstra <jdp@FreeBSD.org>

Remove the include of <dlfcn.h> from crt0.c; it is not needed now
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.