>>> The current gABI says "One object's DT_RUNPATH entry does not affect the
>>> search for any other object's dependencies." But there is no such
>>> wording
>>> for DT_RPATH in the previous gABI. In glibc, one object's DT_RPATH
>>> applies
>>> to all objects it loads. We can't replace DT_RPATH with DT_RUNPATH
>>> since DT_RUNPATH doesn't provide the same functionality as DT_RPATH.
My recollection is that DT_RPATH was the original (AT&T) definition, and it
only applied to the object that contained it, and affected the search for the
dependencies of that object.
But, there were differences with the interaction of LD_LIBRARY_PATH.
On Linux the order was DT_RPATH, LD_LIBRARY_PATH, defaults. On
Solaris the order was LD_LIBRARY_PATH, DT_RPATH, defaults. We
always thought the environment variable should override.
DT_RUNPATH was invented to define the Solaris search order. On
Solaris DT_RPATH and DT_RUNPATH are treated as the same.
Maybe there were other subtleties I've long forgotten about.
--
----
Rod.