The shared libraries needed by the program are searched for in
various places:
o (ELF only) Using the DT_RPATH dynamic section attribute
of the binary if present and DT_RUNPATH attribute does
not exist. Use of DT_RPATH is deprecated. (-Wl, -rpath,$DIR)
o Using the environment variable LD_LIBRARY_PATH. Except
if the executable is a set-user-ID/set-group-ID binary,
in which case it is ignored.
o (ELF only) Using the DT_RUNPATH dynamic section
attribute of the binary if present. (-Wl, -rpath, $DIR, --enable-new-dtags)
o From the cache file /etc/ld.so.cache which contains a
compiled list of candidate libraries previously found in
the augmented library path. If, however, the binary was
linked with -z nodeflib linker option, libraries in the
default library paths are skipped.
Reference http://blog.lxgcc.net/?tag=dt_rpath