From patchwork Thu Nov 18 01:06:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Iain Buclaw X-Patchwork-Id: 47861 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7A2D73858420 for ; Thu, 18 Nov 2021 01:07:01 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7A2D73858420 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1637197621; bh=GFeG6waP+SCrhNVN4A/M8jBN5ViuvZDL/EdQxbZar8w=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=eOghSgMlwpaNmGaiGJrA7bHP4ERZbrHo/4YsTVZNUB7AqNkwyzVUTwoFjDwi466o4 41om5yw4iL/e1unGyiLqJB5X9YJh3BBFtnzBeEzPTDo/S5SiGNtNLGAgqaHQw1i4Ka /0YTcCVHIXZfqf6PUyMMyxiI3OHk/EoarzfaLuAI= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mout-p-102.mailbox.org (mout-p-102.mailbox.org [80.241.56.152]) by sourceware.org (Postfix) with ESMTPS id 1EFDA3858C2C for ; Thu, 18 Nov 2021 01:06:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1EFDA3858C2C Received: from smtp2.mailbox.org (smtp2.mailbox.org [IPv6:2001:67c:2050:105:465:1:2:0]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4HvhT243dzzQkm6; Thu, 18 Nov 2021 02:06:30 +0100 (CET) X-Virus-Scanned: amavisd-new at heinlein-support.de To: gcc-patches@gcc.gnu.org Subject: [PATCH] doc, d: Add note that D front end now requires GDC installed in order to bootstrap. Date: Thu, 18 Nov 2021 02:06:08 +0100 Message-Id: <20211118010608.2104762-1-ibuclaw@gdcproject.org> MIME-Version: 1.0 X-Spam-Status: No, score=-13.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-Patchwork-Original-From: Iain Buclaw via Gcc-patches From: Iain Buclaw Reply-To: Iain Buclaw Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, As asked for, this adds the documentation note in install.texi about the upcoming bootstrap requirements. Obviously this will be applied alongside the patch posted previously: https://gcc.gnu.org/pipermail/gcc-patches/2021-October/582917.html Final batch of testing before proceeding has taking a bit longer than I expected. Currently bootstrapping on sparcv9-sun-solaris2.11, and will push forward once have confirmed that it works as well as the current C++ implementation of the D front end. OK for mainline? Any improvements on wording? Thanks, Iain. --- gcc/ChangeLog: * doc/install.texi (Prerequisites): Add note that D front end now requires GDC installed in order to bootstrap. (Building): Add D compiler section, referencing prerequisites. --- gcc/doc/install.texi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 094469b9a4e..6f999a2fd5a 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -289,6 +289,25 @@ Ada runtime libraries. You can check that your build environment is clean by verifying that @samp{gnatls -v} lists only one explicit path in each section. +@item @anchor{GDC-prerequisite}GDC + +In order to build GDC, the D compiler, you need a working GDC +compiler (GCC version 9.1 or later), as the D front end is written in D. + +Versions of GDC prior to 12 can be built with an ISO C++11 compiler, which can +then be installed and used to bootstrap newer versions of the D front end. + +It is strongly recommended to use an older version of GDC to build GDC. More +recent versions of GDC than the version built are not guaranteed to work and +will often fail during the build with compilation errors relating to +deprecations or removed features. + +Note that @command{configure} does not test whether the GDC installation works +and has a sufficiently recent version. Though the implementation of the D +front end does not make use of any GDC-specific extensions, or novel features +of the D language, if too old a GDC version is installed and +@option{--enable-languages=d} is used, the build will fail. + @item A ``working'' POSIX compatible shell, or GNU bash Necessary when running @command{configure} because some @@ -2977,6 +2996,15 @@ and network filesystems. @uref{prerequisites.html#GNAT-prerequisite,,GNAT prerequisites}. @end ifhtml +@section Building the D compiler + +@ifnothtml +@ref{GDC-prerequisite}. +@end ifnothtml +@ifhtml +@uref{prerequisites.html#GDC-prerequisite,,GDC prerequisites}. +@end ifhtml + @section Building with profile feedback It is possible to use profile feedback to optimize the compiler itself. This