This page says about order for library search in ld.so
:
Unless loading object has RUNPATH: RPATH of the loading object, then the RPATH of its loader (unless it has a RUNPATH), ..., until the end of the chain, which is either the executable or an object loaded by dlopen Unless executable has RUNPATH: RPATH of the executable LD_LIBRARY_PATH RUNPATH of the loading object ld.so.cache default dirs
And then suggests:
When you ship binaries, either use RPATH and not RUNPATH or ensure LD_LIBRARY_PATH is set before they are run.
So, using RPATH
with RUNPATH
is bad because RUNPATH
kind-of cancels RPATH
so indirect dynamic loading doesn't work as expected? But why then RPATH
got deprecated in favor of RUNPATH
?
Can somebody explain the situation?