推定構築時間: 11.7 SBU 推定必要ディスクスペース 294 MB |
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 は以下のパッケージに依存します: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
Note: この章の 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 パッチを間違ってあてているというのが最もありそうな原因でしょう。