doc, d: Add note that D front end now requires GDC installed in order to bootstrap.

Message ID 20211118010608.2104762-1-ibuclaw@gdcproject.org
State Committed
Commit d376b73aa12d183e3040456c7641fb74500d0727
Headers
Series doc, d: Add note that D front end now requires GDC installed in order to bootstrap. |

Commit Message

Iain Buclaw Nov. 18, 2021, 1:06 a.m. UTC
  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(+)
  

Comments

Iain Buclaw Nov. 30, 2021, 5 p.m. UTC | #1
Ping.

Excerpts from Iain Buclaw's message of November 18, 2021 2:06 am:
> 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
> -- 
> 2.30.2
> 
>
  
Richard Biener Dec. 1, 2021, 8:55 a.m. UTC | #2
On Tue, Nov 30, 2021 at 6:01 PM Iain Buclaw via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> Ping.

OK.

> Excerpts from Iain Buclaw's message of November 18, 2021 2:06 am:
> > 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
> > --
> > 2.30.2
> >
> >
  

Patch

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