This adds an option -mdejagnu-cpu=. This option simply overrides what is given in -mcpu=. The reason for this is that with older versions of DejaGnu the value given in the RUNTESTFLAGS will override the value a testcase wants to have.
Ill commit this patch with the first changelog, and also the result of these two one-liners with the second changelog: perl -ni -e 'print unless /dg-skip-if "do not override -mcpu"/' \ $(find gcc/testsuite/gcc.target/powerpc/ -type f) perl -pi -e 's/(dg-options.*)-mcpu=/\1-mdejagnu-cpu=/' \ $(find gcc/testsuite/gcc.target/powerpc/ -type f) Segher 2019-03-01 Segher Boessenkool <seg...@kernel.crashing.org> * config/rs6000/rs6000.c (rs6000_option_override_internal): If rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index. * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option. 2019-03-01 Segher Boessenkool <seg...@kernel.crashing.org> gcc/testsuite/ * gcc.target/powerpc/ throughout: Delete dg-skip-if "do not override -mcpu". Use -mdejagnu-cpu= in dg-options instead of -mcpu=. --- gcc/config/rs6000/rs6000.c | 3 +++ gcc/config/rs6000/rs6000.opt | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index b1249bc..b489bef 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -3869,6 +3869,9 @@ rs6000_option_override_internal (bool global_init_p) /* Don't override by the processor default if given explicitly. */ set_masks &= ~rs6000_isa_flags_explicit; + if (global_init_p && rs6000_dejagnu_cpu_index >= 0) + rs6000_cpu_index = rs6000_dejagnu_cpu_index; + /* Process the -mcpu=<xxx> and -mtune=<xxx> argument. If the user changed the cpu in a target attribute or pragma, but did not specify a tuning option, use the cpu for the tuning option rather than the option specified diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt index 2e90bf3..f4b5c91 100644 --- a/gcc/config/rs6000/rs6000.opt +++ b/gcc/config/rs6000/rs6000.opt @@ -385,6 +385,13 @@ mtune= Target RejectNegative Joined Var(rs6000_tune_index) Init(-1) Enum(rs6000_cpu_opt_value) Save -mtune= Schedule code for given CPU. +; Only for use in the testsuite. This 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. +mdejagnu-cpu= +Target Undocumented RejectNegative Joined Var(rs6000_dejagnu_cpu_index) Init(-1) Enum(rs6000_cpu_opt_value) Save + mtraceback= Target RejectNegative Joined Enum(rs6000_traceback_type) Var(rs6000_traceback) -mtraceback=[full,part,no] Select type of traceback table. -- 1.8.3.1