This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Changing base compiler requirement for bootstrapping GNAT


On Thu, Jan 19, 2017 at 12:04 PM, Tristan Gingold <gingold@adacore.com> wrote:
>
>> On 19 Jan 2017, at 11:46, Richard Biener <richard.guenther@gmail.com> wrote:
>>
>> On Thu, Jan 19, 2017 at 11:11 AM, Tristan Gingold <gingold@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.
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]