elf: Build tst-relr-mod[34]a.so with $(LDFLAGS-rpath-ORIGIN)
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 28 Oct 2022 22:16:32 +0000 (15:16 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 31 Oct 2022 16:00:26 +0000 (09:00 -0700)
When --enable-hardcoded-path-in-tests is used only with DT_RUNPATH,
elf/tst-relr3 and elf/tst-relr4 failed to run.  Their dependency
libraries, tst-relr-mod3a.so and tst-relr-mod4a.so, are failed to
load since DT_RUNPATH on executable doesn't apply to them.  Build
tst-relr-mod3a.so and tst-relr-mod4a.so with $(LDFLAGS-rpath-ORIGIN)
to add DT_RUNPATH for their dependency libraries.
Reviewed-by: Fangrui Song <maskray@google.com>
elf/Makefile

index 86c960c..5f7d222 100644 (file)
@@ -2872,7 +2872,7 @@ $(objpfx)tst-relr-mod3b.so: $(objpfx)tst-relr-mod3b.os
 $(objpfx)tst-relr-mod3a.so: $(objpfx)tst-relr-mod3a.os \
   $(objpfx)tst-relr-mod3b.so
        $(LINK.o) -nostdlib -nostartfiles -Wl,-z,pack-relative-relocs \
-       $(LDFLAGS-soname-fname) \
+       $(LDFLAGS-soname-fname) $(LDFLAGS-rpath-ORIGIN) \
        -shared -o $@.new $(filter-out $(map-file),$^)
        $(call after-link,$@.new)
        mv -f $@.new $@
@@ -2891,7 +2891,7 @@ $(objpfx)tst-relr-mod4b.so: $(objpfx)tst-relr-mod4b.os
 $(objpfx)tst-relr-mod4a.so: $(objpfx)tst-relr-mod4a.os \
   $(objpfx)tst-relr-mod4b.so
        $(LINK.o) -nostdlib -nostartfiles -Wl,-z,pack-relative-relocs \
-       $(LDFLAGS-soname-fname) \
+       $(LDFLAGS-soname-fname) $(LDFLAGS-rpath-ORIGIN) \
        -shared -o $@.new $(filter-out $(map-file),$^)
        $(call after-link,$@.new)
        mv -f $@.new $@