Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-22 Thread Hans-Peter Nilsson
On Mon, 16 Jan 2006, DJ Delorie wrote: > Two copies of gcc, both configured for the same target and built from > the same sources, should produce identical objects regardless of how > they are built or what they run on. For the record, this unfortunately isn't so, at least wasn't weeks ago, compar

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Mike Stump
On Jan 18, 2006, at 5:26 AM, Paolo Bonzini wrote: MRS and Eric Botcazou objected strongly against not being able to build a 1-stage GCC with --disable-bootstrap. And that's never going to happen. I tend to like long term stability in who things are done, but I'm not stuck in the mud, the

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Joe Buck
On Wed, Jan 18, 2006 at 08:44:37AM -0600, Gabriel Dos Reis wrote: > Daniel Jacobowitz <[EMAIL PROTECTED]> writes: > > | On Wed, Jan 18, 2006 at 08:36:13AM -0500, Richard Kenner wrote: > | > MRS and Eric Botcazou objected strongly against not being able to > | > build a 1-stage GCC with --d

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-18 Thread Alexandre Oliva
On Jan 16, 2006, [EMAIL PROTECTED] (Richard Kenner) wrote: > What it used to be "make" and "make bootstrap" are (and will be) > "./configure --disable-bootstrap && make" and "./configure && make". > Rerunning configure is a pain! It's never just "./configure", but > has the source direc

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Gabriel Dos Reis
Daniel Jacobowitz <[EMAIL PROTECTED]> writes: | On Wed, Jan 18, 2006 at 08:36:13AM -0500, Richard Kenner wrote: | > MRS and Eric Botcazou objected strongly against not being able to | > build a 1-stage GCC with --disable-bootstrap. And that's never going | > to happen. | > | > One wo

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Daniel Jacobowitz
On Wed, Jan 18, 2006 at 08:36:13AM -0500, Richard Kenner wrote: > MRS and Eric Botcazou objected strongly against not being able to > build a 1-stage GCC with --disable-bootstrap. And that's never going > to happen. > > One would hope that wouldn't, but what I heard was an objection >

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Richard Kenner
MRS and Eric Botcazou objected strongly against not being able to build a 1-stage GCC with --disable-bootstrap. And that's never going to happen. One would hope that wouldn't, but what I heard was an objection against removing what's there now, namely the capability to bootstrap GCC a

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Paolo Bonzini
Richard Kenner wrote: I've seen many people saying not wanting something to go away, but that something is not proposed by Paolo to disappear. Can you say *exactly* what those two different things are because I'm confused? Thanks. MRS and Eric Botcazou objected strongly against not bei

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Richard Kenner
I've seen many people saying not wanting something to go away, but that something is not proposed by Paolo to disappear. Can you say *exactly* what those two different things are because I'm confused? Thanks.

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Gabriel Dos Reis
[EMAIL PROTECTED] (Richard Kenner) writes: | As I said multiple times, *of course* bootstrapping will *never* be | mandatory. On the other hand, GCC-only bootstrapping | (i.e. configuring with disabled bootstrap, and then typing "make | bootstrap") will be deleted. | | You've now

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Richard Kenner
Who? Most people I've read the messages of, believed that disable-bootstrap would have been deleted tout court, without providing a way of building a non-self-built GCC. There are too many negations in that sentence for me to understand exactly what you're saying, but what I'm sayin

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Paolo Bonzini
Richard Kenner wrote: As I said multiple times, *of course* bootstrapping will *never* be mandatory. On the other hand, GCC-only bootstrapping (i.e. configuring with disabled bootstrap, and then typing "make bootstrap") will be deleted. You've now heard *a lot* of people say that t

Re: Example of debugging GCC with toplevel bootstrap

2006-01-18 Thread Richard Kenner
As I said multiple times, *of course* bootstrapping will *never* be mandatory. On the other hand, GCC-only bootstrapping (i.e. configuring with disabled bootstrap, and then typing "make bootstrap") will be deleted. You've now heard *a lot* of people say that they don't want this d

Re: Example of debugging GCC with toplevel bootstrap

2006-01-17 Thread Paolo Bonzini
Mike Stump wrote: On Jan 13, 2006, at 5:01 PM, Richard Kenner wrote: Steven Bosscher wrote: ... you can use --disable-bootstrap and do a regular make, or is there some reason why you can't do that? I thought the point was that that option is temporary and will go away. Over my d

Re: Example of debugging GCC with toplevel bootstrap

2006-01-17 Thread Perry Smith
On Jan 17, 2006, at 10:30 PM, Mike Stump wrote: On Jan 13, 2006, at 5:01 PM, Richard Kenner wrote: Steven Bosscher wrote: ... you can use --disable-bootstrap and do a regular make, or is there some reason why you can't do that? I thought the point was that that option is temporary an

Re: Example of debugging GCC with toplevel bootstrap

2006-01-17 Thread Mike Stump
On Jan 13, 2006, at 5:01 PM, Richard Kenner wrote: Steven Bosscher wrote: ... you can use --disable-bootstrap and do a regular make, or is there some reason why you can't do that? I thought the point was that that option is temporary and will go away. Over my dead body. We will al

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread DJ Delorie
Oh, right. When I think "cross compiler" I assume "for an embedded target". Yes, two compilers with different $host but same $target *should* (but currently don't) produce the same objects. Two compilers with the same $host but different $target won't, even if the two $targets are very similar.

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Marcin Dalecki
On 2006-01-16, at 20:35, DJ Delorie wrote: No it isn't. The results should still be the same. You aren't considering call ABI or PIC issues. Natives might have different call-saved registers, or global fixed register (like the TLS pointers), that affect optimization in different ways than

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Joe Buck
I wrote: > For a native compiler, the bootstrap process guarantees (and even > partially tests) that, regardless of the original compiler, the object > code of generated compiler itself is byte-for-byte identical regardless of > which compiler we started with. Since the compiler itself is identica

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread DJ Delorie
> But note that we do not satisfy this today. So noted, and yes, I've been bitten by this "bug" and had to find a machine with the right host configuration to reproduce customer bugs. Hence I said "should" and not "does" :-P

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Joe Buck
On Mon, Jan 16, 2006 at 08:28:01PM +0100, Marcin Dalecki wrote: > > On 2006-01-16, at 19:18, DJ Delorie wrote: > > > >A cross compiler and a native compiler targeting the same CPU chip, > >that's a different story. > > No it isn't. The results should still be the same. For a native compiler, the

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread DJ Delorie
> No it isn't. The results should still be the same. You aren't considering call ABI or PIC issues. Natives might have different call-saved registers, or global fixed register (like the TLS pointers), that affect optimization in different ways than an embedded (no tls, different pic, different A

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Ian Lance Taylor
DJ Delorie <[EMAIL PROTECTED]> writes: > Two copies of gcc, both configured for the same target and built from > the same sources, should produce identical objects regardless of how > they are built or what they run on. But note that we do not satisfy this today. Specifically if you build gcc on

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Marcin Dalecki
On 2006-01-16, at 19:18, DJ Delorie wrote: A cross compiler and a native compiler targeting the same CPU chip, that's a different story. No it isn't. The results should still be the same.

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
The question what is "native" here remains I define "native" as meaning "the target and host configurations are the same". So a biarch compiler can be either native or cross depending on whether or not the target is the same as that used to build itself.

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
It is most definitely neccessary that GCC produce the same code regardless of which compiler it is built with, assuming that the compiler it is built with is not itself buggy. Of course, but that's not what we're talking about. A cross compiler and a native compiler targeting the

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Guenther
On 1/16/06, Richard Kenner <[EMAIL PROTECTED]> wrote: > > I never tried to "bootstrap" on x86_64 using --host=i686 --target=i686 > to build a 32bit compiler building 32bit > > Well, that's my point. It's not really a bootstrap. First you use the > cross-compiler to build a native compiler

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread DJ Delorie
> I "native" compiler is defined as one where host==target. Anything > else is something we call a "cross-compiler". For the purposes of stage1, "native" only means "runs on the build machine, produces code that runs on the build machine". Since the compiler used to build stage1 is *not* guaran

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
So any bi- or multi-arch configurations are then by definition both a cross and a regular compiler at the same time? Right, depending on the command line. Or how do they fit in your scheme? You bootstrap the native one and not the cross ones. ;-) I never tried to "bootstrap

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
> As a heavy debugger of cross compilers I strongly disagree with this > sentiment. Host dependencies of any sort are a bug. Amen to that. Independence from the host is paramount to guarantee *reproducibility* of results over any on trivial time span. And that's something hig

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Guenther
On 1/16/06, Richard Kenner <[EMAIL PROTECTED]> wrote: > I don't see why the requirement for a "native compiler" is anything > stronger than "a binary that runs on this machine". > > I "native" compiler is defined as one where host==target. Anything else > is something we call a "cross-comp

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Marcin Dalecki
On 2006-01-16, at 18:38, Daniel Jacobowitz wrote: As a heavy debugger of cross compilers I strongly disagree with this sentiment. Host dependencies of any sort are a bug. Amen to that. Independence from the host is paramount to guarantee *reproducibility* of results over any on trivial time

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Shantonu Sen
OK, so you want people to do ./configure --build=powerpc-foo-bar --host=powerpc-foo-bar -- target=powerpc64-foo-bar --prefix=$PWD/native64-compiler make make install CC=$PWD/native64-compiler/bin/gcc /configure --build=powerpc64-foo- bar --host=powerpc64-foo-bar --target=powerpc64-foo-bar m

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Daniel Jacobowitz
On Mon, Jan 16, 2006 at 12:43:13PM -0500, Richard Kenner wrote: > Only if you assume a "cross" compiler and a true native compiler > generate different code. I certainly hope that isn't the case. > > Why not? It's a pretty strong statement to assume they generate *exactly* the > same code

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
I don't see why the requirement for a "native compiler" is anything stronger than "a binary that runs on this machine". I "native" compiler is defined as one where host==target. Anything else is something we call a "cross-compiler". Only if you assume a "cross" compiler and a true na

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
Just to be clear, you're suggesting that if you have: --build=powerpc-foo-bar --host=powerpc64-foo-bar --target=powerpc64-foo-bar The user be able to specify something so that the build systems knows the build machine can execute the host binaries, and a 4-stage bootstrap shou

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paul Brook
On Monday 16 January 2006 17:10, Richard Kenner wrote: > I don't see how this is any different to boostrapping gcc with any > other system compiler. It's fairly common for the system compiler to > use a different ABI to the new gcc. Why is 32/64-bit any different? > > It isn't any diffe

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Shantonu Sen
Just to be clear, you're suggesting that if you have: --build=powerpc-foo-bar --host=powerpc64-foo-bar --target=powerpc64- foo-bar The user be able to specify something so that the build systems knows the build machine can execute the host binaries, and a 4-stage bootstrap should occur?

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
I don't see how this is any different to boostrapping gcc with any other system compiler. It's fairly common for the system compiler to use a different ABI to the new gcc. Why is 32/64-bit any different? It isn't any different, which is the whole point. The point is that what's being

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paul Brook
On Monday 16 January 2006 16:46, Richard Kenner wrote: > So a naiive ./configure && make will configure for host == target == > powerpc64 but still (wrongly so in your opinion?) build stage1 as > 32bit binaries (but defaulting to -m64 code generation now), and the > following stage

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
So a naiive ./configure && make will configure for host == target == powerpc64 but still (wrongly so in your opinion?) build stage1 as 32bit binaries (but defaulting to -m64 code generation now), and the following stages will now become 64bit. That's most *definitely* wrong becaus

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Guenther
On 1/16/06, Richard Kenner <[EMAIL PROTECTED]> wrote: > This is the default setup you will run into on any ppc64-linux host. It's > definitely annoying that you have to workaround this in weird ways. > > I don't follow. Why would you ever want to build the stage1 compiler as > a cross-com

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Gabriel Dos Reis
Paolo Bonzini <[EMAIL PROTECTED]> writes: | > But you cannot compile *any* Ada program (even | > an empty function) without an RTS in the path since it makes builtin | > references to the RTS. | | For what it's worth, that's the same for Java. But the compiler is | not written in Java so you ca

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
This is the default setup you will run into on any ppc64-linux host. It's definitely annoying that you have to workaround this in weird ways. I don't follow. Why would you ever want to build the stage1 compiler as a cross-compiler and then do a "bootstrap"? I don't consider starting the

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Guenther
On 1/16/06, Richard Kenner <[EMAIL PROTECTED]> wrote: > So the stage1 compiler is built as a 32-bit object, from the second > stage on they're built as 64-bit objects. > > Very bad idea! I don't think we should support that. This is the default setup you will run into on any ppc64-linux h

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Gabriel Dos Reis
[EMAIL PROTECTED] (Richard Kenner) writes: | Though it makes me wonder why people did not replicate the design for | C++, Fortran (even old g77) and Java? | | I suspect it's because of the different role of the run-time library between | Ada and those languages. Could you elaborate? --

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
And note that to me this is not really a bootstrap, because we're not using jc1 in any way -- it's just built to stress test cc1! So your stricter definition of a bootstrap is not really what GCC has been doing for years. (Not that I don't understand your different definition;

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paolo Bonzini
> But you cannot compile *any* Ada program (even an empty function) without an RTS in the path since it makes builtin references to the RTS. For what it's worth, that's the same for Java. But the compiler is not written in Java so you can "bootstrap" it as part of GCC even if you build libja

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
Well, right, those languages have front-ends written in C. That's not the main difference, which is that for the other languages, you can compile programs without an RTS since it's just used when the user explicitly calls a library. But you cannot compile *any* Ada program (even an empty func

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Marcin Dalecki
More like "(cd gcc; make gnatlib_and_tools)", i.e. the current directory is the same. That matters? $(PWD)

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
Though it makes me wonder why people did not replicate the design for C++, Fortran (even old g77) and Java? I suspect it's because of the different role of the run-time library between Ada and those languages. More like "(cd gcc; make gnatlib_and_tools)", i.e. the current directory

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paolo Bonzini
Richard Kenner wrote: Then it seems to me that you are just relying on a peculiarity of the Ada build system, that is the fact that you can work entirely from within the GCC directory. That's by design, of course. Though it makes me wonder why people did not replicate the design for

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
Then it seems to me that you are just relying on a peculiarity of the Ada build system, that is the fact that you can work entirely from within the GCC directory. That's by design, of course. What you need to do then, is to run from the toplevel "make stage3-bubble; make -C gc

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Eric Botcazou
> In the future, you will still be able to do an old-style build with > "--disable-bootstrap" (nobody ever wanted to prevent that). But you > will not be able to do an old-style bootstrap because the relevant > Makefile rules will be removed. That's what I wanted my blurb to convey. :-) -- Eric

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paolo Bonzini
Eric Botcazou wrote: Then I'm confused: I thought the whole point of --disable-bootstrap is to keep the old mechanism instead of getting the new one. Not quite. You can do an old-style build and an old-style bootstrap from the *toplevel* directory with --disable-bootstrap by issuing "make" a

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paolo Bonzini
Richard Kenner wrote: If you configure with --enable-languages=c,ada (which I guess is a good option for you), a toplevel "make" does everything you need -- nothing less, nothing more. No, I want to configure with all the languages since I want to build them all (and have to, in orde

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
> Why is it so important to move them out? It would seem to me that the > bootstrap issue is a good reason *not* to! There are very good reasons why libgcc and the crt stuff should be separated from the compiler: Those are not really parts of the compiler but libraries. They

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Daniel Jacobowitz
On Mon, Jan 16, 2006 at 09:48:14AM -0500, Richard Kenner wrote: > > Why would somebody ever want to *disable* it? If you don't want to > > bootstrap, you just don't *do* it! > > Oh come on. This is semantics. --disable-bootstrap is the equivalent > of not doing it. > > I don't f

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
> Why would somebody ever want to *disable* it? If you don't want to > bootstrap, you just don't *do* it! Oh come on. This is semantics. --disable-bootstrap is the equivalent of not doing it. I don't follow. If I don't want to bootstrap, I won't say "make bootstrap". Why do I n

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Marcin Dalecki
On 2006-01-16, at 15:24, Richard Kenner wrote: The point of --disable-bootstrap is to disable bootstrapping. Why would somebody ever want to *disable* it? If you don't want to bootstrap, you just don't *do* it! The most important of these is libgcc and the crt startup files, which

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
If you configure with --enable-languages=c,ada (which I guess is a good option for you), a toplevel "make" does everything you need -- nothing less, nothing more. No, I want to configure with all the languages since I want to build them all (and have to, in order to do a full "make c

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Daniel Jacobowitz
On Mon, Jan 16, 2006 at 09:24:29AM -0500, Richard Kenner wrote: > The point of --disable-bootstrap is to disable bootstrapping. > > Why would somebody ever want to *disable* it? If you don't want to > bootstrap, you just don't *do* it! Oh come on. This is semantics. --disable-bootstrap is

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Eric Botcazou
> Then I'm confused: I thought the whole point of --disable-bootstrap is > to keep the old mechanism instead of getting the new one. Not quite. You can do an old-style build and an old-style bootstrap from the *toplevel* directory with --disable-bootstrap by issuing "make" and "make bootstrap"

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
The point of --disable-bootstrap is to disable bootstrapping. Why would somebody ever want to *disable* it? If you don't want to bootstrap, you just don't *do* it! The most important of these is libgcc and the crt startup files, which currently do live in the gcc directory, and folk

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paolo Bonzini
The point is that 32->64 is a cross-compiler and it's only meaningful to talk about "bootstrapping" a native compiler. It's not 32->64. It's 64->64, but built with a 32-bit compiler. Anyway, I find this discussion secondary now that we reached a point from which I can help you. You

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Marcin Dalecki
On 2006-01-16, at 14:37, Richard Kenner wrote: So the stage1 compiler is built as a 32-bit object, from the second stage on they're built as 64-bit objects. Very bad idea! I don't think we should support that. Yeep. That's not a bootstrap. It's cross compilation.

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
Of course in this case HOST_WIDE_INT is 64. I think we do guarantee that, or cross compilation would be in big trouble. No, it wouldn't be in big trouble: it didn't used to be 64 and it wasn't in big trouble. The issue isn't if it *works*, but if the two compilers do the identical thing

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Daniel Jacobowitz
On Mon, Jan 16, 2006 at 09:03:26AM -0500, Richard Kenner wrote: > This *will* stop working, > > Then I'm confused: I thought the whole point of --disable-bootstrap is > to keep the old mechanism instead of getting the new one. The point of --disable-bootstrap is to disable bootstrapping. Th

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Arnaud Charlet
BTW, did you capture the fact that BOOT_ADAFLAGS are no longer passed with the new configure; make bootstrap ? FWIW, I can't really do more testing or give more feedback on the new approach until this is fixed. I just verified that it works with --disable-bootstrap; make bootstrap. As for bootstr

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
This *will* stop working, Then I'm confused: I thought the whole point of --disable-bootstrap is to keep the old mechanism instead of getting the new one. You will always have a bootstrap sequence and a non-bootstrap sequence, but you'll need to reconfigure to switch between the two.

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Daniel Jacobowitz
On Mon, Jan 16, 2006 at 01:52:43PM +0100, Paolo Bonzini wrote: > I can see how a compiler bug, that manifests as a miscompilation of the > assembler, triggers a bootstrap failure if you also build the assembler > three times, each time using the previous compiler *and* assembler. For the record,

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paolo Bonzini
So please, propose your usage case. Don't tell us which commands you expect to be working, tell us of your workflow and why you think it's broken by the new system. Probably it's just a misunderstanding, since there are no real features that are being lost with the new system (while many bugs an

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Giovanni Bajo
Richard Kenner <[EMAIL PROTECTED]> wrote: > I would never use "../configure --disable-bootstrap && make bootstrap", but > I most certainly *would* use "../configure --disable-bootstrap; cd gcc; make > bootstrap" and would be *very* annoyed if it stoped working. This *will* stop working, but you h

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Arnaud Charlet
BTW, I assume someone is working on fixing the fact that currently there is no simple way to know at which stage the bootstrap is, while it was obvious with the previous approach: stage1/xgcc -Bstage1/ That'd be great. Arno

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
So the stage1 compiler is built as a 32-bit object, from the second stage on they're built as 64-bit objects. Very bad idea! I don't think we should support that. The whole point of bootstrapping is that all of the stageN compilers should behave identically and GCC simply doesn't do tha

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paolo Bonzini
Richard Kenner wrote: From the user point of view it is a bad bug that you cannot bootstrap a 64-bit compiler starting from a 32-bit one (because stage2 does not find a 64-bit libiberty to use). To me, "bootstrap" means that all three compilers are identical in configuration, so I don'

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
From the user point of view it is a bad bug that you cannot bootstrap a 64-bit compiler starting from a 32-bit one (because stage2 does not find a 64-bit libiberty to use). To me, "bootstrap" means that all three compilers are identical in configuration, so I don't follow your example.

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paolo Bonzini
I *suppose* you could include other parts of the toolchain in the "bootstrap", but I think the advantages of doing so are pretty small. What about libraries used by GCC? From the user point of view it is a bad bug that you cannot bootstrap a 64-bit compiler starting from a 32-bit one (beca

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
Bootstrap, to me talks about the whole toolchain and all the library that it uses. I suppose it *can*, but that's not what term usually means. Wouldn't you bootstrap an assembler written in assembly language? Of course. But that's not relevant to this since we don't write the compi

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Paolo Bonzini
I see it as "impossible with the old bootstrapping mechanism" as being for a good reason: it's not part of the compiler! I still fail to understand what it means to "bootstrap" anything other than a compiler: that word, to me, talks only about compilers. Bootstrap, to me talks about the whol

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Richard Kenner
We already do "sort of" bootstrap libada by including some rts routines in the compiler. Right, because those are explicitly listed in the compiler's Makefile and are part of the compiler. It would be possible to do so by really building libada three times, rather than by using

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-16 Thread Arnaud Charlet
> Fourth, because toplevel bootstrap is a prerequisite for many further > cleanups and improvements, including moving libgcc to the toplevel and > bootstrapping libada. For my information, what point is there in boostrapping libada ? BTW, it seems that ADAFLAGS (and BOOT_ADAFLAGS) are no longer p

Re: R: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-14 Thread Gabriel Dos Reis
Marcin Dalecki <[EMAIL PROTECTED]> writes: | Testing the resulting compiler has already a name: | | make test That does not test the compiler on building the runtime. There are a number of times where people reported runtime buik failures after front-end changes. So, I don't think your statem

Re: R: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-14 Thread Marcin Dalecki
Except that host tools (fastjar mostly) are made with the *new* GCC rather than the old one. And the reason is what? I don't see even any theoretical merit in the whole staging thing: 1. Bugs can theoretically cancel them self out. 2. The compiler isn't stressing himself more then the targ

R: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-14 Thread Bonzini Paolo
> > So the previous system was easy? IMO it's just that it's been tested for > > 15 years. Personally it took me a lot of time to understand the working of > > bubblestrap, stage*_copy, stage*_build, and so on > > The previous "make" was easy. Now even "make" is too much intricate for > common

Re: Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-14 Thread Eric Botcazou
> So the previous system was easy? IMO it's just that it's been tested for > 15 years. Personally it took me a lot of time to understand the working of > bubblestrap, stage*_copy, stage*_build, and so on The previous "make" was easy. Now even "make" is too much intricate for common mortals. >

Status and rationale for toplevel bootstrap (was Re: Example of debugging GCC with toplevel bootstrap)

2006-01-14 Thread Bonzini Paolo
> make stage1-bubble STAGE1_LANGUAGES=c,c++,fortran,java > Wow, that's awkward. I understand, but I have a patch to make it easier. Patches for the toplevel take a long time to review, and I cannot handle posting too many patches and tracking them. Not even two patches. Currently I

Re: Example of debugging GCC with toplevel bootstrap

2006-01-13 Thread Ian Lance Taylor
Jason Merrill <[EMAIL PROTECTED]> writes: > Remind me why it's a good idea to force me to mess with bootstrapping > at all, when all I want is to build a copy of the compiler that I can > use for debugging problems? There has to be an easier way to do that. > My laptop builds stage1 reasonably fa

Re: Example of debugging GCC with toplevel bootstrap

2006-01-13 Thread Richard Kenner
Steven Bosscher wrote: > ... you can use --disable-bootstrap and do a regular make, or is there > some reason why you can't do that? I wasn't aware of the option. Guess I'll do that, then. I thought the point was that that option is temporary and will go away. Did I misundersta

Re: Example of debugging GCC with toplevel bootstrap

2006-01-13 Thread Jason Merrill
Steven Bosscher wrote: ... you can use --disable-bootstrap and do a regular make, or is there some reason why you can't do that? I wasn't aware of the option. Guess I'll do that, then. Jason

Re: Example of debugging GCC with toplevel bootstrap

2006-01-13 Thread Marcin Dalecki
On 2006-01-13, at 23:59, Richard Kenner wrote: Remind me why it's a good idea to force me to mess with bootstrapping at all, when all I want is to build a copy of the compiler that I can use for debugging problems? Well install.texi explains in full lenght the wonders of the b

Re: Example of debugging GCC with toplevel bootstrap

2006-01-13 Thread Janis Johnson
On Fri, Jan 13, 2006 at 05:15:40PM -0500, Jason Merrill wrote: > Paolo Bonzini wrote: > > > >>So, how would I now get a cc1plus/f951/jc1/cc1 binary compiled by the > >>stage0 (host) compiler? > > >make stage1-bubble STAGE1_LANGUAGES=c,c++,fortran,java > > Wow, that's awkward. > > >I think that

Re: Example of debugging GCC with toplevel bootstrap

2006-01-13 Thread Marcin Dalecki
FWIW I personally think this toplevel bootstrap thing is a step backward, now typing "make" triggers such a complex machinery that nobody seems to able to understand what it does. Please forgive my ginorace but I didn't consider the autoconf/ automake/gnumake mechanism to be entierly trasp

Re: Example of debugging GCC with toplevel bootstrap

2006-01-13 Thread Eric Botcazou
> Remind me why it's a good idea to force me to mess with bootstrapping at > all, when all I want is to build a copy of the compiler that I can use > for debugging problems? There has to be an easier way to do that. My > laptop builds stage1 reasonably fast, but a bootstrap takes several hours.

Re: Example of debugging GCC with toplevel bootstrap

2006-01-13 Thread Richard Kenner
Remind me why it's a good idea to force me to mess with bootstrapping at all, when all I want is to build a copy of the compiler that I can use for debugging problems? There has to be an easier way to do that. My laptop builds stage1 reasonably fast, but a bootstrap takes several

Re: Example of debugging GCC with toplevel bootstrap

2006-01-13 Thread Jason Merrill
Paolo Bonzini wrote: So, how would I now get a cc1plus/f951/jc1/cc1 binary compiled by the stage0 (host) compiler? make stage1-bubble STAGE1_LANGUAGES=c,c++,fortran,java Wow, that's awkward. I think that after I fix PR25670, as a side effect, you will also be able to use the more intuiti

Re: Example of debugging GCC with toplevel bootstrap

2006-01-05 Thread Diego Novillo
On Thursday 05 January 2006 03:40, Paolo Bonzini wrote: > make stage1-bubble STAGE1_LANGUAGES=c,c++,fortran,java > > OK, thanks. That worked for a recently configured compiler. Now, suppose I had: $ ../trunk/configure $ make bootstrap check I now see a few failures that I want to check, so I

Re: Example of debugging GCC with toplevel bootstrap

2006-01-05 Thread Diego Novillo
On Thursday 05 January 2006 03:40, Paolo Bonzini wrote: > make stage1-bubble STAGE1_LANGUAGES=c,c++,fortran,java > Sorry, but this didn't help. This left me with only the cc1 binary in bld/gcc: $ cd $ make clean $ make stage1-bubble STAGE1_LANGUAGES=c,c++,fortran $ ls gcc/f951 gcc/cc1plus gcc/

Re: Example of debugging GCC with toplevel bootstrap

2006-01-05 Thread Paolo Bonzini
make all-stage2 STAGE1_LANGUAGES=c,fortran So, how would I now get a cc1plus/f951/jc1/cc1 binary compiled by the stage0 (host) compiler? That would give me the 4 '-g -O0' binaries compiled with the system compiler. I've tried following these notes, but it always gives me binaries built

Re: Example of debugging GCC with toplevel bootstrap

2006-01-04 Thread Diego Novillo
On Monday 02 January 2006 03:33, Paolo Bonzini wrote: > make all-stage2 STAGE1_LANGUAGES=c,fortran > So, how would I now get a cc1plus/f951/jc1/cc1 binary compiled by the stage0 (host) compiler? Before, I used to do (inside /gcc): $ make restage1 f951 cc1plus jc1 That would give me the 4 '

  1   2   >