dwww Home | Manual pages | Find package

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 /lib, and then /usr/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_BIND_NOT
              Do not update the GOT (global offset table) and  PLT  (procedure
              linkage table) after resolving a symbol.

       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_PROFILE
              Shared object to be profiled.

       LD_PROFILE_OUTPUT
              File  where LD_PROFILE output should be stored, default is stan-
              dard output.  LD_PROFILE_OUTPUT  is  ignored  for  setuid/setgid
              binaries.

       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 ver-
              sion used by the dynamic linker to determine  which  library  to
              load.

RPATH TOKEN EXPANSION
       The  runtime  linker provides a number of tokens that can be used in an
       rpath specification (DT_RPATH or DT_RUNPATH).

       $ORIGIN
              ld.so understands the string $ORIGIN (or equivalently ${ORIGIN})
              in  an  rpath specification to mean the directory containing the
              application  executable.  Thus,  an   application   located   in
              somedir/app   could   be  compiled  with  gcc  -Wl,-rpath,'$ORI-
              GIN/../lib' so that it finds an  associated  shared  library  in
              somedir/lib  no matter where somedir is located in the directory
              hierarchy.

       $PLATFORM
              The string $PLATFORM (or equivalently ${PLATFORM}) in  an  rpath
              specifcation  expands  to  the  processor  type  of  the current
              machine. Please note that on some architectures the Linux kernel
              doesn't provide a platform string to the dynamic linker.

       $LIB   The string $LIB (or equivalently ${LIB}) in an rpath corresponds
              to the system libraries directory, which is /lib for the  native
              architecture on FHS compliant GNU/Linux systems.

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)

Generated by dwww version 1.11.3 on Tue Jun 18 08:51:12 CEST 2013.