* CFT: toplevel bootstrap (stage 2 project)
@ 2005-06-22 13:25 Paolo Bonzini
2005-06-22 19:00 ` Giovanni Bajo
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Paolo Bonzini @ 2005-06-22 13:25 UTC (permalink / raw)
To: gcc
So we are ready! Please try this and let me know of any rough spots.
I'll be on holiday from Friday 24th to July 4th, with no connectivity,
but I will read my e-mail when I come back.
To recap, toplevel bootstrap has several aims, including:
1) simplifying the binary compatibility problems when you are
bootstrapping GCC with a proprietary compiler, or maybe a very old GCC.
2) being able to fully bootstrap a toolchain, that is building
assemblers, linkers and even tools such as bison and flex with the
compiler that is in your tree.
3) in 4.2, it will allow removing an awful lot of hair from the gcc
Makefile, for example the stageXYZ dangling links that the configure
script creates in language subdirectories. A small special casing for
the current bootstrapping system had even percolated in gcc.c :-/
4) possibly it could be used to simplify the way libada and gnattools
are built, by three-staging them as well.
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 with the assembler and linker that are in
a combined tree.
To enable toplevel bootstrap, just configure with --enable-bootstrap.
Then, "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. As mentioned, "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" is not supported. "make
restageN" is called "make all-stageN", and there is also "make
all-stageN-gcc" to rebuild gcc only.
The idea is that just before or just after the end of stage2, I will
post the obvious patch making --enable-bootstrap the default. Then,
"make" will just DTRT, bootstrapping whenever possible. In 4.1,
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).
"Lean" bootstraps are also supported, but they are enabled with
--enable-bootstrap=lean rather than with special targets.
"make profiledbootstrap" works with the patch at
http://gcc.gnu.org/ml/gcc-patches/2005-06/msg01770.html.
Combined tree builds currently trigger warnings in binutils and ld, but
you can use --disable-werror to try them. A few weeks ago it worked,
but this morning I tried a combined tree profiledbootstrap and it
crashed while linking libstdc++. :-( I have not yet investigated
whether it is a profiledbootstrap miscompilation, or a genuine libbfd bug.
I see no regression on i686-pc-linux-gnu with toplevel bootstrap.
Paolo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: toplevel bootstrap (stage 2 project)
2005-06-22 13:25 CFT: toplevel bootstrap (stage 2 project) Paolo Bonzini
@ 2005-06-22 19:00 ` Giovanni Bajo
2005-06-23 7:27 ` Paolo Bonzini
2005-06-24 23:11 ` Gerald Pfeifer
2005-06-22 21:35 ` CFT: " Geoffrey Keating
` (2 subsequent siblings)
3 siblings, 2 replies; 10+ messages in thread
From: Giovanni Bajo @ 2005-06-22 19:00 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: gcc
Paolo Bonzini <bonzini@gnu.org> wrote:
> To recap, toplevel bootstrap has several aims, including:
>[...]
I suggest you to add this to the Wiki.
> To enable toplevel bootstrap, just configure with --enable-bootstrap.
> Then, "make" will do more or less what "make bubblestrap" used to do:
What does "./configure --enable-botstrap; make bootstrap" do?
> It supports all the bells and whistles like bubblestraps and restageN,
> which help during development. "make restrap" is not supported. "make
> restageN" is called "make all-stageN", and there is also "make
> all-stageN-gcc" to rebuild gcc only.
It would help also if you add to the wiki explanation of what exactly all
these options do. Especially bubblestrap vs quickstrap vs restrap.
Thanks!
--
Giovanni Bajo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CFT: toplevel bootstrap (stage 2 project)
2005-06-22 13:25 CFT: toplevel bootstrap (stage 2 project) Paolo Bonzini
2005-06-22 19:00 ` Giovanni Bajo
@ 2005-06-22 21:35 ` Geoffrey Keating
[not found] ` <m364w3hei3.fsf@localhost.localdomain>
2005-08-06 11:47 ` Joseph S. Myers
3 siblings, 0 replies; 10+ messages in thread
From: Geoffrey Keating @ 2005-06-22 21:35 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: gcc
I haven't actually tried it, but it looks like the 'compare' rule tries
to compare every .o file in all the directories, which will surely
cause the same problems with stabs and assembly that is described in:
<http://gcc.gnu.org/ml/gcc-patches/2005-04/msg00552.html>
and other related messages.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: toplevel bootstrap (stage 2 project)
2005-06-22 19:00 ` Giovanni Bajo
@ 2005-06-23 7:27 ` Paolo Bonzini
2005-06-24 23:11 ` Gerald Pfeifer
1 sibling, 0 replies; 10+ messages in thread
From: Paolo Bonzini @ 2005-06-23 7:27 UTC (permalink / raw)
To: Giovanni Bajo, GCC Development
>What does "./configure --enable-botstrap; make bootstrap" do?
>
>
The same as plain make. bootstrap is the default target when
--enable-bootstrap is given, and its behavior resembles a "bubblestrap"
(see later) in the old system.
This removes the wart where "make" following a "make bootstrap" invoked
a "quickstrap" and often caused comparison failures. To the next topic...
> It would help also if you add to the wiki explanation of what exactly all
> these options do. Especially bubblestrap vs quickstrap vs restrap.
... bubblestrap rebuilds only changed files. quickstrap rebuilds only
the last stage. restrap takes (took?) a non-bootstrap build, uses it as
stage1, and then completes the bootstrap.
Paolo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: toplevel bootstrap (stage 2 project)
2005-06-22 19:00 ` Giovanni Bajo
2005-06-23 7:27 ` Paolo Bonzini
@ 2005-06-24 23:11 ` Gerald Pfeifer
2005-06-28 9:43 ` Giovanni Bajo
1 sibling, 1 reply; 10+ messages in thread
From: Gerald Pfeifer @ 2005-06-24 23:11 UTC (permalink / raw)
To: Giovanni Bajo; +Cc: Paolo Bonzini, gcc
On Wed, 22 Jun 2005, Giovanni Bajo wrote:
> It would help also if you add to the wiki explanation of what exactly all
> these options do. Especially bubblestrap vs quickstrap vs restrap.
Why to the WIki?? This should be part of the regular documentation,
and if anything is to improve, the improvements should be made there
instead of having that on the Wiki (or, even worse, causing duplication).
Gerald
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: toplevel bootstrap (stage 2 project)
2005-06-24 23:11 ` Gerald Pfeifer
@ 2005-06-28 9:43 ` Giovanni Bajo
2005-06-28 13:27 ` Daniel Berlin
0 siblings, 1 reply; 10+ messages in thread
From: Giovanni Bajo @ 2005-06-28 9:43 UTC (permalink / raw)
To: Gerald Pfeifer; +Cc: Paolo Bonzini, gcc
Gerald Pfeifer <gerald@pfeifer.com> wrote:
>> It would help also if you add to the wiki explanation of what exactly all
>> these options do. Especially bubblestrap vs quickstrap vs restrap.
>
> Why to the WIki?? This should be part of the regular documentation,
> and if anything is to improve, the improvements should be made there
> instead of having that on the Wiki (or, even worse, causing duplication).
Well, because Wiki is more attractive to people writing documentation for
several reasons (faster than writing a HTML/TeX patch and submitting it for
review, etc.). Maybe we should think if we want to use the Wiki as our rapid
documentation prototyping: people could write documentation there for
review, be refined by others, and eventually converted to real TeX
documentation.
--
Giovanni Bajo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: toplevel bootstrap (stage 2 project)
2005-06-28 9:43 ` Giovanni Bajo
@ 2005-06-28 13:27 ` Daniel Berlin
2005-06-28 17:00 ` Giovanni Bajo
0 siblings, 1 reply; 10+ messages in thread
From: Daniel Berlin @ 2005-06-28 13:27 UTC (permalink / raw)
To: Giovanni Bajo; +Cc: Gerald Pfeifer, Paolo Bonzini, gcc
On Tue, 2005-06-28 at 11:43 +0200, Giovanni Bajo wrote:
> Gerald Pfeifer <gerald@pfeifer.com> wrote:
>
> >> It would help also if you add to the wiki explanation of what exactly all
> >> these options do. Especially bubblestrap vs quickstrap vs restrap.
> >
> > Why to the WIki?? This should be part of the regular documentation,
> > and if anything is to improve, the improvements should be made there
> > instead of having that on the Wiki (or, even worse, causing duplication).
>
>
> Well, because Wiki is more attractive to people writing documentation for
> several reasons (faster than writing a HTML/TeX patch and submitting it for
> review, etc.). Maybe we should think if we want to use the Wiki as our rapid
> documentation prototyping: people could write documentation there for
> review, be refined by others, and eventually converted to real TeX
> documentation.
This is what i did with the decl hierarchy documentation i submitted as
part of the decl cleanup patch.
The Texinfo version took significantly longer than the wiki portion, but
it was mainly just mechanical formatting, etc, where wiki knows what to
do automatically or with a trivial command and Texinfo doesn't.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: toplevel bootstrap (stage 2 project)
2005-06-28 13:27 ` Daniel Berlin
@ 2005-06-28 17:00 ` Giovanni Bajo
0 siblings, 0 replies; 10+ messages in thread
From: Giovanni Bajo @ 2005-06-28 17:00 UTC (permalink / raw)
To: Daniel Berlin; +Cc: Gerald Pfeifer, Paolo Bonzini, gcc
Daniel Berlin <dberlin@dberlin.org> wrote:
>> Well, because Wiki is more attractive to people writing
>> documentation for several reasons (faster than writing a HTML/TeX
>> patch and submitting it for review, etc.). Maybe we should think if
>> we want to use the Wiki as our rapid documentation prototyping:
>> people could write documentation there for review, be refined by
>> others, and eventually converted to real TeX documentation.
>
> This is what i did with the decl hierarchy documentation i submitted
> as part of the decl cleanup patch.
>
> The Texinfo version took significantly longer than the wiki portion,
> but it was mainly just mechanical formatting, etc, where wiki knows what
> to do automatically or with a trivial command and Texinfo doesn't.
I believe we could conceive something to convert raw wiki text into texinfo
with our commands. It would handle the boring part of the conversion.
Giovanni Bajo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CFT: toplevel bootstrap (stage 2 project)
[not found] ` <m364w3hei3.fsf@localhost.localdomain>
@ 2005-07-05 9:58 ` Paolo Bonzini
0 siblings, 0 replies; 10+ messages in thread
From: Paolo Bonzini @ 2005-07-05 9:58 UTC (permalink / raw)
To: tromey, GCC Development
>How difficult do you think this will be with the new toplevel
>bootstrap?
>
>
Make gcjx depend on libstdc++-v3, and add "bootstrap=true" to both in
Makefile.def. In cp/Make-lang.in, set boot_language=yes. It should
just work.
Paolo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CFT: toplevel bootstrap (stage 2 project)
2005-06-22 13:25 CFT: toplevel bootstrap (stage 2 project) Paolo Bonzini
` (2 preceding siblings ...)
[not found] ` <m364w3hei3.fsf@localhost.localdomain>
@ 2005-08-06 11:47 ` Joseph S. Myers
3 siblings, 0 replies; 10+ messages in thread
From: Joseph S. Myers @ 2005-08-06 11:47 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: gcc
On Wed, 22 Jun 2005, Paolo Bonzini wrote:
> The idea is that just before or just after the end of stage2, I will post the
> obvious patch making --enable-bootstrap the default. Then, "make" will just
Is this switch to toplevel bootstrap as default still planned for 4.1?
--
Joseph S. Myers http://www.srcf.ucam.org/~jsm28/gcc/
jsm@polyomino.org.uk (personal mail)
joseph@codesourcery.com (CodeSourcery mail)
jsm28@gcc.gnu.org (Bugzilla assignments and CCs)
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2005-08-06 11:47 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-22 13:25 CFT: toplevel bootstrap (stage 2 project) Paolo Bonzini
2005-06-22 19:00 ` Giovanni Bajo
2005-06-23 7:27 ` Paolo Bonzini
2005-06-24 23:11 ` Gerald Pfeifer
2005-06-28 9:43 ` Giovanni Bajo
2005-06-28 13:27 ` Daniel Berlin
2005-06-28 17:00 ` Giovanni Bajo
2005-06-22 21:35 ` CFT: " Geoffrey Keating
[not found] ` <m364w3hei3.fsf@localhost.localdomain>
2005-07-05 9:58 ` Paolo Bonzini
2005-08-06 11:47 ` Joseph S. Myers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).