Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LDCONFIG(8)		  BSD System Manager's Manual		   LDCONFIG(8)

NAME
     ldconfig -- configure the shared library cache

SYNOPSIS
     ldconfig [-32] [-aout | -elf] [-Rimrsv] [-f hints_file]
	      [directory | file	...]

DESCRIPTION
     The ldconfig utility is used to prepare a set of "hints" for use by the
     dynamic linker to facilitate quick	lookup of shared libraries available
     in	multiple directories.  It scans	a set of built-in system directories
     and any directories specified on the command line (in the given order)
     looking for shared	libraries and stores the results in a system file to
     forestall the overhead that would otherwise result	from the directory
     search operations the dynamic linker would	have to	perform	to load	the
     required shared libraries.

     Files named on the	command	line are expected to contain directories to
     scan for shared libraries.	 Each directory's pathname must	start on a new
     line.  Blank lines	and lines starting with	the comment character `#' are
     ignored.  Filenames must conform to the lib*.so.[0-9] pattern in order to
     be	added to the hints file.

     For security reasons, directories which are world or group-writable or
     which are not owned by root produce warning messages and are skipped, un-
     less the -i option	is present.

     The shared	libraries which	are found will be automatically	available for
     loading if	needed by the program being prepared for execution.  This ob-
     viates the	need for storing search	paths within the executable.

     The LD_LIBRARY_PATH environment variable can be used to override the use
     of	directories (or	the order thereof) from	the cache or to	specify	addi-
     tional directories	where shared libraries might be	found.
     LD_LIBRARY_PATH is	a `:' separated	list of	directory paths	which are
     searched by the dynamic linker when it needs to load a shared library.
     It	can be viewed as the run-time equivalent of the	-L switch of ld(1).

     The ldconfig utility is typically run as part of the boot sequence.

     The following options are recognized by ldconfig:

     -32     Generate the hints	for 32-bit ABI shared libraries	on 64-bit sys-
	     tems that support running 32-bit binaries.

     -aout   Generate the hints	for a.out format shared	libraries.

     -elf    Generate the hints	for ELF	format shared libraries.

     -R	     Rescan the	previously configured directories.  This opens the
	     previous hints file and fetches the directory list	from the
	     header.  Any additional pathnames on the command line are also
	     processed.	 This is the default action when no parameters are
	     given.

     -f	hints_file
	     Read and/or update	the specified hints file, instead of the stan-
	     dard file.	 This option is	provided primarily for testing.

     -i	     Run in insecure mode.  The	security checks	will not be performed.

     -m	     Instead of	replacing the contents of the hints file with those
	     found in the directories specified, "merge" in new	entries.  Di-
	     rectories recorded	in the hints file by previous runs of ldconfig
	     are also rescanned	for new	shared libraries.

     -r	     List the current contents of the hints file on the	standard out-
	     put.  The hints file is not modified.  The	list of	directories
	     stored in the hints file is included.

     -s	     Do	not scan the built-in system directory ("/usr/lib") for	shared
	     libraries.

     -v	     Switch on verbose mode.

SECURITY
     Special care must be taken	when loading shared libraries into the address
     space of set-user-Id programs.  Whenever such a program is	run by any
     user except the owner of the program, the dynamic linker will only	load
     shared libraries from the hints file.  In particular, the LD_LIBRARY_PATH
     is	not used to search for libraries.  Thus, the role of ldconfig is dual.
     In	addition to building a set of hints for	quick lookup, it also serves
     to	specify	the trusted collection of directories from which shared	ob-
     jects can be safely loaded.

ENVIRONMENT
     OBJFORMAT	   Overrides /etc/objformat (see below)	to determine whether
		   -aout or -elf is the	default.  If set, its value should be
		   either `aout' or `elf'.

FILES
     /var/run/ld.so.hints	  Standard hints file for the a.out dynamic
				  linker.
     /var/run/ld-elf.so.hints	  Standard hints file for the ELF dynamic
				  linker.
     /etc/ld.so.conf		  Conventional configuration file containing
				  directory names for invocations with -aout.
     /etc/ld-elf.so.conf	  Conventional configuration file containing
				  directory names for invocations with -elf.
     /var/run/ld-elf32.so.hints
     /var/run/ld32.so.hints	  Conventional configuration files containing
				  directory names for invocations with -32.
     /etc/objformat		  Determines whether -aout or -elf is the de-
				  fault.  If present, it must consist of a
				  single line containing either
				  `OBJFORMAT=aout' or `OBJFORMAT=elf'.

SEE ALSO
     ld(1), link(5)

HISTORY
     A ldconfig	utility	first appeared in SunOS	4.0, it	appeared in its	cur-
     rent form in FreeBSD 1.1.

BUGS
     Some security checks (for example,	verifying root ownership of added di-
     rectories)	are not	performed when -aout is	specified.

BSD			       November	11, 2005			   BSD

NAME | SYNOPSIS | DESCRIPTION | SECURITY | ENVIRONMENT | FILES | SEE ALSO | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ldconfig&sektion=8&manpath=FreeBSD+7.4-RELEASE>

home | help