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: Installation proposal


Alexandre Oliva wrote:
> However, I think it may get the bootstrapping procedure somewhat more
> complicated.  I mean, I don't see how to fit stages into this idea.

One option is just do what we have always done, except that creating
stage1 mv $build_prefix/bin/gcc to stage1/gcc and so on.  I.e.
what we're actually doing is splitting the contents of "." into
two parts:
(a) temporary files (most .o files, gen*, stmp-* etc) remains in ".".
(b) files that will ultimately be installed are in sub-directories
of $build_prefix.

To create stage1, you can just gather together all the needed files
from both (a) and (b) and copy them to stage1.  (Of course you might
want to just delete the temporary files in "." instead.)

The better solution, once enough of the files have been converted to
use $build_prefix is to use $build_prefix for the stages.

I.e.:stage1:
   mkdir stage1
   make build_prefix=stage1
stage2:
   mkdir stage2
   make mostlyclean
   make build_prefix=stage2 PATH=`pwd`/stage1:$PATH
stage3:
   make mostlyclean
   make build_prefix=../build PATH=`pwd`/stage2:$PATH

I assume 'make mostlyclean' removes all the temporary files
in "." (such as gen* and *.o), but leave the files in
$build_prefix alone.  "make clean" also removes the files
in $build_prefix (that gcc has put there).

> Perhaps this is just the right time to move the whole bootstrap
> procedure out of gcc to the top level?  Then, we'd not only have
> separate pseudo-install trees for each stage, but also we'd get the
> added benefit of having the complete toolchain built (and optimized)
> by the toolchain itself.

That might be even better, depending on exactly what we want
bootstraping to accomplish.
-- 
	--Per Bothner
per@bothner.com   http://www.bothner.com/per/


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