From 3eece53d3adc7264c222c806d249c22e81d32fac Mon Sep 17 00:00:00 2001 From: Ramana Radhakrishnan Date: Tue, 10 Nov 2015 08:35:21 +0000 Subject: [PATCH] Workaround PR68256 on AArch64 > This is causing a bootstrap comparison failure in gcc/go/gogo.o. I've had a look at this and the trigger is the aarch64_use_constant_blocks_p change which appears to be causing a bootstrap comparison failure because of differences to offsets when built with debug and without debug. I don't think the problem is specifically in the backend but this needs some careful investigation. For now, in the interest of go bootstraps continuing on trunk - I'm proposing a patch that partially rolls back the change in aarch64_use_constant_blocks_p and am still looking into the issue but it will take me some more time to get to the bottom of the issue. Bootstrapped on aarch64-none-linux-gnu including (c,c++ and go) - testing finished ok. 2015-11-10 Ramana Radhakrishnan PR bootstrap/68256 * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p): Return false. From-SVN: r230085 --- gcc/ChangeLog | 6 ++++++ gcc/config/aarch64/aarch64.c | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 32c31559f7a..577267a8f62 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-11-10 Ramana Radhakrishnan + + PR bootstrap/68256 + * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p): + Return false. + 2015-11-09 Eric Botcazou PR target/57845 diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index a4d824b2151..7d6dfc342b8 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -5244,9 +5244,11 @@ aarch64_can_use_per_function_literal_pools_p (void) static bool aarch64_use_blocks_for_constant_p (machine_mode, const_rtx) { - /* 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 (); + /* 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; } /* Select appropriate section for constants depending -- 2.30.2