https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68256
Vladimir Mezentsev <vladimir.mezentsev at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vladimir.mezentsev at oracle dot c | |om --- Comment #6 from Vladimir Mezentsev <vladimir.mezentsev at oracle dot com> --- I restored fixes in gcc/config/aarch64/aarch64.c: % git diff diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 1c14008..b377bc7 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -6193,11 +6193,9 @@ aarch64_can_use_per_function_literal_pools_p (void) static bool aarch64_use_blocks_for_constant_p (machine_mode, const_rtx) { - /* Fixme:: In an ideal world this would work similar - to the logic in aarch64_select_rtx_section but this - breaks bootstrap in gcc go. For now we workaround - this by returning false here. */ - return false; + /* We can't use blocks for constants when we're using a per-function + constant pool. */ + return !aarch64_can_use_per_function_literal_pools_p (); } /* Select appropriate section for constants depending I cannot reproduce the problem. I use the gcc116.fsffrance.org machine: % uname -a Linux gcc116 3.13.0-92-generic #139-Ubuntu SMP Tue Jun 28 20:45:34 UTC 2016 aarch64 aarch64 aarch64 GNU/Linux I run % ../gcc/configure --enable-languages=c,c++,go --enable-bootstrap --enable-multilib % make -j8 bootstrap There is no bootstrap comparison failure.