what should bootstrap *really* do?
DJ Delorie
dj@redhat.com
Mon Nov 13 19:23:00 GMT 2000
I've heard lots of conflicting uses for "make bootstrap". What
exactly *should* a bootstrap do? I'm working on a patch that will
build each stage in its own subdirectory, so that a source change will
cause each stage to build what's needed. However, this really doesn't
*test* the new compiler; you really need to rebuild all of stage N if
stage N-1 changes at all. Plus, you really don't need to rebuild all
of stage 1 once it's built; if you do you aren't testing gcc, you're
just wasting time. However, incrementally building just stage1 with
the current scheme is tedious.
So, I see "make bootstrap" doing this:
* build stage1
* if anything of significance changed in stage1, delete *.[oa] in stage 2
* build stage2
* repeat for stage3/4
Alternatives:
"make quickstrap" - skip delete *.o step
"make cleanstrap" - rm stage*/* first
Also, when I put builds in stage directories, things like libgcc1 and
fixincludes happen for each stage. I'm not sure if this matters or
not to people.
Comments?
More information about the Gcc
mailing list