On 7/22/22 1:17 PM, Segher Boessenkool wrote: > On Fri, Jul 22, 2022 at 10:22:51AM +0800, Kewen.Lin wrote: >> on 2022/7/22 02:48, Segher Boessenkool wrote: >> As PR106345 shows, GCC can use an explicit tune setting when it's >> configured, even if there is one "-mdejagnu-cpu=", it doesn't >> override the explicit given one, so we need one explicit >> "-mdejagnu-tune=". > > And that is the problem. GCC's automatic setting is *not* an explicit > option, not given by the user. --with-tune= should not result in adding > an -mtune= option in the resulting compiler, it should not set command- > line options. > [snip] > And it should not do that.
Currently, our rs6000.h has this: /* Only for use in the testsuite: -mdejagnu-cpu= simply overrides -mcpu=. With older versions of Dejagnu the command line arguments you set in RUNTESTFLAGS override those set in the testcases; with this option, the testcase will always win. Ditto for -mdejagnu-tune=. */ #define DRIVER_SELF_SPECS \ "%{mdejagnu-cpu=*: %<mcpu=* -mcpu=%*}", \ "%{mdejagnu-tune=*: %<mtune=* -mtune=%*}", \ "%{mdejagnu-*: %<mdejagnu-*}", \ SUBTARGET_DRIVER_SELF_SPECS This means -mdejagnu-cpu= usage will only filter out -mcpu= usage. I guess it should also filter out all -mtune= usage as well. That way, we'll tune according to the -mdejagnu-cpu= option which is what we want. That was an oversight on my part when I added the code. :-( So I think the way the code above *should* work is: 1) Any -mdejagnu-cpu= usage should filter out all -mcpu= and -mtune= options. 2) Any -mdejagnu-tune= usage should filter all -mtune= options. It should not filter out any -mcpu= options. I believe that should fix the issue we're seeing. Peter