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
{