diff mbox series

[arm] Fix pr82175 - fix -mcpu=native not working correctly

Message ID 33ea0785-3da1-9985-b773-044e0e9893e7@arm.com
State New
Headers show
Series [arm] Fix pr82175 - fix -mcpu=native not working correctly | expand

Commit Message

Richard Earnshaw (lists) Sept. 26, 2017, 9:35 a.m. UTC
The new option processing machinery relies on %< rules in the specs to
suppress options that are rewritten.  Suppression appears to be a two
phase process where the option is partially suppressed when %< is
processed and then fully suppressed at the end of the string.  Strings
are separated by commas and there can be multiple strings used to form
DRIVER_SELF_SPECS.

The fix in this case is to separate the driver self specs for ARM into
separate rules as described; this forces the -m{cpu,tune,arch}=native
options to be properly removed before proceeding to the next rule set.

	PR target/82175
	* config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with
	commas.

Tested on cross and native.  Applied to trunk.
diff mbox series

Patch

diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 9a171b0..0804e2a 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -2237,9 +2237,12 @@  const char *arm_be8_option (int argc, const char **argv);
   "                     %{mfloat-abi=*: abi %*}"	\
   "                     %<march=*) "
 
+/* Complete set of specs for the driver.  Commas separate the
+   individual rules so that any option suppression (%<opt...)is
+   completed before starting subsequent rules.  */
 #define DRIVER_SELF_SPECS			\
-  MCPU_MTUNE_NATIVE_SPECS			\
-  TARGET_MODE_SPECS				\
+  MCPU_MTUNE_NATIVE_SPECS,			\
+  TARGET_MODE_SPECS,				\
   ARCH_CANONICAL_SPECS
 
 #define TARGET_SUPPORTS_WIDE_INT 1