%general-entities; ]> gcc-libstdc++ &gcc-version;
&gcc-url;
Libstdc++ from GCC-&gcc-version;, Pass 2 GCC tools, libstdc++ pass 2 <para>When building <xref linkend="ch-tools-gcc-pass2"/> we had to defer the installation of the C++ standard library because no suitable compiler was available to compile it. We could not use the compiler built in that section because it is a native compiler and should not be used outside of chroot and risks polluting the libraries with some host components.</para> <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> <seglistitem> <seg>&libstdcpp-tmpp2-sbu;</seg> <seg>&libstdcpp-tmpp2-du;</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> <title>Installation of Target Libstdc++ Libstdc++ is part of the GCC sources. You should first unpack the GCC tarball and change to the gcc-&gcc-version; directory. Create a link which exists when building libstdc++ in the gcc tree: ln -s gthr-posix.h libgcc/gthr-default.h Create a separate build directory for libstdc++ and enter it: mkdir -v build cd build Prepare libstdc++ for compilation: ../libstdc++-v3/configure \ CXXFLAGS="-g -O2 -D_GNU_SOURCE" \ --prefix=/usr \ --disable-multilib \ --disable-nls \ --disable-libstdcxx-pch ../libstdc++-v3/configure \ CXXFLAGS="-g -O2 -D_GNU_SOURCE" \ --prefix=/usr \ --enable-multilib \ --disable-nls \ --disable-libstdcxx-pch \ --host=x86_64-lfs-linux-gnu The meaning of the configure options: CXXFLAGS="-g -O2 -D_GNU_SOURCE" These flags are passed by the top level Makefile when doing a full build of GCC. --disable-libstdcxx-pch This switch prevents the installation of precompiled include files, which are not needed at this stage. --enable-multilib This switch is set by default but it is added here explicitly for documentary purpose. The libstdc++ libraries will be built for every arch (m64, m32, mx32) which are made available in . --host=x86_64-pc-linux-gnu Since up to now the cross-compile tools are used. This switch is set to ensure that the headers used for multilib are placed in correct locations where the final system can pick them up. Compile libstdc++ by running: make Install the library: make install <para>Details on this package are located in <xref linkend="contents-gcc" role="."/></para> </sect2> </sect1>