[patch] Guard aarch64/aapcs64 tests using abitest.S by check_weak_available
Richard Sandiford
richard.sandiford@arm.com
Mon Dec 16 10:38:00 GMT 2019
Olivier Hainque <hainque@adacore.com> writes:
> Hello,
>
> Some tests from gcc/testsuite/gcc.target/aarch64/aapcs64
> resort to the abitest.S source, which defines a few weak symbols:
>
> ...
> .weak testfunc
> .weak testfunc_ptr
> .weak saved_return_address
>
> The attached patch is a proposal to prevent the execution of
> those tests in configurations where weak symbols are advertised
> as not supported.
>
> This cures a significant number of failures on VxWorks and bootstrap
> + regress tests fine on aarch64-linux.
>
> Is this ok to commit ?
>
> Thanks in advance!
>
> With Kind Regards,
>
> Olivier
>
> 2019-12-16 Joel Brobecker <brobecker@adacore.com>
> Olivier Hainque <hainque@adacore.com>
>
> testsuite/
>
> * gcc.target/aarch64/aapcs64/aapcs64.exp: Guard tests using
> abitest.S by check_weak_available.
OK, thanks.
Richard
>
> .../gcc.target/aarch64/aapcs64/aapcs64.exp | 36 ++++++++++++-------
> 1 file changed, 23 insertions(+), 13 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp b/gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
> index c17af6c3084..36687800ecd 100644
> --- a/gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
> +++ b/gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
> @@ -29,12 +29,16 @@ torture-init
> set-torture-options $C_TORTURE_OPTIONS
> set additional_flags "-W -Wall -Wno-abi"
>
> -# Test parameter passing.
> -foreach src [lsort [glob -nocomplain $srcdir/$subdir/test_*.c]] {
> - if {[runtest_file_p $runtests $src]} {
> +# Test parameter passing. This uses abitest.S which relies on weak
> +# symbols.
> +
> +if { [check_weak_available] } {
> + foreach src [lsort [glob -nocomplain $srcdir/$subdir/test_*.c]] {
> + if {[runtest_file_p $runtests $src]} {
> c-torture-execute [list $src \
> $srcdir/$subdir/abitest.S] \
> $additional_flags
> + }
> }
> }
>
> @@ -48,25 +52,31 @@ foreach src [lsort [glob -nocomplain $srcdir/$subdir/rec_*.c]] {
> }
> }
>
> -# Test unnamed argument retrieval via the va_arg macro.
> -foreach src [lsort [glob -nocomplain $srcdir/$subdir/va_arg-*.c]] {
> - if {[runtest_file_p $runtests $src]} {
> +# Test unnamed argument retrieval via the va_arg macro. This uses abitest.S
> +# which relies on weak symbols.
> +if { [check_weak_available] } {
> + foreach src [lsort [glob -nocomplain $srcdir/$subdir/va_arg-*.c]] {
> + if {[runtest_file_p $runtests $src]} {
> c-torture-execute [list $src \
> $srcdir/$subdir/abitest.S] \
> $additional_flags
> + }
> }
> }
>
> -# Test function return value.
> -# Disable -fipa-ra to prevent the compiler from generating
> -# conflicting code.
> -set additional_flags_for_func_ret $additional_flags
> -append additional_flags_for_func_ret " -fno-ipa-ra"
> -foreach src [lsort [glob -nocomplain $srcdir/$subdir/func-ret-*.c]] {
> - if {[runtest_file_p $runtests $src]} {
> +# Test function return value. This uses abitest.S which relies on
> +# weak symbols.
> +if { [check_weak_available] } {
> + # Disable -fipa-ra to prevent the compiler from generating
> + # conflicting code.
> + set additional_flags_for_func_ret $additional_flags
> + append additional_flags_for_func_ret " -fno-ipa-ra"
> + foreach src [lsort [glob -nocomplain $srcdir/$subdir/func-ret-*.c]] {
> + if {[runtest_file_p $runtests $src]} {
> c-torture-execute [list $src \
> $srcdir/$subdir/abitest.S] \
> $additional_flags_for_func_ret
> + }
> }
> }
More information about the Gcc-patches
mailing list