From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rock.gnat.com (rock.gnat.com [IPv6:2620:20:4000:0:a9e:1ff:fe9b:1d1]) by sourceware.org (Postfix) with ESMTP id 77357383F871 for ; Thu, 10 Dec 2020 10:58:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 77357383F871 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oliva@adacore.com Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 3A47D116F2D; Thu, 10 Dec 2020 05:58:37 -0500 (EST) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id zsHr1-43qTB4; Thu, 10 Dec 2020 05:58:37 -0500 (EST) Received: from free.home (tron.gnat.com [IPv6:2620:20:4000:0:46a8:42ff:fe0e:e294]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPS id F0FFE116BF8; Thu, 10 Dec 2020 05:58:36 -0500 (EST) Received: from livre (livre.home [172.31.160.2]) by free.home (8.15.2/8.15.2) with ESMTPS id 0BAAwRxg1028103 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Dec 2020 07:58:28 -0300 From: Alexandre Oliva To: Christophe Lyon Cc: Andreas Schwab , Jeff Law , gcc Patches Subject: Re: introduce overridable clear_cache emitter Organization: Free thinker, does not speak for AdaCore References: Errors-To: aoliva@lxoliva.fsfla.org Date: Thu, 10 Dec 2020 07:58:26 -0300 In-Reply-To: (Alexandre Oliva's message of "Thu, 03 Dec 2020 11:08:42 -0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.84 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Dec 2020 10:58:38 -0000 On Dec 3, 2020, Alexandre Oliva wrote: > + local_define_builtin ("__builtin___clear_cache", ftype, > + BUILT_IN_CLEAR_CACHE, > + "__builtin___clear_cache", > + ECF_NOTHROW); Ugh, so that somehow worked for aarch64-linux-gnu-gfortran, but the aarch64-elf Ada compiler started issuing calls to an undefined __builtin___clear_cache symbol. The second string actual passed to local_define_builtin binds to formal libname, which explains at least the new problem. I've so far restrained my curiosity as to why it wasn't a problem on aarch64-linux-gnu-gfortran. I'm checking it in as obvious, so far lightly tested on x86_64-linux-gnu and -x-aarch64-elf. drop __builtin_ from __clear_cache libname From: Alexandre Oliva I made a cut&pasto in my previous patch for tree.c, causing platforms that have CLEAR_INSN_CACHE defined, and none of the internal __clear_cache expansion overriders, to issue calls to symbols named __builtin___clear_cache rather than __clear_cache, on languages other than those in the C family. Oops. This patch removes __builtin_ from the string used as the libname for __buuiltin___clear_cache. for gcc/ChangeLog * tree.c (build_common_builtin_nodes): Drop __builtin_ from __clear_cache libname. --- gcc/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/tree.c b/gcc/tree.c index 72311005f57b2..4eb365205e3bd 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -10736,7 +10736,7 @@ build_common_builtin_nodes (void) if (!builtin_decl_explicit_p (BUILT_IN_CLEAR_CACHE)) local_define_builtin ("__builtin___clear_cache", ftype, BUILT_IN_CLEAR_CACHE, - "__builtin___clear_cache", + "__clear_cache", ECF_NOTHROW); local_define_builtin ("__builtin_nonlocal_goto", ftype, -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Vim, Vi, Voltei pro Emacs -- GNUlius Caesar