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.
>

Reply via email to