Command explanations patch -Np1 -i ../gcc-&gcc-patch-version;.patch: This patch fixes a few bugs. In particular it contains the "copy fix" and "var fix" documented at . patch -Np1 -i ../gcc-3.2-nofixincludes-2.patch: This prevents the fixincludes script from running. --prefix=/static: This is NOT a typo. GCC hard codes some paths while compiling and so we need to pass /static as the prefix during ./configure. We pass the real install prefix during the make install command later. echo "#define HAVE_GAS_HIDDEN 1": This defines the .hidden assembler directive so that we don't build a faulty Glibc later on. make BOOT_LDFLAGS=-static: This is the equivalent to make LDFLAGS=-static as we use with other packages to compile them statically. ln -s gcc $LFS/static/bin/cc: This creates the $LFS/static/bin/gcc symlink, which some packages need.