# DP: Revert the fix for PR target/100067, breaking the ARM multilib build --- a/src/gcc/config/arm/arm.cc +++ b/src/gcc/config/arm/arm.cc @@ -3298,22 +3298,21 @@ arm_configure_build_target (struct arm_b bitmap_xor (isa_delta, cpu_isa, target->isa); /* Ignore any bits that are quirk bits. */ bitmap_and_compl (isa_delta, isa_delta, isa_quirkbits); - /* If the user (or the default configuration) has specified a - specific FPU, then ignore any bits that depend on the FPU - configuration. Do similarly if using the soft-float - ABI. */ - if (opts->x_arm_fpu_index != TARGET_FPU_auto - || arm_float_abi == ARM_FLOAT_ABI_SOFT) + /* Ignore (for now) any bits that might be set by -mfpu. */ + bitmap_and_compl (isa_delta, isa_delta, isa_all_fpubits_internal); + + /* And if the target ISA lacks floating point, ignore any + extensions that depend on that. */ + if (!bitmap_bit_p (target->isa, isa_bit_vfpv2)) bitmap_and_compl (isa_delta, isa_delta, isa_all_fpbits); if (!bitmap_empty_p (isa_delta)) { if (warn_compatible) warning (0, "switch %<-mcpu=%s%> conflicts " - "with switch %<-march=%s%>", - opts->x_arm_cpu_string, - opts->x_arm_arch_string); - + "with %<-march=%s%> switch", + arm_selected_cpu->common.name, + arm_selected_arch->common.name); /* -march wins for code generation. -mcpu wins for default tuning. */ if (!arm_selected_tune) @@ -3464,10 +3463,6 @@ arm_configure_build_target (struct arm_b auto_sbitmap fpu_bits (isa_num_bits); arm_initialize_isa (fpu_bits, arm_selected_fpu->isa_bits); - /* This should clear out ALL bits relating to the FPU/simd - extensions, to avoid potentially invalid combinations later on - that we can't match. At present we only clear out those bits - that can be set by -mfpu. This should be fixed in GCC-12. */ bitmap_and_compl (target->isa, target->isa, isa_all_fpubits_internal); bitmap_ior (target->isa, target->isa, fpu_bits); } @@ -3978,7 +3973,7 @@ arm_options_perform_arch_sanity_checks ( arm_pcs_default = ARM_PCS_AAPCS_VFP; if (!bitmap_bit_p (arm_active_target.isa, isa_bit_vfpv2) && !bitmap_bit_p (arm_active_target.isa, isa_bit_mve)) - error ("%<-mfloat-abi=hard%>: selected architecture lacks an FPU"); + error ("%<-mfloat-abi=hard%>: selected processor lacks an FPU"); } else arm_pcs_default = ARM_PCS_AAPCS; --- a/src/libgomp/testsuite/libgomp.fortran/alloc-1.F90 +++ b/src/libgomp/testsuite/libgomp.fortran/alloc-1.F90 @@ -139,13 +139,12 @@ cp = omp_alloc (ONEoFIVE, & & omp_null_allocator) if (mod (transfer (cp, intptr), 32_c_intptr_t) /= 0) stop 17 - call c_f_pointer (cp, p, [ONEoFIVE & + call c_f_pointer (cq, q, [ONEoFIVE & & / c_sizeof (i)]) p(1) = 5 p(ONEoFIVE / c_sizeof (i)) = 6 cq = omp_alloc (768_c_size_t, omp_null_allocator) if (mod (transfer (cq, intptr), 128_c_intptr_t) /= 0) stop 18 - call c_f_pointer (cq, q, [768 / c_sizeof (i)]) q(1) = 7 q(768 / c_sizeof (i)) = 8 if (c_associated (omp_alloc (768_c_size_t, omp_null_allocator))) & --- a/src/gcc/testsuite/g++.target/arm/arm.exp +++ b/src/gcc/testsuite/g++.target/arm/arm.exp @@ -35,7 +35,7 @@ if ![info exists DEFAULT_CXXFLAGS] then global dg_runtest_extra_prunes set dg_runtest_extra_prunes "" -lappend dg_runtest_extra_prunes "warning: switch '-m(cpu|arch)=.*' conflicts with switch '-m(cpu|arch)=.*'" +lappend dg_runtest_extra_prunes "warning: switch '-m(cpu|arch)=.*' conflicts with '-m(cpu|arch)=.*' switch" # Initialize `dg'. dg-init --- a/src/gcc/testsuite/g++.target/arm/mve.exp +++ b/src/gcc/testsuite/g++.target/arm/mve.exp @@ -33,7 +33,7 @@ if ![info exists DEFAULT_CXXFLAGS] then # This variable should only apply to tests called in this exp file. global dg_runtest_extra_prunes set dg_runtest_extra_prunes "" -lappend dg_runtest_extra_prunes "warning: switch '-m(cpu|arch)=.*' conflicts with switch '-m(cpu|arch)=.*'" +lappend dg_runtest_extra_prunes "warning: switch -m(cpu|arch)=.* conflicts with -m(cpu|arch)=.* switch" set save-dg-do-what-default ${dg-do-what-default} set dg-do-what-default "assemble" --- a/src/gcc/testsuite/gcc.target/arm/arm.exp +++ b/src/gcc/testsuite/gcc.target/arm/arm.exp @@ -33,7 +33,7 @@ if ![info exists DEFAULT_CFLAGS] then { # This variable should only apply to tests called in this exp file. global dg_runtest_extra_prunes set dg_runtest_extra_prunes "" -lappend dg_runtest_extra_prunes "warning: switch '-m(cpu|arch)=.*' conflicts with switch '-m(cpu|arch)=.*'" +lappend dg_runtest_extra_prunes "warning: switch '-m(cpu|arch)=.*' conflicts with '-m(cpu|arch)=.*' switch" # Initialize `dg'. dg-init --- a/src/gcc/testsuite/gcc.target/arm/mve/mve.exp +++ b/src/gcc/testsuite/gcc.target/arm/mve/mve.exp @@ -33,7 +33,7 @@ if ![info exists DEFAULT_CFLAGS] then { # This variable should only apply to tests called in this exp file. global dg_runtest_extra_prunes set dg_runtest_extra_prunes "" -lappend dg_runtest_extra_prunes "warning: switch '-m(cpu|arch)=.*' conflicts with switch '-m(cpu|arch)=.*'" +lappend dg_runtest_extra_prunes "warning: switch -m(cpu|arch)=.* conflicts with -m(cpu|arch)=.* switch" set dg-do-what-default "assemble"