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]

what should bootstrap *really* do?



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?

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