https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91766
--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Kamlesh Kumar from comment #9) > This fixes it. > > diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c > index 2e73f3515bb..6fb87d5f49f 100644 > --- a/gcc/config/aarch64/aarch64.c > +++ b/gcc/config/aarch64/aarch64.c > @@ -12539,6 +12539,10 @@ aarch64_override_options_internal (struct > gcc_options *opts) > if (opts->x_flag_strict_volatile_bitfields < 0 && abi_version_at_least > (2)) > opts->x_flag_strict_volatile_bitfields = 1; > > + /* defaults to flag_no_common unless disabled with fcommon. */ > + if (!global_options_set.x_flag_no_common) > + flag_no_common = 1; > + > if (aarch64_stack_protector_guard == SSP_GLOBAL > && opts->x_aarch64_stack_protector_guard_offset_str) > { This should be a global change and not just an aarch64 change. The reason is because then aarch64 is the odd man out when it comes to this.