4. linux-libc-headers-2.6.12.0
tar xvf linux-libc-headers-2.6.12.0.tar.bz2
cd linux-libc-headers-2.6.12.0
cp -Rv include/asm-i386 /tools/include/asm
cp -Rv include/linux /tools/include
cd ..
rm -rf linux-libc-headers-2.6.12.0
5. glibc-2.3.6
tar xvf glibc-2.3.6.tar.bz2
cd glibc-2.3.6
patch -Np1 -i ../ glibc-2.3.6-static-nss-fix-shy-1.patch
mkdir ../glibc-build
cd ../glibc-build
../glibc-2.3.6/configure --prefix=/tools --disable-profile --enable-add-ons --enable-kernel=2.6.0 --with-binutils=/tools/bin --without-gd --with-headers=/tools/include --without-selinux --enable-static-nss
make
mkdir -v /tools/etc
touch /tools/etc/ld.so.conf
make install
cd ..
rm -rf glibc-build
rm -rf glibc-2.3.6
6. 调整工具链
cd binutils-build
make -C ld install
cd ..
rm -rf binutils-build
SPECFILE=`dirname $(gcc -print-libgcc-file-name)`/specs &&
gcc -dumpspecs > $SPECFILE &&
sed 's@^/lib/ld-linux.so.2@/tools&@g' $SPECFILE > tempspecfile &&
mv -vf tempspecfile $SPECFILE &&
unset SPECFILE
7. gcc第二遍
tar xvf gcc-core-4.0.2.tar.bz2
tar xvf gcc-g++-4.0.2.tar.bz2
cd gcc-4.0.2
cp -v gcc/Makefile.in{,.orig} &&
sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in
cp -v gcc/Makefile.in{,.tmp} &&
sed 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp > gcc/Makefile.in
patch -Np1 -i ../gcc-4.0.2-specs-1.patch
mkdir -v ../gcc-build
cd ../gcc-build
../gcc-4.0.2/configure --prefix=/tools \
--with-local-prefix=/tools --enable-clocale=gnu \
--enable-shared --enable-threads=posix \
--enable-__cxa_atexit --enable-languages=c,c++ \
--disable-libstdcxx-pch
make
make install
8. binutils-2.16.1第二遍
tar xvf binutils-2.16.1.tar.bz2
mkdir binutils-build
cd binutils-build
../binutils-2.16.1/configure --prefix=/tools --disable-nls --enable-shared --with-lib-path=/tools/lib
make
make install
make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cd ..
9. 分支
到此可出现一个分支,你可以选择其中之一进行下去。
i. 分支(一):继续按照LFS中的步骤完成工具链中其它软件包的安装,然后进行目标系统的制作。
ii. 分支(二):不需要继续制作工具链,直接开始目标系统的制作,不需要进行chroot的操作。
这里我们按照分支(一),继续进行工具链的其它软件包的安装,安装过程参照LFS,这里不再说明。
