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 {