From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lists.gentoo.org ([140.105.134.102] helo=robin.gentoo.org) by nuthatch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1FrIFc-00035i-Ts for garchives@archives.gentoo.org; Fri, 16 Jun 2006 17:36:57 +0000 Received: from robin.gentoo.org (localhost [127.0.0.1]) by robin.gentoo.org (8.13.7/8.13.6) with SMTP id k5GHYsJU026528; Fri, 16 Jun 2006 17:34:54 GMT Received: from rwcrmhc11.comcast.net (rwcrmhc11.comcast.net [204.127.192.81]) by robin.gentoo.org (8.13.7/8.13.6) with ESMTP id k5GHPT9i009380 for ; Fri, 16 Jun 2006 17:25:30 GMT Received: from veldy.net ([66.41.96.112]) by comcast.net (rwcrmhc11) with ESMTP id <20060616172528m1100b1jt3e>; Fri, 16 Jun 2006 17:25:28 +0000 Received: from veldy.net (localhost [127.0.0.1]) by veldy.net (Postfix) with ESMTP id 4A5D51CC24 for ; Fri, 16 Jun 2006 12:25:27 -0500 (CDT) Received: from [127.0.0.1] (localhost [127.0.0.1]) by veldy.net (Postfix) with ESMTP id DD41A1CC20 for ; Fri, 16 Jun 2006 12:25:26 -0500 (CDT) Message-ID: <4492E985.60400@veldy.net> Date: Fri, 16 Jun 2006 12:25:25 -0500 From: "Thomas T. Veldhouse" User-Agent: Thunderbird 1.5.0.4 (Windows/20060516) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user@gentoo.org Reply-to: gentoo-user@lists.gentoo.org MIME-Version: 1.0 To: gentoo-user@lists.gentoo.org Subject: Re: [gentoo-user] gcc-4.1.1 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP X-Archives-Salt: 31c2b339-f74d-4cda-9b8c-3bab63ea5170 X-Archives-Hash: ce6c791c47deb8b97b656f61d34634ea Bob Young wrote: > >> -----Original Message----- >> From: richard.j.fish@gmail.com [mailto:richard.j.fish@gmail.com]On >> Behalf Of Richard Fish >> Sent: Wednesday, June 07, 2006 9:24 PM >> To: gentoo-user@lists.gentoo.org >> Subject: Re: [gentoo-user] gcc-4.1.1 >> >> >> On 6/7/06, Bob Young wrote: >> >>> chain. At the end of the first emerge -e system you may have a >>> >> new compiler, >> >>> but that new compiler was built with the old compiler. >>> >> This is false. Gcc uses itself to build itself. It uses the system >> compiler to build an initial version of itself, and then uses that >> version to build itself. And then for good measure, it uses that >> version to build the final version. It's called a 3-stage bootstrap, >> and is documented in the file INSTALL/build.html in the gcc sources. >> You can also look at /usr/portage/eclass/toolchain.eclass to determine >> that Gentoo uses the "bootstrap-lean" target by default. >> > > No, sorry that's just wrong. gcc is slotted, if the above were true there > would be no need for gcc-config in order to select a default compiler. When > a new compiler is emerged, it does *not* automatically become the default > system compiler, it must be selected, and that can only happen after it has > successfully been emerged. The first time a new gcc compiler is emerged, it > is indeed built with the previous version of the compiler that is currently > istalled as the system default. > xgcc is built with the previous system compiler. Then xgcc is used to build the new gcc for installation. The final install is a self-built gcc and is not built by the previous system compiler. > > >> Frankly, anybody who claims that gcc needs to be merged twice so it >> can be built with itself and produce better object code does not have >> a clue what they are talking about and you should simply disregard >> anything else they have to say about what is necessary/useful when >> upgrading gcc. >> > > It does have to be emerged twice in order for it to be built with itself, > anybody who thinks otherwise doesn't understand the basic principles of > compiling and linking. > I think you have ignored what the previous poster suggested. > >>> happen before glibc is rebuilt are linked against a glibc that was built >>> with the old compiler. >>> >> And guess what difference this makes to the end result. None. >> Nada. Nothing. >> >> Because for basically every program on your system, they are >> *dynamically linked* against glibc. >> > > Are you absolutely 100% sure that every single system utility and > application is *dynamically* linked, and that no apps or utilities anywhere > in the system specifies *static* linking? > > >> There are a few statically linked programs that will include glibc >> internally. These are used only for system recovery purposes...there >> is no need to worry about them at all. >> > > Really, so people who intentionally and specifically want to upgrade > absolutely *everything* should not worry about what gets left out because > Richard says it's unimportant? > > The issue is about upgrading gcc and even the gcc upgrade howto recommends > an emerge -e world. It's clear that gcc it self at least has to be emerged > twice in order to build the new gcc *with* the new gcc. Wrong. The gcc package builds a bootstrap compiler (the new version), called xgcc and then it uses that to build [after some tests] the final installed gcc. A single emerge of gcc will create a compiler that was built by itself. Thus, if you move from 3.3.4 to 4.1.0: emerge -u gcc You WILL have a gcc that was compiled by a 4.1.0 compiler. > Whether this is > strictly necessary or not is certaintly debatable, but since it executes > fairly quickly, and seems a prudent step, I'd argue that it's a reasonable > course. Of course a selecting the new gcc as the default with gcc-config is > also required in between, but that's self evident. Adding gcc-config, glibc, > binutils, libstdc++-v3, quickly covers the most important parts of the basic > tool chain, and covers most utilities or apps that might specify static > linking, and executes much much faster than an emerge -e system. > > >> There is no value to having glibc or libstdc++-v3 in the first line. >> There is no value at all to doing that twice. >> > > Twice is the only way to build the new gcc *with* the new gcc. I should have > added the gcc-config select command in between, but I thought that was > pretty clearly necessary. > > You didn't pay attention to what he wrote. I hope perhaps my post made it more clear. Tom Veldhouse -- gentoo-user@gentoo.org mailing list