From 23db68ed9d2cc398ef2ee02b904a35ed880e95ed Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sat, 8 Nov 2025 21:47:25 +0100 Subject: [PATCH] Add missing $(rpath-link) to elf/ld.so --library-path This is notably needed for GNU/Hurd's libmachuser.so and libhurduser.so. --- elf/Makefile | 2 +- elf/tst-pathopt.sh | 4 +++- scripts/dso-ordering-test.py | 6 ++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/elf/Makefile b/elf/Makefile index 5a676f858d..7ed95b72af 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -1913,7 +1913,7 @@ $(objpfx)lateglobal.out: $(objpfx)ltglobmod1.so $(objpfx)ltglobmod2.so $(objpfx)tst-pathopt.out: tst-pathopt.sh $(objpfx)tst-pathopt \ $(objpfx)pathoptobj.so $(SHELL) $< $(common-objpfx) '$(test-wrapper-env)' \ - '$(run-program-env)'; \ + '$(run-program-env)' '$(rpath-link)' ; \ $(evaluate-test) $(objpfx)tst-rtld-load-self.out: tst-rtld-load-self.sh $(objpfx)ld.so diff --git a/elf/tst-pathopt.sh b/elf/tst-pathopt.sh index b1539c8ee9..c44cbee0c7 100755 --- a/elf/tst-pathopt.sh +++ b/elf/tst-pathopt.sh @@ -22,6 +22,8 @@ set -e common_objpfx=$1 test_wrapper_env=$2 run_program_env=$3 +# Remove the last space to allow concatenate extra paths. +library_path=$(echo $4) test -e ${common_objpfx}elf/will-be-empty && rm -fr ${common_objpfx}elf/will-be-empty @@ -32,7 +34,7 @@ cp ${common_objpfx}elf/pathoptobj.so ${common_objpfx}elf/for-renamed/renamed.so ${test_wrapper_env} \ ${run_program_env} \ -LD_LIBRARY_PATH=${common_objpfx}elf/will-be-empty:${common_objpfx}elf/for-renamed:${common_objpfx}.:${common_objpfx}dlfcn \ +LD_LIBRARY_PATH=$library_path:${common_objpfx}elf/will-be-empty:${common_objpfx}elf/for-renamed:${common_objpfx}.:${common_objpfx}dlfcn \ ${common_objpfx}elf/ld.so ${common_objpfx}elf/tst-pathopt \ > ${common_objpfx}elf/tst-pathopt.out diff --git a/scripts/dso-ordering-test.py b/scripts/dso-ordering-test.py index d5ae50fd2c..0912550f1d 100644 --- a/scripts/dso-ordering-test.py +++ b/scripts/dso-ordering-test.py @@ -748,7 +748,7 @@ def process_testcase(t): ("${test_wrapper_env} ${run_program_env} %s\\\n" "${common_objpfx}support/test-run-command \\\n" "${common_objpfx}elf/ld.so \\\n" - "--library-path ${common_objpfx}elf/%s:" + "--library-path $library_path:${common_objpfx}elf/%s:" "${common_objpfx}elf:${common_objpfx}.:" "${common_objpfx}dlfcn \\\n" "${common_objpfx}elf/%s/%s > \\\n" @@ -1021,6 +1021,8 @@ def process_testcase(t): t.sh.write("common_objpfx=$1\n") t.sh.write("test_wrapper_env=$2\n") t.sh.write("run_program_env=$3\n") + # Remove the last space to allow concatenate extra paths. + t.sh.write("library_path=$(echo $4)\n") t.sh.write("something_failed=false\n") # Starting part of Makefile fragment @@ -1050,7 +1052,7 @@ def process_testcase(t): % (t.test_name, test_srcdir, t.test_name, expected_output_files)) makefile.write("\t$(SHELL) $< $(common-objpfx) '$(test-wrapper-env)' " - "'$(run-program-env)' > $@; $(evaluate-test)\n") + "'$(run-program-env)' '$(rpath-link)' > $@; $(evaluate-test)\n") makefile.write("ifeq ($(run-built-tests),yes)\n") if t.xtest: makefile.write("xtests-special += $(objpfx)%s.out\n" % (t.test_name)) -- 2.47.3