CLFS2.0原理分析mkdir -v ../glibc-build cd ../glibc-build echo "libc_cv_forced_unwind=yes" > config.cache echo "libc_cv_c_cleanup=yes" >> config.cache echo "libc_cv_mips_tls=yes" >> config.cache echo "install_root=${CLFS}" > configparms CC=gcc ../glibc-2.4/configure --prefix=/usr \ --host=${CLFS_TARGET} --build=${CLFS_HOST} \ --with-headers=${CLFS}/usr/include --cache-file=config.cache make install-headers install -dv ${CLFS}/usr/include/bits cp -v bits/stdio_lim.h ${CLFS}/usr/include/bits touch ${CLFS}/usr/include/gnu/stubs.h cp -v ../glibc-2.4/ports/sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h \ ${CLFS}/usr/include/bits gcc-4.1.1第一遍 patch -Np1 -i ../gcc-4.1.1-posix-1.patch patch -Np1 -i ../gcc-4.1.1-cross_search_paths-1.patch mkdir -v ../gcc-build cd ../gcc-build ../gcc-4.1.1/configure --prefix=${CLFS}/cross-tools \ --host=${CLFS_HOST} --target=${CLFS_TARGET} --disable-multilib \ --with-sysroot=${CLFS} --disable-nls --disable-shared \ --enable-languages=c make all-gcc make install-gcc glibc-2.4 patch -Np1 -i ../glibc-2.4-libgcc_eh-1.patch patch -Np1 -i ../glibc-2.4-localedef_segfault-1.patch patch -Np1 -i ../glibc-2.4-crosscompile_timezone_fix-1.patch patch -Np1 -i ../glibc-2.4-iconv_fix-1.patch ln -s nptl/sysdeps/unix/sysv/linux/i386 ports/sysdeps/unix/ mkdir -v ../glibc-build cd ../glibc-build echo "libc_cv_forced_unwind=yes" > config.cache echo "libc_cv_c_cleanup=yes" >> config.cache echo "install_root=${CLFS}" > configparms BUILD_CC="gcc" CC="${CLFS_TARGET}-gcc" \ AR="${CLFS_TARGET}-ar" RANLIB="${CLFS_TARGET}-ranlib" \ ../glibc-2.4/configure --prefix=/usr --libexecdir=/usr/lib/glibc \ --host=${CLFS_TARGET} --build=${CLFS_HOST} \ --disable-profile --enable-add-ons \ --with-tls --enable-kernel=2.6.0 --with-__thread \ --with-binutils=${CLFS}/cross-tools/bin --with-headers=${CLFS}/usr/include \ --cache-file=config.cache make make install cat > ${CLFS}/etc/nsswitch.conf << "EOF" # Begin /etc/nsswitch.conf passwd: files group: files shadow: files hosts: files dns networks: files protocols: files services: files ethers: files rpc: files # End /etc/nsswitch.conf EOF TZDIR="${CLFS}/usr/share/zoneinfo" ${CLFS}/usr/bin/tzselect cp -v --remove-destination ${CLFS}/usr/share/zoneinfo/[xxx] \ ${CLFS}/etc/localtime cat > ${CLFS}/etc/ld.so.conf << "EOF" # Begin /etc/ld.so.conf /usr/local/lib /opt/lib # End /etc/ld.so.conf EOF gcc-4.1.1第二遍 patch -Np1 -i ../gcc-4.1.1-posix-1.patch patch -Np1 -i ../gcc-4.1.1-PR20425-1.patch patch -Np1 -i ../gcc-4.1.1-cross_search_paths-1.patch mkdir -v ../gcc-build cd ../gcc-build ../gcc-4.1.1/configure --prefix=${CLFS}/cross-tools \ --host=${CLFS_HOST} --target=${CLFS_TARGET} --disable-multilib \ --with-sysroot=${CLFS} --disable-nls --enable-shared \ --enable-languages=c,c++ --enable-__cxa_atexit \ --enable-c99 --enable-long-long --enable-threads=posix make make install file-4.17 ./configure --prefix=${CLFS}/cross-tools make make install Groff-1.19.2 PAGE=A4 ./configure --prefix=${CLFS}/cross-tools --without-x make make install 工具链制作完成 目标系统制作 export CC="${CLFS_TARGET}-gcc" export CXX="${CLFS_TARGET}-g++" export AR="${CLFS_TARGET}-ar" export AS="${CLFS_TARGET}-as" export RANLIB="${CLFS_TARGET}-ranlib" export LD="${CLFS_TARGET}-ld" export STRIP="${CLFS_TARGET}-strip" echo export CC=\""${CC}\"" >> ~/.bashrc echo export CXX=\""${CXX}\"" >> ~/.bashrc echo export AR=\""${AR}\"" >> ~/.bashrc echo export AS=\""${AS}\"" >> ~/.bashrc echo export RANLIB=\""${RANLIB}\"" >> ~/.bashrc echo export LD=\""${LD}\"" >> ~/.bashrc echo export STRIP=\""${STRIP}\"" >> ~/.bashrc Linux-2.6.17.6 cp arch/mips/configs/qemu_defconfig .config make ARCH=mips CROSS_COMPILE=${CLFS_TARGET}- menuconfig make ARCH=mips CROSS_COMPILE=${CLFS_TARGET}- make ARCH=mips CROSS_COMPILE=${CLFS_TARGET}- \ INSTALL_MOD_PATH=${CLFS} modules_install cp vmlinux ${CLFS}/boot/clfskernel-2.6.17.6 cp System.map ${CLFS}/boot/System.map-2.6.17.6 cp .config ${CLFS}/boot/config-2.6.17.6 (转载请保持文章的完整性,请注明作者和出处) 作者:冲天飞豹(youbest) Email:youbest@sina.com 2006年8月12日 更新日志: 2006年8月18日: 修改了图片中的笔误两处,将MIPS写成了IMPS,已更正。 由cublog上的flw10000报告。 2006年8月22日: 修改了文字中的笔误两处,将MIPS写成了IMPS,已更正。 2006年8月30日: 修改错误命令 cp -av include/asm-mips/* /usr/include/asm 为 上一篇:使用异步 I/O 大大提高应用程序的性能 下一篇:简析Linux与FreeBSD的syscall 更多相关文章
|
推荐文章
精彩文章
|