[toplevel PATCH] Lean bootstrap

Paolo Bonzini bonzini@gnu.org
Fri Aug 27 15:54:00 GMT 2004

This patch adds lean bootstraps to toplevel bootstrap.  This is less
obvious than it may seem.

First of all, I decided to only allow choosing between lean and normal
bootstrap at configure time (--enable-bootstrap=lean).  This to avoid
more recursive make invocations, because the design is a bit different
from what happens in the GCC directory.  This allows restarting a
bootstrap after stage1 has been deleted, but stage2 won't be rebuilt
(it needs stage1 around).

Since I was mucking with the configure script, I implemented the 
behavior that Alexandre Oliva suggested a while ago, that is only warn 
if --enable-bootstrap was given on a non-native configuration.  This 
allows bootstrapping "--target=i386-pc-linux-gnu" on i686.


Secondly, I got rid of the timestamp files configure-stage* and
all-stage*.  This for several reasons.  First of all, they were
behaving as phony because they depended on the maybe dependencies, so
their very creation was useless.  Second, they were useless because
the stageN-bubble rules were already enforcing a strict ordering
between the different stages (so we do not need configure-stage2-gcc
to depend on all-stage1-gcc): timestamps were not enough for parallel 
makes to work, stageN-bubble should (not tested yet).

They also made it more complex to implement restage targets: for
example, after 'make restage2', 'make bootstrap' would not have forced
rebuilding of stage3, so the timestamp files for stage3 and successive
stages had to be touched with a pretty complex mechanism involving
double-colon rules.  Removing these timestamp files, however, meant
that the restageN targets are just performing the same function of
all-stageN: so I wiped them out because I like the all-stageN name


Bootstrapped i686-pc-linux-gnu, both lean and normal.  Ok for gcc and

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: bootstrap-lean.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20040827/ec43a970/attachment.ksh>

More information about the Gcc-patches mailing list