From patchwork Mon Nov 9 16:46:01 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ramana Radhakrishnan X-Patchwork-Id: 541846 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id A30AB141428 for ; Tue, 10 Nov 2015 03:48:31 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=Q4FNmIyQ; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:references:cc:from:to:message-id:date:mime-version :in-reply-to:content-type; q=dns; s=default; b=Cm4sdOmfoTg9qOoCB ISSYlx3jqWu5hsfcB7oGtrytN5ZhZRV9YirxRNNlEwL2WQLOFdYgpbCLgUdSBk+l M4ffkmyE6FzY11EYN/W2sigH295+XIFP2PCyaHL+5Myg55fY+lytPcUpn4L22E8n zLoQrV1gbWzb3H97T5//RAsO0E= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:references:cc:from:to:message-id:date:mime-version :in-reply-to:content-type; s=default; bh=XTqM9Bv2X3ENCcjdh08cZ6b 9H8o=; b=Q4FNmIyQ7T9AqLW4D0pcoA6uUAdovgntdIVF8oGiZlE/gxWylI8TO/P CizNLepd8n7NyodJ+yrOd8pWN8aW4/4RXoiP4gdR1pVTmJouQH2RsXsrvWKfXMQN mi5sDn5YlkGNFfqqFML68tI0l+E0SLFpSS1ssuxwSxyKh7v4SuS4= Received: (qmail 18967 invoked by alias); 9 Nov 2015 16:46:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 16465 invoked by uid 89); 9 Nov 2015 16:46:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=AWL, BAYES_00, KAM_LAZY_DOMAIN_SECURITY, RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: foss.arm.com Received: from foss.arm.com (HELO foss.arm.com) (217.140.101.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 09 Nov 2015 16:46:04 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 708D649; Mon, 9 Nov 2015 08:45:50 -0800 (PST) Received: from [10.2.206.27] (e105545-lin.cambridge.arm.com [10.2.206.27]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B0F4D3F21A; Mon, 9 Nov 2015 08:46:01 -0800 (PST) Subject: Re: [Patch AArch64] Switch constant pools to separate rodata sections. References: <5638E29D.6030704@foss.arm.com> <20151103170952.GA5141@arm.com> <563A1597.9060604@foss.arm.com> <87611cd8eh.fsf@igel.home> Cc: Andreas Schwab , James Greenhalgh From: Ramana Radhakrishnan To: "gcc-patches@gcc.gnu.org" Message-ID: <5640CDC9.8010708@foss.arm.com> Date: Mon, 9 Nov 2015 16:46:01 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <87611cd8eh.fsf@igel.home> X-IsSubscribed: yes On 08/11/15 11:42, Andreas Schwab wrote: > This is causing a bootstrap comparison failure in gcc/go/gogo.o. > > Andreas. > I've had a look at this for sometime this afternoon 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 in add instructions when built with debug and without debug. 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 will still look into the underlying issue. Bootstrapped on aarch64-none-linux-gnu including (c,c++ and go) - testing finished ok. Ok ? Ramana PR bootstrap/68256 * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p): Return false. diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 1b7be83..1fff878 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -5251,9 +5251,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