This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix elf/tst-rtld-preload cross-testing


On 1/23/20 4:33 PM, Joseph Myers wrote:
> 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.

OK for master with Siddhesh's approval.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

> 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)' \

OK. This is correct because $(test-wrapper-env) is $(test-wrapper) with 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

OK.

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

OK.

>  ${test_wrapper_env} \

OK. This is the point at which the test is run on the target.

>  ${run_program_env} \
> -${test_wrapper} $rtld --library-path "$library_path" \
> +$rtld --library-path "$library_path" \

OK.

>    --preload "$preload" $test_program 2>&1 && rc=0 || rc=$?
>  echo "# exit status $rc"
>  
> 


-- 
Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]