git-ld-library-path-checks
authorGNU Libc Maintainers <debian-glibc@lists.debian.org>
Tue, 5 Jan 2021 05:47:42 +0000 (05:47 +0000)
committerAurelien Jarno <aurel32@debian.org>
Tue, 5 Jan 2021 05:47:42 +0000 (05:47 +0000)
Commited for 2.33

commit 3dbbd2ff92b1a0a2465461ee049e3e2813b73fa4
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Fri Nov 13 19:37:41 2020 +0000

    Add {,sysdep-}ld-library-path make variable

    On GNU/Hurd we not only need $(common-objpfx) in LD_LIBRARY_PATH when loading
    dynamic objects, but also $(common-objpfx)/mach and $(common-objpfx)/hurd. This
    adds an ld-library-path variable to be used as LD_LIBRARY_PATH basis in
    Makefiles, and a sysdep-ld-library-path variable for sysdeps to add some
    more paths, here mach/ and hurd/.

Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name git-ld-library-path-checks.diff

Makeconfig
dlfcn/Makefile
elf/Makefile
inet/Makefile
sysdeps/mach/hurd/Makeconfig

index f252842979a1d777e0f0c2bdafa7a65aee0805cd..464260675318f92a53daa280e97a1ec76e22d0ae 100644 (file)
@@ -769,6 +769,9 @@ built-program-cmd = $(built-program-cmd-before-env) $(run-program-env) \
 # the second dependency of the makefile target in which
 # $(host-built-program-cmd) is used.
 host-built-program-cmd = $(run-via-rtld-prefix) $(built-program-file)
+# $(ld-library-path) is the common content to be set in LD_LIBRARY_PATH
+# for running static binaries that may load dynamic objects.
+ld-library-path = $(objpfx):$(common-objpfx)$(addprefix :,$(sysdep-ld-library-path))
 
 ifndef LD
 LD := ld -X
index 4b7e0387b3de43408c70b81b712179f92db6c7a4..412e7c57d52a642f2c6f13f9ef128585252122b3 100644 (file)
@@ -52,7 +52,7 @@ ifeq (yes,$(build-shared))
 tests += tststatic tststatic2 tststatic3 tststatic4 tststatic5
 tests-static += tststatic tststatic2 tststatic3 tststatic4 tststatic5
 modules-names += modstatic modstatic2 modstatic3 modstatic5
-tststatic-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf
+tststatic-ENV = LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx)elf
 tststatic2-ENV = $(tststatic-ENV)
 tststatic3-ENV = $(tststatic-ENV)
 tststatic4-ENV = $(tststatic-ENV)
index 632a4d8b0f6a30e5be7e9d675a81b6e3fd0fdcad..6041344564fa9279fcdb55a55bc898380442768c 100644 (file)
@@ -175,7 +175,7 @@ tests-static := $(tests-static-normal) $(tests-static-internal)
 ifeq (yes,$(build-shared))
 tests-static += tst-tls9-static
 tst-tls9-static-ENV = \
-       LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn
+       LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx)dlfcn
 
 tests += restest1 preloadtest loadfail multiload origtest resolvfail \
         constload1 order noload filter \
@@ -1611,7 +1611,7 @@ $(objpfx)tst-libc_dlvsym-dso.so: $(libsupport) $(libdl)
 $(objpfx)tst-libc_dlvsym.out: $(objpfx)tst-libc_dlvsym-dso.so
 $(objpfx)tst-libc_dlvsym-static: $(common-objpfx)dlfcn/libdl.a
 tst-libc_dlvsym-static-ENV = \
-  LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn
+  LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx)dlfcn
 $(objpfx)tst-libc_dlvsym-static.out: $(objpfx)tst-libc_dlvsym-dso.so
 
 $(objpfx)tst-big-note: $(objpfx)tst-big-note-lib.so
index bd2fc317b597316d83e8a11bf624d480c20f3a99..cb87e6cc2205aee14b27f80cd3b6fc3c023b2352 100644 (file)
@@ -115,5 +115,5 @@ endif
 # The test uses dlopen indirectly and would otherwise load system
 # objects.
 tst-idna_name_classify-ENV = \
-  LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf
+  LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx):$(common-objpfx)elf
 $(objpfx)tst-idna_name_classify.out: $(gen-locales)
index fe3b7c553eb3b95a9c5d8071f2b4968aef58c583..9adf8f291d58645fde414b233fad2e11e0cb91c3 100644 (file)
@@ -5,3 +5,5 @@ static-start-installed-name = crt0.o
 
 # GNU libc on the Hurd is always reentrant.
 libc-reentrant = yes
+
+sysdep-ld-library-path = $(common-objpfx)/mach:$(common-objpfx)/hurd