ld.so(8)



LD.SO(8)                                                              LD.SO(8)

NAME
       ld.so/ld-linux.so - dynamic linker/loader

DESCRIPTION
       ld.so loads the shared libraries needed by a program, prepares the pro-
       gram to run, and then runs it.  Unless  explicitly  specified  via  the
       -static  option to ld during compilation, all Linux programs are incom-
       plete and require further linking at run time.

       The necessary shared libraries needed by the program are  searched  for
       in the following order

       o      Using      the      environment     variable     LD_LIBRARY_PATH
              (LD_AOUT_LIBRARY_PATH for a.out programs).  Except if  the  exe-
              cutable  is a setuid/setgid binary, in which case it is ignored.

       o      From the cache file /etc/ld.so.cache which contains  a  compiled
              list  of  candidate  libraries previously found in the augmented
              library path.

       o      In the default path /usr/lib, and then /lib.

COMMAND LINE OPTIONS
       --list List all dependencies and how they are resolved.

       --verify
              Verify that program  is  dynamically  linked  and  this  dynamic
              linker can handle it.

       --library-path PATH
              Override   LD_LIBRARY_PATH  environment  variable  setting  (see
              below).

       --ignore-rpath LIST
              Ignore RPATH and RUNPATH information in object  names  in  LIST.
              This  option  has  been  supported by glibc2 for about one hour.
              Then it was renamed into:

       --inhibit-rpath LIST

ENVIRONMENT
       LD_LIBRARY_PATH
              A colon-separated list of directories in which to search for ELF
              libraries  at  execution-time.   Similar to the PATH environment
              variable.

       LD_PRELOAD
              A whitespace-separated list of additional,  user-specified,  ELF
              shared  libraries  to  be loaded before all others.  This can be
              used  to  selectively  override  functions   in   other   shared
              libraries.   For  setuid/setgid  ELF binaries, only libraries in
              the standard search directories that are  also  setgid  will  be
              loaded.

       LD_TRACE_LOADED_OBJECTS
              If  present,  causes  the  program  to  list its dynamic library
              dependencies, as if run by ldd, instead of running normally.

       LD_BIND_NOW
              If present, causes the dynamic linker to resolve all symbols  at
              program startup instead of when they are first referenced.

       LD_AOUT_LIBRARY_PATH
              A  colon-separated  list  of  directories in which to search for
              a.out libraries at execution-time.  Similar to the PATH environ-
              ment variable.

       LD_AOUT_PRELOAD
              The  name of an additional, user-specified, a.out shared library
              to be loaded after all others.  This can be used to  selectively
              override functions in other shared libraries.

       LD_NOWARN
              Suppress  warnings about a.out libraries with incompatible minor
              version numbers.

       LD_WARN
              If set to non-empty string, warn about unresolved symbols.

       LD_KEEPDIR
              Don't ignore the directory in the names of a.out libraries to be
              loaded.  Use of this option is strongly discouraged.

       LD_DEBUG
              Output  verbose  debugging information about the dynamic linker.
              If set to `all' prints all debugging information it has, if  set
              to  `help'  prints  a help message about which categories can be
              specified in this environment variable.

       LD_DEBUG_OUTPUT
              File where LD_DEBUG output should be fed into, default is  stan-
              dard  output. LD_DEBUG_OUTPUT is ignored for setuid/setgid bina-
              ries.

       LD_VERBOSE
              If set to non-empty string, output symbol versioning information
              about the program if querying information about the program (ie.
              either LD_TRACE_LOADED_OBJECTS has been set, or --list or --ver-
              ify options have been given to the dynamic linker).

       LD_ASSUME_KERNEL
              Every  DSO  (Dynamic Shared Object, aka shared library) can tell
              the dynamic linker in glibc which  minimum  OS  ABI  version  is
              needed.  The  information  about  the  minimum OS ABI version is
              encoded in a ELF note section usually named .note.ABI-tag.  This
              is used to determine which library to load when multiple version
              of the same library is installed on the system.

              The LD_ASSUME_KERNEL environment variable overrides  the  kernel
              version used by the dynamic linker to determine which library to
              load.

FILES
       /lib/ld.so          a.out dynamic linker/loader
       /lib/ld-linux.so.*  ELF dynamic linker/loader
       /etc/ld.so.cache    File containing a compiled list of  directories  in
                           which  to  search for libraries and an ordered list
                           of candidate libraries.
       /etc/ld.so.preload  File containing a whitespace separated list of  ELF
                           shared  libraries  to be loaded before the program.
                           libraries  and  an  ordered   list   of   candidate
                           libraries.
       /etc/ld.so.nohwcap  When  this  file is present the dynamic linker will
                           load the non-optimized version of a  library,  even
                           if the CPU supports the optimized version.
       lib*.so*            shared libraries

SEE ALSO
       ldd(1), ldconfig(8).

BUGS
       Currently  ld.so has no means of unloading and searching for compatible
       or newer version of libraries.

       ld.so functionality is only available for  executables  compiled  using
       libc version 4.4.3 or greater.

AUTHORS
       David  Engel,  Eric  Youngdale, Peter MacDonald, Hongjiu Lu, Linus Tor-
       valds, Lars Wirzenius  and  Mitch  D'Souza  (not  necessarily  in  that
       order).

                                  26 May 2007                         LD.SO(8)

Man(1) output converted with man2html
list of all man pages