7.7. GCC-10.1.0 から取り出した libstdc++ 2 回め

gcc-pass2 のビルドの際には、C++ 標準ライブラリのインストールを控えていました。 なぜならそれをコンパイルするための適切なコンパイラーが、その時点では存在していなかったためです。 その節でビルドしたコンパイラーが利用できなかった理由は、それがネイティブコンパイラーであって、chroot 環境の外では利用できるものではなく、またホスト上のコンポーネントによってライブラリを壊してしまうリスクがあるためです。

概算ビルド時間: 1.1 SBU
必要ディスク容量: 1.1 GB

7.7.1. Libstdc++ のインストール

[注記]

注記

libstdc++ のソースは GCC に含まれます。 したがってまずは GCC の tarball を伸張 (解凍) した上で gcc-10.1.0 ディレクトリに入って作業を進めます。

gcc ツリー内での libstdc++ のビルド時に必要なリンクを生成します。

ln -s gthr-posix.h libgcc/gthr-default.h

libstdc++ のためのディレクトリを新たに生成して移動します。

mkdir -v build
cd       build

libstdc++ をコンパイルするための準備をします。

../libstdc++-v3/configure            \
    CXXFLAGS="-g -O2 -D_GNU_SOURCE"  \
    --prefix=/usr                    \
    --disable-multilib               \
    --disable-nls                    \
    --host=$(uname -m)-lfs-linux-gnu \
    --disable-libstdcxx-pch

configure オプションの意味

CXXFLAGS="-g -O2 -D_GNU_SOURCE"

このフラグは GCC のビルドを完全に行うために、最上位の Makefile に対して指示します。

--host=$(uname -m)-lfs-linux-gnu

本パッケージが完全なコンパイラーのビルドの一部として、どのようになるのかを考えておく必要があります。 本スイッチは GCC ビルドにおいて configure に受け渡されることになるものです。

--disable-libstdcxx-pch

本スイッチは、既にコンパイルされたインクルードファイルをインストールしないようにします。 これはこの時点では必要ないためです。

libstdc++ をコンパイルします。

make

ライブラリをインストールします。

make install

本パッケージの詳細は 「GCC の構成」を参照してください。