GCC-3.3.1 のインストール

推定構築時間:           11.7 SBU
推定必要ディスクスペース  294 MB

GCC の内容

GCC パッケージは C 及び C++ コンパイラなどを含む GNU コンパイラコレクションを収容しています。

インストールされるプログラム: c++, cc (link to gcc), cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, 及び gcov

インストールされるライブラリ: libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] 及び libsupc++.a

GCC インストール依存性

GCC は以下のパッケージに依存します: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

GCC のインストール

このパッケージはデフォルト最適化フラグ( -march 及び -mcpu オプションを含む)を変更するとおかしなふるまいをすると知られています。 ですから、たとえば CFLAGS や CXXFLAGS のような、デフォルトの最適化を書きかえるような何かの環境変数を定義したなら、GCC を構築する時に、その設定を解除するか、修正するようお勧めします。

今回は、C と C++ コンパイラの両方を構築するので、GCC-core と GCC-g++ tarball を解凍し、同じディレクトリに展開します。 同じように、GCC テストスイーツパッケージも取り出したほうがよいでしょう。GCC パッケージのすべてはコンパイラ以外にも、もっと沢山のものを梱包しています。 これらの構築についての説明は http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html にあります。

patch -Np1 -i ../gcc-3.3.1-no_fixincludes-2.patch
patch -Np1 -i ../gcc-3.3.1-suppress-libiberty.patch

二つ目のパッチは、ここでは Binutils によって提供されたものを使うので、GCC からの libiberty のインストールを行いません。 第 5 章からの GCC スペックへのパッチをあてないように注意しましょう。

GCC 文書は、ソースディレクトリとは別の構築専用ディレクトリでコンパイルするよう勧めています。

mkdir ../gcc-build
cd ../gcc-build

それではコンパイルのために GCC を準備します。

../gcc-3.3.1/configure --prefix=/usr \
    --enable-shared --enable-threads=posix \
    --enable-__cxa_atexit --enable-clocale=gnu \
    --enable-languages=c,c++

パッケージをコンパイルします。

make

結果をテストしますが、エラーで止まらないように(いくつかの既知の物を思いだすでしょう)します。

make -k check

the Section called GCC-3.3.1 のインストール in Chapter 5という節からのテストスイーツの注意書きはここでもまだとても役立ちます。万一何か疑問を持ったらそこを参照して確かめて下さい。

そしてパッケージをインストールします。

make install

いくつかのパッケージは C Preprocessor が /lib ディレクトリにインストールするよう要求するパッケージもあります。これらのパッケージのために、シンボリックリンクを作ります。

ln -s ../usr/bin/cpp /lib

多くのパッケージが C コンパイラを呼び出すのに cc という名前を使います。これらのパッケージに合わせるために、シンボリックリンクを作ります。

ln -s gcc /usr/bin/cc

Note: この時点で、この章の初めの方で行なった完成度テストを繰り返すことを強く勧めます。 the Section called Toolchain を再調整するという節を再び参照してチェックを繰り返しましょう。 もし結果が悪ければ、第 5 章からの GCC Specs パッチを間違ってあてているというのが最もありそうな原因でしょう。