make all vs make bootstrap

2005-12-15 Thread Andrew Pinski
In previous versions of GCC before yesterday, "make all" used to do a 
normal build
but now I am getting a full bootstrap which is not what I wanted as I 
was just testing

objective-C and libobjc changes and nothing else.

Is this is deliberate change or just a mistake?

Thanks,
Andrew Pinski



Re: make all vs make bootstrap

2005-12-15 Thread Paolo Carlini
Andrew Pinski wrote:

> Is this is deliberate change or just a mistake?

I'm pretty sure is deliberate and --disable-bootstrap is the config you
need.

Paolo.


Re: make all vs make bootstrap

2005-12-15 Thread Giovanni Bajo
Andrew Pinski <[EMAIL PROTECTED]> wrote:

> In previous versions of GCC before yesterday, "make all" used to do a
> normal build
> but now I am getting a full bootstrap which is not what I wanted as I
> was just testing
> objective-C and libobjc changes and nothing else.
> 
> Is this is deliberate change or just a mistake?


http://gcc.gnu.org/ml/gcc/2005-12/msg00357.html

Use "make quickstrap" or --disable-bootstrap.
-- 
Giovanni Bajo


Re: make all vs make bootstrap

2005-12-15 Thread Daniel Berlin
On Thu, 2005-12-15 at 19:01 +0100, Giovanni Bajo wrote:
> Andrew Pinski <[EMAIL PROTECTED]> wrote:
> 
> > In previous versions of GCC before yesterday, "make all" used to do a
> > normal build
> > but now I am getting a full bootstrap which is not what I wanted as I
> > was just testing
> > objective-C and libobjc changes and nothing else.
> > 
> > Is this is deliberate change or just a mistake?
> 
> 
> http://gcc.gnu.org/ml/gcc/2005-12/msg00357.html
> 
> Use "make quickstrap" or --disable-bootstrap.

Will make quickstrap do the same as "make all"?

I *really* don't want to have to remember new configure options when
this used to be a simple makefile target.





Re: make all vs make bootstrap

2005-12-16 Thread Paolo Bonzini



Will make quickstrap do the same as "make all"?


No, there's no "make quickstrap" at all!  Citing from the "Top-Level 
Bootstrap" wiki page:


Toplevel bootstrap is able to bootstrap a compiler with separate 
reconfigurations and rebuilds of libiberty/libcpp/gcc in all the three 
stages. It is actually possible to bootstrap a whole toolchain, so that 
the final executable is built entirely with the assembler, binutils and 
linker that are in a combined tree.


When configuring in a native environment, make will do more or less what 
make bubblestrap used to do: start from stage1, rebuild everything that 
had to be rebuilt, configure stage2 if it has not been configured yet, 
build stage2, and the same for stage3. "Rebuilding" is not limited to 
GCC: libiberty, libcpp, and other dependencies of GCC are all configured 
and compiled three times. It is the same as rebuilding a whole tree from 
scratch three times, each time using the previous build as the result.


It supports all the bells and whistles like bubblestraps and restageN, 
which help during development. make restrap (taking a non-bootstrap 
build and using it as stage1) is not supported. make restageN is called 
make all-stageN, and there is also make all-stageN-gcc to rebuild gcc 
only. There is no equivalent to quickstrap, even though it can be added 
if there's demand.


Lean bootstraps are also supported, but they are enabled with 
--enable-bootstrap=lean rather than with special targets.


make profiledbootstrap works; it will build profile-optimized 
assemblers, binutils and linkers when run in a combined tree.


For a while, old-style bootstrap will still be available with 
./configure --disable-bootstrap; make bootstrap (non intuitive maybe, 
but in the long term, it would only be one more historic wart if the 
flag was called --{enable,disable}-toplevel-bootstrap).



I *really* don't want to have to remember new configure options when
this used to be a simple makefile target.


I'm sorry, there's no alternative.  The two bootstrap/non-bootstrap 
logics are very different.  If they could live together in the gcc 
directory, and most of the time working, it was only at the price of 
comparison failures when you were doing something a bit more weird than 
what is supported.


It's probably a matter of having different working patterns.  Mine is 
that if bootstrap breaks seriously (e.g. with wrong code), I make a .i 
of the failure, move it to prev-gcc, and work from there.  With the old 
bootstrapping logic I made the .i of the failure, typed "make restage1", 
and worked from there.  The number of steps is the same.


I agree that the "prev-gcc" naming is sub-ideal, but Daniel seems 
confident that it can be fixed after his toplevel libgcc work goes in. 
If that's true, we can actually do *entirely without* the unstage/stage 
mess and simply have build directories that are called "stage1-gcc", 
"stage2-gcc", "stage3-gcc".  This will make things even easier.


But please, let me recall that the first CFT for toplevel bootstrap 
(when everything was working except parallel builds, and bootstrapping 
combined trees) is from September 2004.


Paolo


Re: make all vs make bootstrap

2005-12-16 Thread Christian Joensson
What about bubblestrap?

(See also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25438)

--
Cheers,

/ChJ


Re: make all vs make bootstrap

2005-12-16 Thread Paolo Bonzini

Christian Joensson wrote:


What about bubblestrap?

(See also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25438)
 

A "make" from a toplevel is equivalent to the old "make bubblestrap" or 
"make -C bubblestrap".  In practice "make" just does the right thing, 
compiling all that is needed to not have comparison failures.


Paolo


Re: make all vs make bootstrap

2005-12-16 Thread Giovanni Bajo
Paolo Bonzini <[EMAIL PROTECTED]> wrote:

>> What about bubblestrap?
>>
>> (See also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25438)
>>
>>
> A "make" from a toplevel is equivalent to the old "make bubblestrap"
> or "make -C bubblestrap".  In practice "make" just does the right
> thing, compiling all that is needed to not have comparison failures.


I would also note that using "make" in the cp/ directory at least used to build
cc1plus with the system compiler, without -Werror and with a different set of
warnings. There have been many cases where a patch tested by C++ rules (which
is *not* a full bootstrap, but just "build compiler, build libjava, check c++")
resulted in a bootstrap failure because of a variable not initialized or
something. The correct solution used to be (guess what!) "make bubblestrap" to
build the compiler. Now, it's simply the default :)

Giovanni Bajo



Re: make all vs make bootstrap

2005-12-19 Thread Ben Elliston
Hi Paolo

> It supports all the bells and whistles like bubblestraps and
> restageN, which help during development. make restrap (taking a
> non-bootstrap build and using it as stage1) is not supported. make
> restageN is called make all-stageN, and there is also make
> all-stageN-gcc to rebuild gcc only. There is no equivalent to
> quickstrap, even though it can be added if there's demand.

I see that gcc/doc/makefile.texi is now out of date.  Can you update
it so that we have a reference for the new targets?  Thanks,

Ben