以下, 間違ってたら指摘してください. 

package とかでない gcc をソースコードから /usr/local/bin/* 辺りへイン
ストールする場合, 次のような手順を踏むと思います. 

  1) システムの cc (または gcc) で最適化をオフにして stage1 コンパイラ
  を作る.

  2) stage1 コンパイラで適当に最適化して stage2 コンパイラを作る. 

  3) 2 と同じコンパイルオプションで stage2 コンパイラを使って stage3 
  コンパイラを作る.

  4) stage2/stage3 コンパイラを比較して同じならインストール. 

ここでシステムの cc のバージョンが違えば (たとえ同じ最適化オプションを
選んだとしても) stage1 コンパイラは stage2/stage3 コンパイラと異なるも
のになるはずです. 

で, UPDATES にある方法だと思い切りこれを端折っちゃってる気がするんです
けど. 先の gperf が動作しなかったのは, 古いコンパイラでコンパイルした 
ライブラリを使っていたのが原因のようです (brandelf も同じかも).

gperf は buildworld にも用いられるので以降同じ環境で buildworld も通ら
なくなりますが, この状態で /usr/obj/* にある gperf は動作します. つま
り

  古いコンパイラでコンパイルした古い gperf
  古いコンパイラでコンパイルした新しい gperf (動作しない)
  新しいコンパイラでコンパイルした新しい gperf

てなことになって普通にインストールされるのは二番目になっちゃうような.
このことが

        The only fix is to rebuild the application and any C++
        libraries used.

なんでしょうけど, これって C++ に限らずもう一度やっておかないと最悪シ
ステムの挙動が直前のシステムのコンパイラのバージョンに依存しちゃいます
よね?
--
Kazuo Fox Dohzono / dohzono@hf.rim.or.jp