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: GNAT nightmarre


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


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