<sect2> <title>Command explanations</title> <para><userinput>patch -Np1 -i ../gcc-&gcc-patch-version;.patch:</userinput> This new patch deals with incorrect handling of weak symbols, the over-optimization of calls to those weak symbols, an atexit issue and the __dso_handle symbol required for atexit's proper function.</para> <para><userinput>make BOOT_LDFLAGS=-static:</userinput> This is the equivalent to make LDFLAGS=-static as we use with other packages to compile them statically.</para> <para><userinput>--prefix=/usr:</userinput> This is NOT a typo. GCC hard codes some paths while compiling and so we need to pass /usr as the prefix during ./configure. We pass the real install prefix during the make install command later.</para> <para><userinput>--enable-languages=c,c++:</userinput> This only builds the C and C++ compilers and not the other available compilers as they are, on the average, not often used. If those other compilers are needed, the --enable-languages parameter can be omitted.</para> <para><userinput>--enable-threads=posix:</userinput> This enables C++ exception handling for multithreaded code.</para> <para><userinput>ln -sf ../usr/bin/cpp:</userinput> This creates the $LFS/lib/cpp symlink. Some packages explicitly try to find cpp in /lib.</para> <para><userinput>ln -sf ../bin/cpp:</userinput> This creates the $LFS/usr/lib/cpp symlink as there are packages that expect cpp to be in /usr/lib.</para> </sect2>