> On Sep 20, 2021, at 10:59 AM, Richard Earnshaw 
> <richard.earns...@foss.arm.com> wrote:
> 
> 
> 
> On 20/09/2021 16:51, Qing Zhao via Gcc-patches wrote:
>>> On Sep 20, 2021, at 9:36 AM, Richard Earnshaw 
>>> <richard.earns...@foss.arm.com> wrote:
>>> 
>>> 
>>> 
>>> On 20/09/2021 14:55, Qing Zhao wrote:
>>>>> On Sep 20, 2021, at 8:18 AM, Richard Earnshaw 
>>>>> <richard.earns...@foss.arm.com> wrote:
>>>>> 
>>>>> 
>>>>> 
>>>>> On 20/09/2021 13:47, Qing Zhao wrote:
>>>>>>> On Sep 20, 2021, at 5:43 AM, Richard Earnshaw 
>>>>>>> <richard.earns...@foss.arm.com> wrote:
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On 17/09/2021 20:48, Qing Zhao via Gcc-patches wrote:
>>>>>>>> Hi,
>>>>>>>> There are much less issues with aarch64/auto-init-* test cases.
>>>>>>>> Different -march values (from ‘armv8-a’, ‘armv8.1-a’, till 
>>>>>>>> ‘armv8.6-a’, ‘armv8-r’) do not change the pattern match.
>>>>>>>> Only
>>>>>>>> 1. -mabi=ilp32/lp64 impact two of the testing cases “auto-init-2.c” 
>>>>>>>> and “auto-init-padding-5.c”.
>>>>>>>> 2. -fstack-clash-protection impact two of the testing cases 
>>>>>>>> “auto-init-1.c” and “auto-init-7.c”.
>>>>>>>> Naturally the patch for this set is:
>>>>>>>> A. Adjust the patterns for ilp32 or lp64 in “auto-init-2.c” and 
>>>>>>>> “auto-init-padding-5.c”;
>>>>>>>> B. Add -fno-stack-protector to “auto-init-1.c” and “auto-init-7.c”
>>>>>>>> The above A fixed issue 1, however, the above B did not fix issue 2.
>>>>>>>> If I fixed “auto-init-1.c” as:
>>>>>>>> diff --git a/gcc/testsuite/gcc.target/aarch64/auto-init-1.c 
>>>>>>>> b/gcc/testsuite/gcc.target/aarch64/auto-init-1.c
>>>>>>>> index 0fa4708..a38d91b 100644
>>>>>>>> --- a/gcc/testsuite/gcc.target/aarch64/auto-init-1.c
>>>>>>>> +++ b/gcc/testsuite/gcc.target/aarch64/auto-init-1.c
>>>>>>>> @@ -1,6 +1,6 @@
>>>>>>>>  /* Verify zero initialization for integer and pointer type automatic 
>>>>>>>> variables.  */
>>>>>>>>  /* { dg-do compile } */
>>>>>>>> -/* { dg-options "-ftrivial-auto-var-init=zero -fdump-rtl-expand" } */
>>>>>>>> +/* { dg-options "-ftrivial-auto-var-init=zero -fdump-rtl-expand 
>>>>>>>> -fno-stack-protector" } */
>>>>>>>>    #ifndef __cplusplus
>>>>>>>>  # define bool _Bool
>>>>>>>> So, I took a look at the log file of the testing, and found that, If I 
>>>>>>>> tested it as:
>>>>>>>>  make check-gcc 
>>>>>>>> RUNTESTFLAGS='--target_board=unix\{-mabi=lp64/-fstack-clash-protection/-fstack-protector-all\}
>>>>>>>>  aarch64.exp=auto-init*’
>>>>>>>> In the log file, I got:
>>>>>>>> /home/qinzhao/Work/GCC/build_git/gcc/xgcc 
>>>>>>>> -B/home/qinzhao/Work/GCC/build_git/gcc/ 
>>>>>>>> /home/qinzhao/Work/GCC/latest_gcc_git/gcc/testsuite/gcc.target/aarch64/auto-init-1.c
>>>>>>>>   -fdiagnostics-plain-output  -ftrivial-auto-var-init=zero 
>>>>>>>> -fdump-rtl-expand -fno-stack-protector -ffat-lto-objects -S  
>>>>>>>> -mabi=lp64 -fstack-clash-protection -fstack-protector-all  -o 
>>>>>>>> auto-init-1.s
>>>>>>>> From it, we can see, that the options that were passed through 
>>>>>>>> RUNTESTFLAGS “mabi-lp64 -fstack-clash-protection 
>>>>>>>> -fstack-protector-all” were appended AFTER the options inside the 
>>>>>>>> testing case through “dg-options”. As a result, the option 
>>>>>>>> “-fno-stack-protector” did not have any impact at all.
>>>>>>>> What’s the expected behavior for the order of these options? Should 
>>>>>>>> options through RUNTESTFLAGS be appended BEFORE or AFTER the options 
>>>>>>>> through testing cases?
>>>>>>>> For X86, the options through RUNTESTFLAGS are added BEFORE the options 
>>>>>>>> through testing cases. Therefore adding “-fno-stack-protector” has the 
>>>>>>>> expected result.
>>>>>>> 
>>>>>>> Can you check that you are using the same version of dejagnu on both 
>>>>>>> platforms?
>>>>>> Stupid question:  how to check the version of it?
>>>>> 
>>>>> $ runtest --version
>>>> Thanks.
>>>> On aarch64:
>>>> qinzhao@gcc116:~/Work/GCC/build_git$ runtest --version
>>>> Expect version is  5.45
>>>> Tcl version is             8.6
>>>> Framework version is       1.5
>>> 
>>> Ok, so this is dejagnu 1.5 (older versions of dejagnu reported the 
>>> 'framework version') ...
>>> 
>>>> On X86:
>>>> [opc@qinzhao-ol8u3-x86 gcc]$ runtest --version
>>>> WARNING: Couldn't find the global config file.
>>>> DejaGnu version    1.6.1
>>>> Expect version     5.45.4
>>>> Tcl version        8.6
>>> 
>>> While this is dejagnu 1.6.1
>>> 
>>> IIRC there were some changes to the way various options were combined at 
>>> one point and I suspect this may be the source of your problem.  Can you 
>>> update your dejagnu on your aarch64 system to be the same as that on x86?
>> The aarch64 machine I used is a GCC farm machine, looks like it has an older 
>> version of dejagnu. I don’t have permission to update it myself.
>> I will use another aarch64 machine to test this to see whether a higher 
>> version of dejagnu can resolve the issue or not.
> 
> You could probably try installing a local copy of dejagnu in, for example, 
> ~/tools and then adding that to your path before the system version.
Will try this too.
thanks.

Qing
> 
> R.
> 
>> Thanks a lot for your help.
>> Qing
>>> 
>>> R.
>>> 
>>>> So, is there anything wrong with the installation of runtest on X86?
>>>> Qing
>>>>> 
>>>>> R.
>>>>> 
>>>>>> Qing
>>>>>>> 
>>>>>>> R.
>>>>>>> 
>>>>>>>> Is this a bug in aarch64 testing suite?
>>>>>>>> Thanks.
>>>>>>>> Qing

Reply via email to