Richard Sandiford <rdsandif...@googlemail.com> writes:
> Hans-Peter Nilsson <h...@bitrange.com> writes:
>> On Tue, 28 Aug 2012, Richard Sandiford wrote:
>>> Hans-Peter Nilsson <h...@bitrange.com> writes:
>>> > On Sun, 26 Aug 2012, Richard Sandiford wrote:
>>> >> I'm preparing a patch to turn gcc.target/mips into a torture-like
>>> >> testsuite.
>>> >
>>> > While on the subject of gcc.target/mips and its extensions, it
>>> > also doesn't handle a build configured with --with-synci=yes.
>>> > (Well, not on the 4.7 branch at least.)
>>>
>>> What goes wrong?
>>
>> I don't remember details, but IIRC some synci-related tests go
>> wrong for mipsisa32r2el-linux-gnu due to -msynci being the
>> default.  Don't worry, I've fixed it in the local import. :)
>> I though the above would entice you to try it, but I guess I
>> need to report better for that to happen.  Maybe later.
>
> Trying it now.  I suspect it was the problem that Steve hit:
> the implicit -msynci is still (deliberately) kept when a lower
> architecture is selected.
>
> I'm testing a patch to make the testsuite work out the default
> -m{no,}synci, which ought to be enough.  The usual rules should
> then kick in and force -mno-synci where necessary.  Hopefully.

Here's the patch.  Tested on mipsisa64r2-elf, where mips.exp
comes out clean.  I looked at the logs to make sure that -mno-synci
was being passed for lower architectures but that no explicit
-msynci or -mno-synci option was used when testing mips64r2.
Applied.

Richard


gcc/
        * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_synci
        if TARGET_SYNCI.

gcc/testsuite/
        * gcc.target/mips/mips.exp: Work out default -msynci setting.

Index: gcc/config/mips/mips.h
===================================================================
--- gcc/config/mips/mips.h      2012-08-29 19:40:47.000000000 +0100
+++ gcc/config/mips/mips.h      2012-08-29 19:50:50.144982449 +0100
@@ -517,6 +517,9 @@ #define TARGET_CPU_CPP_BUILTINS()                           
        \
       if (TARGET_OCTEON)                                               \
        builtin_define ("__OCTEON__");                                  \
                                                                        \
+      if (TARGET_SYNCI)                                                        
\
+       builtin_define ("__mips_synci");                                \
+                                                                       \
       /* Macros dependent on the C dialect.  */                                
\
       if (preprocessing_asm_p ())                                      \
        {                                                               \
Index: gcc/testsuite/gcc.target/mips/mips.exp
===================================================================
--- gcc/testsuite/gcc.target/mips/mips.exp      2012-08-27 17:27:13.000000000 
+0100
+++ gcc/testsuite/gcc.target/mips/mips.exp      2012-08-29 19:50:50.141982450 
+0100
@@ -767,6 +767,12 @@ proc mips-dg-init {} {
            "-mno-smartmips",
            #endif
 
+           #ifdef __mips_synci
+           "-msynci",
+           #else
+           "-mno-synci",
+           #endif
+
            0
        };
     }]

Reply via email to