This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Fix elf/tst-rtld-preload cross-testing
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Cc: <siddhesh at sourceware dot org>
- Date: Thu, 23 Jan 2020 21:33:28 +0000
- Subject: Fix elf/tst-rtld-preload cross-testing
- Ironport-sdr: OhBhtgJrtl5IWUOYgU6aTg0A41VOg6hwgJA6YAlAcBkJR58zkAqKQAFidwR9+NrXYxYG46CRZg 4gFhuFrgdmCNuUVTY1ytEy7eude531bPF38rKFgAcoyS1bgNqgwIBP0qK68vBC7IBWs8k4sjTR lPIpJwn/iMI+d1N5XGQlUWZh5/+WN6iIZPhRTgfrd7harJJ5ZCUEBvvHTzY96YwbBz8APw4ErK T8C7fcvJGbWdx45sZp+kck5IAv2m9/or4VZd6JbfYN5pztN9Eby9eMgC9IFk8TWrGzaaxefR4Q J1g=
- Ironport-sdr: L3NkeRJ06DIqt6sf43oVg9Rh8EuuA1h9RhoySxET91qCpNKG65t41F4oV6BnoLDg8DrF0dmgd6 OfM29rfhUwWQ==
As noted in
<https://sourceware.org/ml/libc-alpha/2019-06/msg00824.html>,
elf/tst-rtld-preload fails when cross-testing because it attempts to
run the test wrapper with itself. Unfortunately, that thread never
resulted in a complete and correct patch for that test.
This patch addresses the issues with that test more thoroughly. The
test is changed not to use the wrapper twice, including updating the
message it prints about the command it runs to be more complete and
accurate after the change; the Makefile is changed not to pass the
redundant '$(test-wrapper)' argument.
Tested for Arm that this fixes the failure seen for that test in
cross-testing.
diff --git a/elf/Makefile b/elf/Makefile
index 0c6bd926a1..632a4d8b0f 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -931,7 +931,7 @@ $(objpfx)tst-rtld-preload.out: tst-rtld-preload.sh $(objpfx)ld.so \
$(objpfx)preloadtest \
$(preloadtest-preloads:%=$(objpfx)%.so)
$(SHELL) $< $(objpfx)ld.so $(objpfx)preloadtest \
- '$(test-wrapper)' '$(test-wrapper-env)' '$(run_program_env)' \
+ '$(test-wrapper-env)' '$(run_program_env)' \
'$(rpath-link)' '$(tst-rtld-preload-OBJS)' > $@; \
$(evaluate-test)
diff --git a/elf/tst-rtld-preload.sh b/elf/tst-rtld-preload.sh
index 02fe4a5a06..190d35c2ea 100755
--- a/elf/tst-rtld-preload.sh
+++ b/elf/tst-rtld-preload.sh
@@ -21,17 +21,16 @@ set -e
rtld=$1
test_program=$2
-test_wrapper=$3
-test_wrapper_env=$4
-run_program_env=$5
-library_path=$6
-preload=$7
+test_wrapper_env=$3
+run_program_env=$4
+library_path=$5
+preload=$6
-echo "# [${test_wrapper}] [$rtld] [--library-path] [$library_path]" \
- "[--preload] [$preload] [$test_program]"
+echo "# [${test_wrapper_env}] [${run_program_env}] [$rtld] [--library-path]" \
+ "[$library_path] [--preload] [$preload] [$test_program]"
${test_wrapper_env} \
${run_program_env} \
-${test_wrapper} $rtld --library-path "$library_path" \
+$rtld --library-path "$library_path" \
--preload "$preload" $test_program 2>&1 && rc=0 || rc=$?
echo "# exit status $rc"
--
Joseph S. Myers
joseph@codesourcery.com