This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GNAT nightmarre
- From: Gabriel Dos Reis <gdr at integrable-solutions dot net>
- To: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Cc: gcc at gcc dot gnu dot org
- Date: 28 Jan 2003 15:15:05 +0100
- Subject: Re: GNAT nightmarre
- Organization: Integrable Solutions
- References: <10301281407.AA14022@vlsi1.ultra.nyu.edu>
kenner@vlsi1.ultra.nyu.edu (Richard Kenner) writes:
| 1) The way the GNAT build infrastructure is set up requires that
| each time one has to build a GNAT compiler then, one has to get rid of
| any existing compiler from $PATH.
|
| In general, that's not true. In fact, just the opposite is true: you *must*
| have a version of GNAT on $PATH or else you can't build the Ada
| files.
Actually, just the opposite is true. I spent 6 six hours figuring
that out. If I have an existing compiler in my $PATH then I get the
infamous error -- see my previous messages.
In order to get a bootstrap, I had to dicth any existing GNAT compiler
from my system. Only after that could I bootstrap GNAT.
There is just another GNATS PR filled relating the same problem.
| I
| routinely build in that way (though I haven't checked to see if there are any
| relevant procedural differences in HEAD). What *is* true is that you can't
| build with a very old version of GNAT, but that doesn't look like your
| problem.
|
| I suspect your problem actually might be that you have "." in your path,
| which won't work and is a bad idea for other (security) reasons anyway.
No, I don't have . in my $PATH.
And how do you explain the fact I had to remove the OS-vendor supplied
GNAT compiler (1.33p) installed in /usr/bin/ before completing a bootstrap?
| However, it might indeed be good to build gnatbind as xgnatbind for the same
| reasons that we build gcc as xgcc (which would also solve that problem).
|
| On some systems that is
| impractical because some OS vendors ship GNAT 1.33p which is
| installed under /usr/bin (where most utilities also reside). And
| not all users have the ability/right to get rid of that
| existing compiler.
|
| Right. If you have a too-old compiler, all you can do is install a new
| one someplace and put it earlier in your $PATH.
|
| 2) The existence of a compiler on a system should not preclude the
| build of a new one. That is certainly true for C, C++, Java,
| Objective-C.
|
| In fact, I suspect that it is the lack of explicit qualification of
| gnatbind that leads to the nightmarra I got this night :-(
|
| That coupled with "." in your path, I think.
Again, I don't have "." in my path.
-- Gaby