https://bugs.gentoo.org/695420 https://gcc.gnu.org/PR69471#c13 From 537fd9d4dcaed8dae6248ec22a50603a591a3752 Mon Sep 17 00:00:00 2001 From: ktkachov Date: Thu, 26 Sep 2019 10:52:42 +0000 Subject: [PATCH] driver: Also prune joined switches with negation When -march=native is passed to host_detect_local_cpu to the backend, it overrides all command lines after it. That means $ gcc -march=native -march=armv8-a is treated as $ gcc -march=armv8-a -march=native Prune joined switches with Negative and RejectNegative to allow -march=armv8-a to override previous -march=native on command-line. This is the same fix as was applied for i386 in SVN revision 269164 but for aarch64 and arm. 2019-09-26 Matt Turner PR driver/69471 * config/aarch64/aarch64.opt (march=): Add Negative(march=). (mtune=): Add Negative(mtune=). (mcpu=): Add Negative(mcpu=). * config/arm/arm.opt: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@276148 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/config/aarch64/aarch64.opt | 6 +++--- gcc/config/arm/arm.opt | 6 +++--- --- a/gcc/config/aarch64/aarch64.opt +++ b/gcc/config/aarch64/aarch64.opt @@ -119,15 +119,15 @@ EnumValue Enum(aarch64_tls_size) String(48) Value(48) march= -Target RejectNegative ToLower Joined Var(aarch64_arch_string) +Target RejectNegative Negative(march=) ToLower Joined Var(aarch64_arch_string) Use features of architecture ARCH. mcpu= -Target RejectNegative ToLower Joined Var(aarch64_cpu_string) +Target RejectNegative Negative(mcpu=) ToLower Joined Var(aarch64_cpu_string) Use features of and optimize for CPU. mtune= -Target RejectNegative ToLower Joined Var(aarch64_tune_string) +Target RejectNegative Negative(mtune=) ToLower Joined Var(aarch64_tune_string) Optimize for CPU. mabi= --- a/gcc/config/arm/arm.opt +++ b/gcc/config/arm/arm.opt @@ -82,7 +82,7 @@ mapcs-stack-check Target Report Mask(APCS_STACK) Undocumented march= -Target RejectNegative ToLower Joined Var(arm_arch_string) +Target RejectNegative Negative(march=) ToLower Joined Var(arm_arch_string) Specify the name of the target architecture. ; Other arm_arch values are loaded from arm-tables.opt @@ -107,7 +107,7 @@ Target Report Mask(CALLER_INTERWORKING) Thumb: Assume function pointers may go to non-Thumb aware code. mcpu= -Target RejectNegative ToLower Joined Var(arm_cpu_string) +Target RejectNegative Negative(mcpu=) ToLower Joined Var(arm_cpu_string) Specify the name of the target CPU. mfloat-abi= @@ -232,7 +232,7 @@ Target Report Mask(TPCS_LEAF_FRAME) Thumb: Generate (leaf) stack frames even if not needed. mtune= -Target RejectNegative ToLower Joined Var(arm_tune_string) +Target RejectNegative Negative(mtune=) ToLower Joined Var(arm_tune_string) Tune code for the given processor. mprint-tune-info -- 2.23.0