Details on this package are located in the section called “Contents of GCC.”
Libstdc++ is the standard C++ library. It is needed to compile C++ code (part of GCC is written in C++), but we had to defer its installation when we built gcc-pass1 because Libstdc++ depends on Glibc, which was not yet available in the target directory.
![[Note]](../images/note.png)
Libstdc++ is part of the GCC sources.
You should first unpack the GCC tarball and change to the
gcc-15.2.0 directory.
Create a separate build directory for Libstdc++ and enter it:
mkdir -v build cd build
Prepare Libstdc++ for compilation:
../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++/15.2.0The meaning of the configure options:
--host=...Specifies that the cross-compiler we have just built
should be used instead of the one in
/usr/bin.
--disable-libstdcxx-pchThis switch prevents the installation of precompiled include files, which are not needed at this stage.
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/15.2.0This specifies the installation directory for include files.
Because Libstdc++ is the standard C++ library for LFS, this
directory should match the location where the C++ compiler
($LFS_TGT-g++) would search for the
standard C++ include files. In a normal build, this information
is automatically passed to the Libstdc++ configure
options from the top level directory. In our case, this information
must be explicitly given.
The C++ compiler will prepend the sysroot path
$LFS (specified when building
GCC-pass1) to the include file search path, so it will actually
search in
$LFS/tools/$LFS_TGT/include/c++/15.2.0.
The combination of the DESTDIR
variable (in the make install command below)
and this switch causes the headers to be installed there.
Compile Libstdc++ by running:
make
Install the library:
make DESTDIR=$LFS install
Remove the libtool archive files because they are harmful for cross-compilation:
rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.laDetails on this package are located in the section called “Contents of GCC.”