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