This is Paul K's latest set of ld changes. A commit was necessary at this
[unix-history] / gnu / usr.bin / ld / ldconfig / ldconfig.8
CommitLineData
1136f72d
PR
1.Dd October 3, 1993
2.Dt LDCONFIG 8
6a61ea88 3.Os FreeBSD 1.1
1136f72d
PR
4.Sh NAME
5.Nm ldconfig
6.Nd configure the shared library cache
7.Sh SYNOPSIS
8.Nm ldconfig
9.Op Fl rsv
10.Op Ar directory Ar ...
11.Sh DESCRIPTION
12.Nm
13is used to prepare a set of
14.Dq hints
15for use by the run-time linker
16.Xr ld.so
17to facilitate quick lookup of shared libraries available in multiple
18directories. It scans a set of built-in system directories and any
19.Ar directories
20specified on the command line (in the given order) looking for shared
21libraries and stores the results in the file
22.Xr /var/run/ld.so.hints
23to forstall the overhead that would otherwise result from the
24directory search operations
25.Xr ld.so
26would have to perform to load the required shared libraries.
27.Pp
28The shared libraries so found will be automatically available for loading
29if needed by the program being prepared for execution. This obviates the need
30for storing search paths within the executable.
31.Pp
32The
33.Ev LD_LIBRARY_PATH
34environment variable can be used to override the use of
35directories (or the order thereof) from the cache or to specify additional
36directories where shared libraries might be found.
37.Ev LD_LIBRARY_PATH
38is a
39.Sq \:
40separated list of directory paths which are searched by
41.Xr ld.so
42when it needs to load a shared library. It can be viewed as the run-time
43equivalent of the
44.Fl L
45switch of
46.Xr ld.
47.Pp
48.Nm Ldconfig
49is typically run as part of the boot sequence.
50.Pp
51The following options recognized by
52.Nm ldconfig:
53.Bl -tag -width indent
54.It Fl r
55Lists the current contents of
56.Xr ld.so.hints
57on the standard output. The hints file will not be modified.
58.It Fl s
59Do not scan
60.Nm ldconfig
61's builtin system directories
62.Sq /usr/lib
63and
64.Sq /usr/local/lib
65for shared libraries.
66.It Fl v
67Switch on verbose mode.
68.Sh Security
69Special care must be taken when loading shared libraries into the address
70space of
71.Ev set-user-Id
72programs. Whenever such a program is run,
73.Xr ld.so
74will only load shared libraries from the
75.Ev ld.so.hints
76file. In particular, the
77.Ev LD_LIBRARY_PATH
78is not used to search for libraries. Thus, the role of ldconfig is dual. In
79addition to building a set of hints for quick lookup, it also serves to
80specify the trusted collection of directories from which shared objects can
81be safely loaded. It is presumed that the set of directories specified to
82.Nm ldconfig
83are under control of the system's administrator.
84.Xr ld.so
85further assists set-user-Id programs by erasing the
86.Ev LD_LIBRARY_PATH
87from the environment.
88
89.Sh FILES
90.Xr /var/run/ld.so.hints
91.Sh SEE ALSO
92.Xr ld 1 ,
93.Xr link 5
94.Sh HISTORY
95A
96.Nm
97utility first appeared in SunOS 4.0, it appeared in its current form
548edb9e 98in FreeBSD 1.1.