In this PR we incorrectly print the architecture name in a .cpu
directive in the assembly file when the -mcpu and -march options
conflict (don't target the same base architecture).  In this case the
.arch overrides the .cpu directive and we should emit a .arch option.

Fixed thusly.

PR target/80389
* config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
conflict, set target->arch_name instead of target->cpu_name.

Tested on a cross compiler with no problems.  I'm doing a full bootstrap
as well, but that's very unlikely to hit this scenario, so committed anyway.

R.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 511e163..f04deed 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -3098,15 +3098,15 @@ arm_configure_build_target (struct arm_build_target 
*target,
                arm_selected_tune = arm_selected_cpu;
 
              arm_selected_cpu = arm_selected_arch;
+             target->arch_name = arm_selected_arch->name;
            }
          else
            {
              /* Architecture and CPU are essentially the same.
                 Prefer the CPU setting.  */
              arm_selected_arch = NULL;
+             target->core_name = arm_selected_cpu->name;
            }
-
-         target->core_name = arm_selected_cpu->name;
        }
       else
        {

Reply via email to