History log of /freebsd-current/libexec/rtld-elf/rtld.1
Revision Date Author Comments
# 6a7819e4 28-Apr-2024 Konstantin Belousov <kib@FreeBSD.org>

rtld.1: clarify interaction between -u and -o

Sponsored by: The FreeBSD Foundation
MFC after: 1 week


# d1cd0cc3 27-Apr-2024 Konstantin Belousov <kib@FreeBSD.org>

rtld: add direct-exec option -o

allowing to set any known LD_ parameter for the current rtld invocation,
but without polluting the activated' binary environment. In other
words, the set parameter is not exported into the environment.

Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D44988


# 8d747370 20-Apr-2024 Konstantin Belousov <kib@FreeBSD.org>

rtld(1): minor clarification for LD_STATIC_TLS_EXTRA

Also properly style the paragraph.

Sponsored by: The FreeBSD Foundation
MFC after: 3 days


# 95335dd3 29-Oct-2023 Stephen J. Kiernan <stevek@FreeBSD.org>

rtld: introduce STATIC_TLS_EXTRA

The new STATIC_TLS_EXTRA variable provides a means for applications
to increases the size of the extra static TLS space allocated by
rtld beyond the default of '128'. This extra static TLS space is used
for objects loaded with dlopen.

The value specified in the variable must be no less than the default
value and no greater than the maximum allowed value for size_t type.

If an invalid value is specified, rtld will ignore it and just use
the default value.

The rtld(1) man page is updated to document this new option.

Obtained from: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D42025


# fa9896e0 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: two-line nroff pattern

Remove /^\.\\"\n\.\\"\s*\$FreeBSD\$$\n/


# 8cc44a1e 10-Nov-2022 Konstantin Belousov <kib@FreeBSD.org>

rtld: add support for the $LIB token

similar to the same token in glibc.

Requested and reviewed by: bapt
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D37329


# 6c799530 25-Feb-2022 John F. Carr <jfc@mit.edu>

rtld.1: Fix misplaced text

PR: 262194
Fixes: f90218886fc8 ("rtld: introduce PRELOAD_FDS")
MFC after: 3 days


# 64ba1f4c 12-Nov-2021 Konstantin Belousov <kib@FreeBSD.org>

rtld: Implement LD_SHOW_AUXV

It dumps auxv as seen by interpreter, right before starting any user
code.

Copied from: glibc
Sponsored by: The FreeBSD Foundation
MFC after: 1 week


# ba7f9c1b 11-Oct-2021 Konstantin Belousov <kib@FreeBSD.org>

rtld direct exec: add -d option

to ignore lack of execute permission on the binary. The check is a
bad security theatre anyway.

Reviewed by: arichardson, imp
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D32464


# 7da378f9 14-Aug-2021 Fangrui Song <i@maskray.me>

rtld: Switch to the standard symbol lookup behavior if LD_DYNAMIC_WEAK is set

The current lookup prefers a strong definition to a STB_WEAK definition
(similar to glibc pre-2.2 behavior) which does not conform to the ELF
specification.

The non-compliant behavior provoked https://reviews.llvm.org/D4418
which was intended to fix -shared-libasan but introduced
new problems (and caused some sanitizer tests (e.g.
test/asan/TestCases/interception_failure_test.cpp) to fail): sanitizer
interceptors are STB_GLOBAL instead of STB_WEAK, so defining a second
STB_GLOBAL interceptor can lead to a multiple definition linker error.
For example, in a -fsanitize={address,memory,...} build, libc functions
like malloc/free/strtol/... cannot be provided by user object files.

See
https://docs.freebsd.org/cgi/getmsg.cgi?fetch=16483939+0+archive/2014/freebsd-current/20140716.freebsd-current
for discussions.

This patch implements the ELF-compliant behavior when LD_DYNAMIC_WEAK is
set. STB_WEAK wrestling in symbol lookups in `Search the dynamic linker
itself` are untouched.

Reviewed by: kib
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D26352


# e3149e0a 02-Jun-2021 Konstantin Belousov <kib@FreeBSD.org>

rtld: Rename -t option to -u (ignore LD_ vars)

Requested by: arichardson
Sponsored by: The FreeBSD Foundation
MFC after: 3 days


# d81f999a 28-May-2021 Konstantin Belousov <kib@FreeBSD.org>

rtld direct exec: add option to ignore LD_ variables

Sponsored by: The FreeBSD Foundation
MFC after: 1 week


# d36d6816 04-Apr-2021 Konstantin Belousov <kib@FreeBSD.org>

rtld dl_iterate_phdr(): dlpi_tls_data is wrong

dl_iterate_phdr() dlpi_tls_data should provide the TLS module segment
address, and not the TLS init segment address as it does now.

Reported by: emacsray@gmail.com
PR: 254774
Sponsored by: The FreeBSD Foundation
MFC after: 1 week


# e086aff9 24-Mar-2021 Mariusz Zaborski <oshogbo@FreeBSD.org>

rtld: fix the man page

In f90218886fc8 in man page I used LD_PRELOAD_PATH_FDS instead of
LD_PRELOAD_FDS.

Reported by: rpokala


# f9021888 24-Mar-2021 Mariusz Zaborski <oshogbo@FreeBSD.org>

rtld: introduce PRELOAD_FDS

The new PRELOAD_FDS variable accepts a list of file descriptors
that should be loaded into the process.

This may be used to optimize a loading process - in the case when
we already have a file descriptor to the library; we don't have
to look into multiple PATH to find it.

It may also be used in capability mode to load a single additional
library without the need to open a directory that contains it.

The last use of this functionality t may be a race-free method
of loading libraries.

Reviewed by: kib, markj
Differential Revision: https://reviews.freebsd.org/D29334


# 812b0903 09-Oct-2020 Gordon Bergling <gbe@FreeBSD.org>

Fix a few mandoc issues

- whitespace at end of input line
- skipping paragraph macro: Pp at the end of Sh
- new sentence, new line
- consider using OS macro: Fx
- AUTHORS section without An macro
- skipping paragraph macro: Pp before Ss


# e82d1982 31-May-2020 Konstantin Belousov <kib@FreeBSD.org>

rtld: Add -b option to allow to specify image name different from arg0.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week


# c8dd6c05 31-May-2020 Konstantin Belousov <kib@FreeBSD.org>

rtld: Add -v switch to print some useful information about the rtld binary.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week


# d89d5508 26-May-2020 Konstantin Belousov <kib@FreeBSD.org>

Add version indicators to rtld.

It is wrong to relate on __FreeBSD_version, either from
include/param.h, kernel, or libc, to check for rtld features.
Rtld might be from newer world than the running userspace.

Add special private symbols exported by rtld itself, to indicate the
changes in runtime behavior, and features that cannot be otherwise
detected or deduced at runtime.

Note that the symbols are not exported from libc, so they intentionally
cannot be linked against, and exported from the private namespace from rtld.
Consumers are required to use dlsym(3). For instance, for
_rtld_version_laddr_offset, user should do
ptr = dlsym(RTLD_DEFAULT, "_rtld_version_laddr_offset")
or even
ptr = dlvsym(RTLD_DEFAULT, "_rtld_version_laddr_offset",
"FBSDprivate_1.0");
Non-null ptr means that the change is present.

Also add _rtld_version__FreeBSD_version indicator to report the
headers version used at time of the rtld build.

Reviewed by: jhb
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D24982


# cf551abc 01-Sep-2017 Konstantin Belousov <kib@FreeBSD.org>

Add serial comma.

Submitted by: wblock
MFC after: 3 days


# 9152cb38 14-Jul-2017 Konstantin Belousov <kib@FreeBSD.org>

Language improvements.

Submitted by: wblock
MFC after: 3 days
Differential revision: https://reviews.freebsd.org/D10826


# 109f3b8c 29-May-2017 Konstantin Belousov <kib@FreeBSD.org>

Document direct execution mode for rtld.

Reviewed by: emaste, jonathan (previous version)
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D10826


# 18934eb6 29-May-2017 Konstantin Belousov <kib@FreeBSD.org>

Correct explanation of the dynamic tokens handling.

Reviewed by: emaste, jonathan
Sponsored by: The FreeBSD Foundation
X-Differential Revision: https://reviews.freebsd.org/D10826


# dc902dbd 17-May-2017 Jonathan Anderson <jonathan@FreeBSD.org>

Fix some nroff syntax in rtld.1.

When I originally documented the LD_LIBRARY_PATH_FDS environment variable,
I used `.Ev` rather than `.It Ev` to introduce it; this led to the
documentation being embedded in the previous paragraph (LD_LIBRARY_PATH).


# 2d6acb22 16-Mar-2017 Jilles Tjoelker <jilles@FreeBSD.org>

rtld(1): Document that LD_BIND_NOT is unset for setugid processes.

MFC after: 2 weeks


# e35ddbe4 15-Mar-2017 Konstantin Belousov <kib@FreeBSD.org>

Implement LD_BIND_NOT knob for rtld.

From the manpage:
When set to a nonempty string, prevents modifications of the PLT slots
when doing bindings. As result, each call of the PLT-resolved
function is resolved. In combination with debug output, this provides
complete account of all bind actions at runtime.

Same feature exists on Linux and Solaris.

Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks


# df2d82e0 23-Jun-2014 Joel Dahl <joel@FreeBSD.org>

mdoc: remove superfluous paragraph macros.


# 02d3b38e 20-Jun-2014 Jonathan Anderson <jonathan@FreeBSD.org>

Add the LD_LIBRARY_PATH_FDS environmental variable.

This variable allows the loading of shared libraries via directory descriptors
rather than via library paths. If LD_LIBRARY_PATH_FDS=3:4:12, the directories
represented by file descriptors 3, 4 and 12 will searched for shared libraries
before the normal path-based mechanisms are used. This allows us to execute
unprivileged binaries from within a Capsicum sandbox even if they require
shared libraries.

Approved by: rwatson (mentor)
Reviewed by: kib
MFC after: 3 weeks
Sponsored by: DARPA/AFRL


# bca2f623 15-Jul-2012 Konstantin Belousov <kib@FreeBSD.org>

Import the DragonFly BSD commit 4f0bc915b65fcf5a23214f6d221d65c80be68ad4
by John Marino <draco@marino.st>, with the following (edited) commit
message
Date: Sat, 24 Mar 2012 06:40:50 +0100
Subject: [PATCH 1/1] rtld: Implement DT_RUNPATH and -z nodefaultlib

DT_RUNPATH is incorrectly being considered as an alias of DT_RPATH. The
purpose of DT_RUNPATH is to have two different types of rpath: one that
can be overridden by the environment variable LD_LIBRARY_PATH and one that
can't. With the currently implementation, LD_LIBRARY_PATH will always
trump any embedded rpath or runpath tags.

Current path search order by rtld:
==================================
LD_LIBRARY_PATH
DT_RPATH / DT_RUNPATH (always the same)
ldconfig hints file (default: /var/run/ld-elf.so.hints)
/usr/lib

New path search order by rtld:
==============================
DT_RPATH of the calling object if no DT_RUNPATH
DT_RPATH of the main binary if no DT_RUNPATH and binary isn't calling obj
LD_LIBRARY_PATH
DT_RUNPATH
ldconfig hints file
/usr/lib

The new path search matches how the linux runtime loader works. The other
major added feature is support for linker flag "-z nodefaultlib". When
this flag is passed to the linker, rtld will skip all references to the
standard library search path ("/usr/lib" in this case but it could handle
more color delimited paths) except in DT_RPATH and DT_RUNPATH.

New path search order by rtld with -z nodefaultlib flag set:
============================================================
DT_RPATH of the calling object if no DT_RUNPATH
DT_RPATH of the main binary if no DT_RUNPATH and binary isn't calling obj
LD_LIBRARY_PATH
DT_RUNPATH
ldconfig hints file (skips all references to /usr/lib)

FreeBSD notes:
- we fixed some bugs which were submitted to DragonFly and merged there
as commit 1ff8a2bd3eb6e5587174c6a983303ea3a79e0002;
- we added LD_LIBRARY_PATH_RPATH environment variable to switch to
the previous behaviour of considering DT_RPATH a synonym for DT_RUNPATH;
- the FreeBSD default search path is /lib:/usr/lib and not /usr/lib.

Reviewed by: kan
MFC after: 1 month
MFC note: flip the ld_library_path_rpath default value for stable/9


# 8569deaf 25-Dec-2010 Konstantin Belousov <kib@FreeBSD.org>

Implement support for ELF filters in rtld. Both normal and auxillary
filters are implemented.

Filtees are loaded on demand, unless LD_LOADFLTR environment variable
is set or -z loadfltr was specified during the linking. This forces
rtld to upgrade read-locked rtld_bind_lock to write lock when it
encounters an object with filter during symbol lookup.

Consolidate common arguments of the symbol lookup functions in the
SymLook structure. Track the state of the rtld locks in the
RtldLockState structure. Pass local RtldLockState through the rtld
symbol lookup calls to allow lock upgrades.

Reviewed by: kan
Tested by: Mykola Dzham <i levsha me>, nwhitehorn (powerpc)


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


# 0d9deed5 07-Oct-2010 Ulrich Spörlein <uqs@FreeBSD.org>

mdoc: drop redundant .Pp and .LP calls

They have no effect when coming in pairs, or before .Bl/.Bd


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


# b2e4ce45 01-Apr-2009 Konstantin Belousov <kib@FreeBSD.org>

Document RTLD_NODELETE, -z nodelete and -z origin support.


# 569e2ef6 23-Mar-2009 Xin LI <delphij@FreeBSD.org>

Support for a new environment variable, LD_ELF_HINTS_PATH for overriding
the rtld hints file. This environment variable would be unset if the
process is considered as tainted with setuid/setgid. This feature gives
a convenient way of using a custom set of shared library that is not
located in the default location and switch back.

Feature requested by: iXsystems
Original patch by: John Hixson
MFC after: 2 weeks


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

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


# 523b17ef 15-May-2008 Bruce M Simpson <bms@FreeBSD.org>

Make the meaning of the %A format specifier, as passed to
LD_TRACE_LOADED_OBJECTS_FMT[12], more obvious for users like me.


# b075897e 17-May-2007 Christian S.J. Peron <csjp@FreeBSD.org>

Update the man page to reflect that certain variables will be unset in
the case that the program is set-user-ID or set-group-ID. Add missing
annotations for LIBMAP and LIBMAP_DISABLE.


# 88922cf0 11-May-2007 Pav Lucistnik <pav@FreeBSD.org>

Remove %m formatter, it's ifdef 0'ed in the code from the very beginning

MFC after: 1 week


# b9e1d83e 11-May-2007 Pav Lucistnik <pav@FreeBSD.org>

Expand documentation for LD_TRACE_LOADED_OBJECTS_FMT? variables

PR: docs/66265 (inspired by)
Submitted by: Michel Lavondes <fox@vader.aacc.cc.md.us>
MFC after: 1 week


# f0ac0f92 23-Jan-2007 John Baldwin <jhb@FreeBSD.org>

Document LD_UTRACE.

MFC after: 3 days


# a3ec17db 17-Sep-2006 Ruslan Ermilov <ru@FreeBSD.org>

Markup fixes.


# 8a50f51b 26-Mar-2006 Pav Lucistnik <pav@FreeBSD.org>

- Document LD_32_* environment variables
- Mention 32-bit files in FILES section

MFC after: 1 week


# cc4fdb1d 14-Jun-2005 Ruslan Ermilov <ru@FreeBSD.org>

Removed trailing whitespace.

Approved by: re (blanket)


# 5b08cb04 03-Feb-2005 Matthew N. Dodd <mdodd@FreeBSD.org>

Description from Dan:

Another handy libmap patch. Lets you do stuff like this:

LD_LIBMAP="libpthread.so.1=libthr.so.1" mythreadedapp

If you already have a program-specific override in libmap.conf, note
that you must use a program-specific override in LD_LIBMAP:

LD_LIBMAP="[mythreadedapp],libpthread.so.1=libthr.so.1" mythreadedapp

PR: bin/74471
Submitted by: Dan Nelson <dnelson AT allantgroup.com>
MFC after: 2 weeks


# ded0e523 18-Jun-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

LD_DUMP_REL_PRE and LD_DUMP_REL_POST don't output to stderr; don't
claim that they do.


# c5d061c1 18-Jun-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Provide a mechanism for dumping relocation information.

Setting the LD_DUMP_REL_PRE or LD_DUMP_REL_POST environment variables
cause rtld-elf to output a table of all relocations.

This is useful for debugging.


# 09f84dd1 02-Jun-2003 Ruslan Ermilov <ru@FreeBSD.org>

Assorted mdoc(7) fixes.


# 4df60d1c 31-May-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Use the environment variable LD_LIBMAP_DISABLE to disable
libmap.conf(5) functionality.


# 94deb3f0 17-May-2003 Robert Watson <rwatson@FreeBSD.org>

Since libmap.conf is referenced in rtld.1, include it in the references
section.

Approved by: re (scottl)


# 60cdf2f1 16-May-2003 Ruslan Ermilov <ru@FreeBSD.org>

mdoc(7) police: Normalize the FILES section.

Approved by: re (blanket)


# 29ade362 07-Apr-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Dynamic object dependency mapping: libmap.

This is an optional feature, disabled by default.

This will be useful to people testing the various POSIX threading
libraries under -CURRENT but can easily serve other needs.


# d9943f16 13-Feb-2003 Alexey Zelkin <phantom@FreeBSD.org>

Advertize rtld(1) as ld.so(1) in manual pages world


# 8d5d039f 12-Dec-2002 Ruslan Ermilov <ru@FreeBSD.org>

Uniformly refer to a file system as "file system".

Approved by: re


# 3f162cb8 06-Jul-2002 Philippe Charnier <charnier@FreeBSD.org>

The .Nm utility


# 20249943 17-Feb-2002 David E. O'Brien <obrien@FreeBSD.org>

Add support such that if LD_TRACE_LOADED_OBJECTS_ALL is defined to a
non-empty string in the environment; we indicate which objects caused
each object to be loaded.

PR: 30908
Submitted-by: Mike Meyer <mwm@mired.org>


# bcf2b1b3 10-Jan-2002 Ruslan Ermilov <ru@FreeBSD.org>

mdoc(7) police: tidy up.


# c4d9468e 07-Aug-2001 Ruslan Ermilov <ru@FreeBSD.org>

mdoc(7) police:

Avoid using parenthesis enclosure macros (.Pq and .Po/.Pc) with plain text.
Not only this slows down the mdoc(7) processing significantly, but it also
has an undesired (in this case) effect of disabling hyphenation within the
entire enclosed block.


# 0efe23d6 10-Jul-2001 Ruslan Ermilov <ru@FreeBSD.org>

mdoc(7) police: removed HISTORY info from the .Os call.


# 70d51341 09-Jul-2001 Dima Dorfman <dd@FreeBSD.org>

mdoc(7) police: remove extraneous .Pp before and/or after .Sh.


# 5521ff5a 06-Jul-2001 Ruslan Ermilov <ru@FreeBSD.org>

mdoc(7) police: sort SEE ALSO xrefs (sort -b -f +2 -3 +1 -2).


# 896eb7d1 16-Jan-2001 Ruslan Ermilov <ru@FreeBSD.org>

Prepare for mdoc(7)NG.


# 58eaff23 20-Dec-2000 Ruslan Ermilov <ru@FreeBSD.org>

Prepare for mdoc(7)NG.


# cbe10916 30-Jun-2000 Sheldon Hearn <sheldonh@FreeBSD.org>

Only punctuation is an allowed argument type for open-close macros
such as Po/Pc, as explained by phantom.

Reported by: billf


# 35add0e9 28-Mar-2000 Sheldon Hearn <sheldonh@FreeBSD.org>

Cross-reference ldd(1) in rtld(1) and vice versa.


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

Add a manual page for the ELF dynamic linker. I initially created
rtld.1 by means of a repository copy from "src/libexec/rtld-aout/rtld.1".
Then I edited it to make it (more) accurate for the ELF dynamic
linker.


# 8bd2d9a0 27-Sep-1999 Alexey Zelkin <phantom@FreeBSD.org>

.Nm += "rtld"
apropos(1) now knows about rtld(1) manpage.


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

$Id$ -> $FreeBSD$


# f6b31571 13-Sep-1997 Wolfram Schneider <wosch@FreeBSD.org>

spelling corrections.

PR: docs/4450
Submitted by: josh@quick.net


# d5fb0dff 27-May-1997 Masafumi Max NAKANE <max@FreeBSD.org>

Typo fix.
PR: 3693
Submitted by: Kazuo Horikawa <k-horik@yk.rim.or.jp>


# fce15c9a 22-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Revert $FreeBSD$ to $Id$


# ac6c268b 17-Jan-1997 John Polstra <jdp@FreeBSD.org>

Pay attention to the environment variable "LD_IGNORE_MISSING_OBJECTS".
If it is set to a nonempty string, then simply skip any missing
shared libraries. This came up in a discussion long ago as a
potentially useful feature at sysinstall time. For example, an
X11 utility could be used without the X libraries being present,
provided the utility had a mode in which no X functions were actually
called.


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# af202156 12-Jan-1997 Wolfram Schneider <wosch@FreeBSD.org>

Sort cross references.


# aeea55e4 11-Jan-1997 John Polstra <jdp@FreeBSD.org>

Correct typos and spelling errors.


# 0db65949 11-Jan-1997 John Polstra <jdp@FreeBSD.org>

Add support for the LD_BIND_NOW environment variable. If it is set to a
nonempty string, then function calls are relocated at program start-up
rather than lazily. This variable is standard on Sun and SVR4 systems.

The dlopen() function now supports both lazy and immediate binding, as
determined by its "mode" argument, which can be either 1 (RTLD_LAZY) or
2 (RTLD_NOW). I will add defines of these symbols to <dlfcn.h> as soon
as I've done a little more checking to make sure they won't cause
collisions or bootstrapping problems that would break "make world".

The "LD_*" environment variables which alter dynamic linker behavior are
now treated as unset if they are set to the empty string. This agrees
with the standard SVR4 conventions for the dynamic linker.

Add a work-around for programs compiled with certain buggy versions of
crt0.o. The buggy versions failed to set the "crt_ldso" member of the
interface structure. This caused certain error messages from the
dynamic linker to begin with "(null)" instead of the pathname of the
dynamic linker.


# 43d7fd03 26-Dec-1996 Steven Wallace <swallace@FreeBSD.org>

Fix spelling error in manpage.


# 16804804 17-Oct-1996 John Polstra <jdp@FreeBSD.org>

Fix two minor typos in the manual page.


# 5584286a 30-Sep-1996 Peter Wemm <peter@FreeBSD.org>

Update to handle new version ld.so.hints and info in executable for
configurable fallback search paths, as well as new crt interface version.

Also:
- even faster getenv(), get all environment variable settings in a single
pass.
- ldd printf-like format specifications
- minor code cleanups, one vsprintf -> vsnprintf (harmless)

The library search sequence is a little more complete now. Before,
it'd search $LD_LIBRARY_PATH (by opendir/readdir/closedir), then read
the hints file, then read /usr/lib (again by scanning thr directory). It
would then fail if there was no "found" library.

Now, it does LD_LIBRARY_PATH and the hints file the same, but then uses
a longer fallback path. The -R path is fetched from the executable if
specified at build time, the ldconfig path is appended, and /usr/lib is
appended to that. Duplicates are suppressed. This means that simply
placing a new library in /usr/local/lib will work (the same as it did in
/usr/lib) without needing ldconfig -m. It will find it quicker if the
ldconfig is run though.

Similar changes have been made to the NetBSD ld.so, but ours is rather
different now due to John Polstra's speedups and fixes from a while back.

The ldd printf-like format support came direct from NetBSD.

Reviewed by: nate, jdp


# e0e5145c 23-Sep-1996 Wolfram Schneider <wosch@FreeBSD.org>

add missing comma(s) in .Xr macros


# dd2b0768 20-Apr-1996 John Polstra <jdp@FreeBSD.org>

Implement support for LD_PRELOAD in the dynamic linker. Remove
descriptions of LD_NO_INTERN_SEARCH and LD_NOSTD_PATH from the manual
page, since they are not supported.

Submitted by: Doug Ambrisko <ambrisko@ambrisko.roble.com>


# c68c38c8 04-Oct-1995 Nate Williams <nate@FreeBSD.org>

This is a FreeBSD manpage, not a NetBSD manpage. :)


# 19d57e6d 26-Aug-1995 Joerg Wunsch <joerg@FreeBSD.org>

Import Paul Kranenburg's man page for ld.so (aka. rtld).

Obtained from: NetBSD