なぜGCC自体は3回をコンパイルするのですか?

ng.newbie:

私はソースからGCCをコンパイルしているが、私は完全にの有用性を理解するように見えることはできませんgccそれ自体コンパイル3回。

これは何の利益に役立つのでしょうか?

この答えはこう述べています。

  • 既存のCコンパイラとGCCの新しいバージョンをビルド
  • あなただけの建て1とGCCの再構築新バージョン
  • 検証目的のために(オプション)繰り返し工程2。

今、私の質問は、最初のステップが完了すると、コンパイラが構築されればということで時間を無駄にはそれを再構築する理由は?

それだけで、検証のためですか?もしそうなら、それはかなり無駄なようです。

物事はより複雑になりますこっち

あなたはconfigureスクリプトに多くの情報を送っているとメイクターゲットが標準ではないため、このためのビルドは、前のパッケージのためのより複雑です。

私は、全体のコンパイラが右、なぜだけではなく、1回のパスですべてを行うCで書かれている意味ですか?

3相ブートストラップを使用することは何ですか?

前もって感謝します。

Emacsはナット私を駆動させます。
  • ステージ2.と3.は、コンパイラ自身のために良いテストです:それは自分自身をコンパイル(通常はまたのようないくつかのライブラリができているlibgcclibstdc++-v3)、それは非自明なプロジェクトをかむことができます。

  • ステージ2と3では、あなたは(最適化なしで例えばコンパイラ異なるオプションを、生成することができます-O0)、または(上の最適化-O2)。プログラムの出力/副作用が使用される最適化のレベルに依存してはならないとして、どちらかのコンパイラのバージョンは、彼らは非常に異なるバイナリであっても、同じバイナリを生成しなければなりません。これは、コンパイラのためのさらに別の(実行時テスト)です。

あなたには、いくつかの理由で非ブートストラップを好む場合、configure --disable-bootstrap

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=28357&siteId=1