On 8/23/06, Alan Mckinnon <[EMAIL PROTECTED]> wrote:
Incidentally, gcc cannot use itself to compile itself - that's nonsensical and a classic bootstrap problem. It uses a binary (which happens to be a gcc) to compile the source code for gcc which produces another binary. That binary then compiles the same source for gcc to produce yet another binary, etc, etc. For stage 1 to work at all, there has to be a compiler available to compile a compiler, and that first compiler that *must* be available is probably the compiler that the rest of the system uses, or the one on the LiveCD. So if you want to be pedantic about building gcc, then please be correctly pedantic and pedantically correct :-)
Yes, I'm aware of how the bootstrapping process works. And if we want to be really pedantic about it, I'm still right, because the stage1 compiler that is built using the existing system compiler isn't called gcc...hmm, what is it...xcc, xgcc...something with an x in it anyway! So there is still no such thing as a "gcc built with the 'system compiler'" :-P More seriously, there is some really _stupid_ information about upgrading gcc on the gentoo-wiki and forums that seems to crop up here every few months, and it makes me really, really angry. Stupid crap like needing to "emerge -e system ; emerge -e system; emerge -e world; emerge -e world". Or needing to rebuild all binaries that link against a library whenever you rebuild the library. Or that you should merge gcc twice because you want a version of gcc that is built with the same version of gcc. All of which is utter nonsense. FYI, as Bo pointed out, I am _not_ saying that the emerge -e system step is redundant. I completely agree that "emerge -e system ; emerge -e world" is the safe route for upgrading gcc. I've been convinced of that by the previous threads on this topic. I was specifically replying to your comment: "Your current compiler was built with -O3, and you want to rebuild the system using a compiler compiled as -O2, hence the 2 step process." This is very much in the same line of thinking as those wiki pages and forum postings, and is wrong. Giving a newbie misinformation doesn't help them in any way. Oh, and BTW, on gentoo your optimization choices for gcc are -O, -O2 or nothing, because all other -O options are replaced with -O2 by toolchain.eclass. -Richard -- gentoo-user@gentoo.org mailing list