Fix elf/tst-rtld-preload cross-testing.

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.
This commit is contained in:
Joseph Myers 2020-01-24 17:22:13 +00:00
parent 00167b531d
commit d01fd5f0ce
2 changed files with 8 additions and 9 deletions

View file

@ -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)

View file

@ -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"