This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Makefile change to restart bootstraps
- To: aoliva at redhat dot com
- Subject: Re: Makefile change to restart bootstraps
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Date: Sun, 12 Nov 00 22:10:30 EST
- Cc: gcc at gcc dot gnu dot org
When I'm in bug-hunting mode, I use `make', then verify that the
modified compiler generates correct code for the test case that used
to fail.
But which compiler do you do that with? Don't you go back to use
what's then in the stage1 or stage2 directory? If you're debugging
the one in the stage1 directory, you can always do "make stage2", move
stage1 to the current directory, fix, make, make stage1, then move
stage2 to the current directory. That's the same as the new "make
bootstrap" behavior. But both have very serious problems: suppose you
fixed a bug in a later file but broke it with an earlier file?
I think it's just too easy to do something like this an not realize it.
Using the elaborate procedure above at least warns you that something
very special is being done. With it happening automatically, it's easy
to not notice this is what happened. It's *much* less error-prone to
always start a bootstrap from the beginning.
Once I'm satisfied with the result, I type `make bootstrap'. If I
find that it completes immediately, I recall I should have cleaned the
stamp files, so I remove them and `make bootstrap' again.
That's only two of the three cases: if the problem is that the stage1
compiler blows up, "make bootstrap" will do some work, but it may or
may not be what you want.
I think this is very confusing.