This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: patch for -Wno-long-long and early GNAT compilers
- From: dewar at gnat dot com (Robert Dewar)
- To: kenner at vlsi1 dot ultra dot nyu dot edu, zack at codesourcery dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Thu, 14 Mar 2002 15:33:31 -0500 (EST)
- Subject: Re: patch for -Wno-long-long and early GNAT compilers
<<Please don't split hairs. We went over this at length last year; the
Ada front end in the released GCC 3.1 has to be buildable with the
commonly available gnat-3.13. And I want to go on record as saying
that it *should* be buildable with *any* standard-compliant Ada
compiler.
>>
Just to address the last sentence here in more detail.
GNAT is entirely full of assumptions that it is being built with itself,
it freely uses GNAT extensions in the areas of pragmas and attributes,
and indeed some of these pragmas and attributes are designed specifically
to be useful for the compiler itself. It also uses library units GNAT.xxx
which themselves rely freely on GNAT'icisms.
This was a design decision made ten years ago, and is a decision that
made sense then, and makes sense now. I can't see anyone in practice
trying or wanting to bootstrap GNAT starting with a (typically expensive,
e.g. $20K/seat for Rational) proprietary Ada compiler.
Trying to make sure that GNAT stayed compilable by all such proprietary
compilers would be in practice a huge pain for no gain.
So if you really wanted to make this a requirement, I would basically suggest
starting from scratch with a new implementation, reusing the code from GNAT
where appropriate. I see no merit in such a project, but that would probably
be the least painful way to achieve it.
Early on, we worried about the issue of needing GNAT to compile GNAT, and
devised various schemes for bootstrapping without this requirement. But what
we found was that the cross-compilation capabilities of GCC had grown strong
enough that very quickly, people cross-compiled to all sorts of targets
including Atari, Next, etc. Furthermore, the internet allowed such volunteer
ports to be easily available to the community.
So what we have observed is that in practice the bootstrapping requirements
have not been an issue in terms of GNAT spreading around to all targets in
which people were interested in (in the developer community).