[v3,0/3] Properly handle DT_RUNPATH

Message ID 20211208152501.1483087-1-hjl.tools@gmail.com
Headers
Series Properly handle DT_RUNPATH |

Message

H.J. Lu Dec. 8, 2021, 3:24 p.m. UTC
  DT_RUNPATH is only used to find the immediate dependencies of the
executable or shared object containing the DT_RUNPATH entry:

1. Define link-test-modules-rpath-link if $(build-hardcoded-path-in-tests)
is yes.
2. Use $(link-test-modules-rpath-link) in build-module-helper so that
test modules can dlopen modules with DT_RUNPATH.
3. Add a test to show why link-test-modules-rpath-link is needed.
4. The glibc internal NSS functions should always load NSS modules from
the system.  For testing purpose, disable DT_RUNPATH on NSS tests so
that the glibc internal NSS functions can load testing NSS modules
via DT_RPATH.
5. Update glibc LD_AUDIT dlopen call to try the DT_RUNPATH entry of the
executable.

H.J. Lu (3):
  Add and use link-test-modules-rpath-link [BZ #28455]
  Disable DT_RUNPATH on NSS tests [BZ #28455]
  elf: Also try DT_RUNPATH for LD_AUDIT dlopen [BZ #28455]

 Makeconfig           |  2 ++
 Makerules            |  1 +
 elf/Makefile         | 16 ++++++++++++++--
 elf/dl-load.c        | 15 +++++++++++++++
 elf/tst-audit14a.c   |  1 +
 elf/tst-global2.c    | 32 ++++++++++++++++++++++++++++++++
 elf/tst-globalmod2.c | 41 +++++++++++++++++++++++++++++++++++++++++
 nss/Makefile         |  8 ++++++++
 8 files changed, 114 insertions(+), 2 deletions(-)
 create mode 100644 elf/tst-audit14a.c
 create mode 100644 elf/tst-global2.c
 create mode 100644 elf/tst-globalmod2.c