This is the mail archive of the
mailing list for the GCC project.
Re: Changing base compiler requirement for bootstrapping GNAT
On Thu, Jan 19, 2017 at 12:04 PM, Tristan Gingold <email@example.com> wrote:
>> On 19 Jan 2017, at 11:46, Richard Biener <firstname.lastname@example.org> wrote:
>> On Thu, Jan 19, 2017 at 11:11 AM, Tristan Gingold <email@example.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..