5.6. GCC-10.2.0 から取り出した libstdc++ 1 回め

Libstdc++ は標準 C++ ライブラリです。 (GCC の一部が C++ によって書かれているため)C++ をコンパイルするために必要となります。 ただし gcc-pass1 をビルドするにあたっては、このライブラリのインストールを個別に行わなければなりません。 それはこのライブラリが glibc に依存していて、対象ディレクトリ内ではまだ glibc が利用できない状態にあるからです。

概算ビルド時間: 0.5 SBU
必要ディスク容量: 954 MB

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

[注記]

注記

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

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

mkdir -v build
cd       build

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

../libstdc++-v3/configure           \
    --host=$LFS_TGT                 \
    --build=$(../config.guess)      \
    --prefix=/usr                   \
    --disable-multilib              \
    --disable-nls                   \
    --disable-libstdcxx-pch         \
    --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/10.2.0

configure オプションの意味

--host=...

利用するクロスコンパイラーを指示するものであり、/usr/bin にあるものではなく、まさに先ほど作り出したものを指定するものです。

--disable-libstdcxx-pch

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

--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/10.2.0

C++ コンパイラーが標準インクルードファイルを探すディレクトリを指定します。 通常のビルドにおいてそのディレクトリ情報は、最上位ディレクトリの configure のオプションにて指定します。 ここでの作業では、上のようにして明示的に指定します。

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

make

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

make DESTDIR=$LFS install

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