public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Richard Fish" <bigfish@asmallpond.org>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user] gcc-4.1.1
Date: Wed, 7 Jun 2006 21:24:22 -0700	[thread overview]
Message-ID: <7573e9640606072124u3bb8c439ue9a0053b7d1b6b46@mail.gmail.com> (raw)
In-Reply-To: <FAEEIJPAOFEMBBLKPMJEOEEPGCAA.BYoung@NuCORETech.com>

On 6/7/06, Bob Young <BYoung@nucoretech.com> 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.

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.

> 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.  This means that you can recompile
glibc with different CFLAGS, a different compiler version, whatever,
and they will *never notice*.  Well, unless you use broken CFLAGS or a
broken compiler, but no amount of "emerge -e world" can help you then.

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.

Again, *anybody* who claims that the end result of a compile depends
upon what version of glibc you have installed, much less what CFLAGS
or compiler glibc was built with, does not know what they are talking
about.

> for most people. This page: http://forums.gentoo.org/viewtopic-t-345229.html
> is about doing an install, but it shows how to update a subset of the entire
> tool chain. Note that the article does in the end, do a double emerge -e
> system, so the the value of updating a toolchain subset is questionable for
> the article's purposes.

Any article, on the forums or anywhere else, that claims some speed
benefit resulting from doing emerge -e world twice is wrong.

>
> In short:
>
> emerge gcc-config glibc binutils libstdc++-v3 gcc
> emerge gcc-config glibc binutils libstdc++-v3 gcc
> emerge -e world

There is no value to having glibc or libstdc++-v3 in the first line.
There is no value at all to doing that twice.

Also, libstdc++-v3 is only needed by a few binary-only programs on
Gentoo.  Moreover, it is simply a build of gcc-3.3.6, which as I
already said uses itself to build itself, so I cannot see any point in
ever re-merging libstdc++-v3 due to a gcc upgrade, much less doing
that 3 or 4 times!

> To be clear, in order to make sure absolutely everything is updated and the
> libraries that are linked against are also updated prior to use, the two
> emerge -e system commands, are the definitive solution. For those who don't
> want to spend many extra hours of compile time, in order to gain a 0.5%
> increase in performance, the above is offered for consideration.

No, there will not even be a 0.5% increase in performance.  Not even
0.1%.  Not even 0.000000000.....000001%.

-Richard
-- 
gentoo-user@gentoo.org mailing list



  parent reply	other threads:[~2006-06-08  4:31 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <ad4496950606070647s5a4bc702m8deeda7dbd590c4a@mail.gmail.com>
2006-06-07 13:53 ` [gentoo-user] gcc-4.1.1 Mohammed Hagag
2006-06-07 14:30   ` Peper
2006-06-07 14:35     ` Julien Cabillot
2006-06-07 14:45   ` Kristian Poul Herkild
2006-06-07 14:56   ` Neil Bothwick
2006-06-07 15:00   ` Bo Ørsted Andresen
2006-06-07 15:25   ` Conneries wearegeeks
2006-06-07 16:04   ` Roy Wright
2006-06-07 17:46     ` Mike Huber
2006-06-07 18:09       ` Daniel da Veiga
2006-06-07 19:27         ` Roy Wright
2006-06-07 19:55           ` Daniel da Veiga
2006-06-07 18:17       ` Evan Klitzke
2006-06-07 23:25     ` Richard Fish
2006-06-08  0:32       ` Evan Klitzke
2006-06-08  4:40         ` Richard Fish
2006-06-08 11:39           ` Mohammed Hagag
2006-06-08  1:50       ` Bob Young
2006-06-08  2:10         ` Jerry McBride
2006-06-12 21:35           ` Bob Young
2006-06-13  0:09             ` Richard Fish
2006-06-08  4:24         ` Richard Fish [this message]
2006-06-08 12:34           ` Bob Young
2006-06-08 13:31             ` Hans-Werner Hilse
2006-06-08 14:00               ` Bob Young
2006-06-08 14:28                 ` Bo Ørsted Andresen
2006-06-08 14:57                   ` Bob Young
2006-06-08 15:27                 ` Toby Cubitt
2006-06-08 18:05             ` Richard Fish
2006-06-09 11:50               ` Vladimir G. Ivanovic
2006-06-09 19:43                 ` Richard Fish
2006-06-16 17:25             ` Thomas T. Veldhouse
2006-06-16 17:50               ` Bob Young
2006-06-16 17:17         ` Thomas T. Veldhouse

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7573e9640606072124u3bb8c439ue9a0053b7d1b6b46@mail.gmail.com \
    --to=bigfish@asmallpond.org \
    --cc=gentoo-user@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox