本パッケージの詳細は 6.21.2.「GCC の構成」を参照してください。
Libstdc++ は標準 C++ ライブラリです。 (GCC の一部が C++ によって書かれているため)C++ をコンパイルするために必要となります。 ただし gcc-pass1 をビルドするにあたっては、このライブラリのインストールを個別に行わなければなりません。 それはこのライブラリが glibc に依存していて、/tools ディレクトリ内ではまだ glibc が利用できない状態であるからです。
Libstdc++ のソースは GCC に含まれます。
したがってまずは GCC の tarball を伸張 (解凍) した上で gcc-9.2.0
ディレクトリに入って作業を進めます。
Libstdc++ のためのディレクトリを新たに生成して移動します。
mkdir -v build cd build
Libstdc++ をコンパイルするための準備をします。
../libstdc++-v3/configure \ --host=$LFS_TGT \ --prefix=/tools \ --disable-multilib \ --disable-nls \ --disable-libstdcxx-threads \ --disable-libstdcxx-pch \ --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/9.2.0
configure オプションの意味
--host=...
利用するクロスコンパイラーを指示するものであり、/usr/bin
にあるものではなく、まさに先ほど作り出したものを指定するものです。
--disable-libstdcxx-threads
C スレッドライブラリはまだ生成していないため、C++ スレッドライブラリも生成しないようにします。
--disable-libstdcxx-pch
本スイッチは、既にコンパイルされたインクルードファイルをインストールしないようにします。 これはこの時点では必要ないためです。
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/9.2.0
C++ コンパイラーが標準インクルードファイルを探すディレクトリを指定します。 通常のビルドにおいてそのディレクトリ情報は、最上位ディレクトリの configure のオプションにて指定します。 ここでの作業では、上のようにして明示的に指定します。
libstdc++ をコンパイルします。
make
ライブラリをインストールします。
make install
本パッケージの詳細は 6.21.2.「GCC の構成」を参照してください。