On Thu, Jan 19, 2017 at 12:04 PM, Tristan Gingold <ging...@adacore.com> wrote: > >> On 19 Jan 2017, at 11:46, Richard Biener <richard.guent...@gmail.com> wrote: >> >> On Thu, Jan 19, 2017 at 11:11 AM, Tristan Gingold <ging...@adacore.com> >> wrote: >>> Is it ok to require gcc 4.9 (3 years old) or later to build GNAT ? >>> >>> We plan to use gcc exceptions within the GNAT front-end (previously we were >>> using a FE specific exception mechanism). >>> This requires a matching implementation in the runtime, which was last >>> changed for gcc 4.9 >>> Our idea is to completely remove in GNAT the support of the FE specific >>> exception mechanism. >>> >>> Is anyone opposed to such a change ? >> >> But as you are bootstrapping you should always have a matching >> runtime, no? > > Yes for stage-2 and stage-3, but not always for stage-1. > > To clarify: the gnat1 and gnatbind binaries are not linked with libgnat, but > are built in a standalone way. GNAT1_OBJS contains both the objects for the > compiler sources and the objects for the needed runtime sources.
Oh, I can see how that breaks then... the stage1 gnat1/gnatbind should use the host Ada compiler runtime (does bootstrapping GNAT with a non-GNAT Ada compiler work? It really should!), stage2 gnat1/gnatbind should use stage1 gnat runtime. > The compiler has some knowledge of the runtime (not unlike cc1plus or even > cc1), so the runtime files used to built gnat1/gnatbind must be compatible > with the base compiler. > >> That is, the built gnat1 will not use >> the host compilers runtime? > > Yes, that's correct (unlike cc1plus which uses host libstdc++). stage1 cc1plus uses the host libstdc++ stage2 cc1plus should use stage1 libstdc++, etc.. Richard. > Tristan. >