[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.4.6 クロスコンパイラ構築の実際

ようやく、一個の機種向けのコンパイラをコンパイルするのに、 ステージ 1 を構築する段階に進むことができる。 読者が何らかの ‘libgcc1.a’ を用意していなければ、そのファイルを 必要とする時点でコンパイルが止まり、適切なエラーメッセージを出すだろう。 ‘libgcc1.a’ を用意していれば、コンパイラを構築すると、 ‘libgcc1-test’ というテストプログラムをコンパイル、リンクする はずである。このリンクの際に、エラーが出たなら、‘libgcc1.a’ の 中に必要なルーチンが全部は揃っていないということである。

読者はヘッダファイル ‘float.h’ を提供しなければならない。 そのための一つの方法は、ターゲット機種で ‘enquire’ をコンパイルし、 実行することである。‘enquire’ がやることは、ターゲット機種上で 実行して、実験により、ターゲット機種の浮動小数点表現の性質を 明らかにすることである。‘enquire’ は発見した結果をヘッダファイル ‘float.h’ に記録する。ターゲット機種で ‘enquire’ を実行して このファイルを生成できない場合は、何か別の手段で適切な ‘float.h’ を用意する必要が出てくるだろう。さもないと、プログラムの中で ‘float.h’ を使わないようにしなければならなくなる。

クロスコンパイラの場合は、ステージ2 を作らないように。 クロスコンパイラを使って、GNU CC をクロスコンパイラとして構築することは できない。何故なら、そうすると、ホストではなくて、ターゲット機種上で 動作するプログラムができるからである。 例えば、386から68030へのクロスコンパイラをそれ自身でコンパイルした 場合、その結果は 386 にとっても(68030のコードにコンパイルされるので)、 68030 にとっても(386 をホストとしてコンフィギュレーションされているので) 正しくない。GNU CC 自身を 68030 のコードにコンパイルしたいのであれば、 68030 上でコンパイルしようとも、386 上でクロスコンパイラとしてコンパイル しようとも、コンフィギュレーションジに 68030 をホストとして指定 しなければならない。

クロスコンパイラをインストールするには、普通と同じに、‘make install’ とする。


This document was generated using texi2html 1.78.