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: What happend to bootstrap-lean? (was: What happened to bubblestrap?)


On Sun, Dec 18, 2005 at 01:01:11PM -0500, Richard Kenner wrote:
>     Because it would have to recurse to the parent directory, 
> 
> Why do you have to recurse to the parent directory to bootstrap GCC?
> If the desire was to make pieces elsewhere, the command would have been
> issued from elsewhere.   I'm talking about bootstrapping the 
> compiler, nothing else.  Sure, there's a value in doing a bootstrap
> including the libraries, but there's also a value in *not* doing it.
> 
>     which is then going to rename your current directory 
> 
> Why would a makefile rename a directory in any situation?  That seems like
> trouble waiting to happen to me.
> 

The answer to both of these questions is the same.  Toplevel bootstrap
deliberately - as a design decision, and in my opinion, a very good
one - puts every stage in its own directory.  Instead of trying to move
all the object files we're staging into a subdirectory, each stage of
gcc is built in its own directory.

This lets us not have to guess which files need to be moved and which
(e.g. generated by configure) need to be left alone.  For GCC we
already knew what this list is, by exhaustive trial and error.  For
other directories, however, we don't want to have to work it out.  It
lets the bootstrap mechanism be more modularly independent of the
components being bootstrapped.

Therefore, you get obj/stage1-gcc and obj/stage2-gcc.  And via either
symlinks or directory renames (and it looks like we'll have to switch
back to only via directory renames) one of these is obj/gcc and another
is obj/prev-gcc at any given time.

-- 
Daniel Jacobowitz
CodeSourcery, LLC


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