📄 1705.html
字号:
cd dejagnu-1.4.3<br>
./configure --prefix=/tools<br>
make install<br>
cd ..<br>
rm -rf dejagnu-1.4.3 <br>
<br>
#---- install script end ------------------------------------------------------<br>
<br>
<br>
5.13 安装 GCC-3.3.1 第二遍<br>
<br>
预计所需编译时间: 11.0SBU<br>
预计所需硬盘空间: 274MB<br>
<br>
测试GCC和Binutils所必需的工具Tcl, Expect, DejaGnu 已经安装完毕了。<br>
我们重新编译GCC和Binutils,把它们连接到新的Glibc上,并测试正确性。<br>
<br>
首先测试主系统中PTY (pseudo 终端) 是否设置正常。<br>
因为测试套件受PTY影响很大,这些PTY由主系统提供,通过 devpts 文件系统实现。<br>
[lfs@myhost tools]$ expect -c "spawn ls"<br>
spawn ls<br>
<br>
如果得到以下回答:<br>
The system has no more ptys. Ask your system administrator to create more.<br>
则PTY设置错误。<br>
<br>
[lfs@myhost tools]$ cp $LFS/sources/gcc-core-3.3.1.tar.bz2 .<br>
[lfs@myhost tools]$ cp $LFS/sources/gcc-g++-3.3.1.tar.bz2 .<br>
[lfs@myhost tools]$ cp $LFS/sources/gcc-testsuite-3.3.1.tar.bz2 .<br>
[lfs@myhost tools]$ cp $LFS/sources/gcc-3.3.1-no_fixincludes-2.patch .<br>
[lfs@myhost tools]$ cp $LFS/sources/gcc-3.3.1-specs-2.patch . <br>
<br>
[lfs@myhost tools]$ tar jxvf gcc-core-3.3.1.tar.bz2 <br>
[lfs@myhost tools]$ tar jxvf gcc-g++-3.3.1.tar.bz2 <br>
[lfs@myhost tools]$ tar jxvf gcc-testsuite-3.3.1.tar.bz2 <br>
[lfs@myhost tools]$ rm gcc-core-3.3.1.tar.bz2 gcc-g++-3.3.1.tar.bz2 gcc-testsuite-3.3.1.tar.bz2<br>
<br>
[lfs@myhost tools]$ cd gcc-3.3.1<br>
[lfs@myhost gcc-3.3.1]$ patch -Np1 -i ../gcc-3.3.1-no_fixincludes-2.patch<br>
此补丁禁止GCC中"fixincludes"脚本运行<br>
[lfs@myhost gcc-3.3.1]$ patch -Np1 -i ../gcc-3.3.1-specs-2.patch <br>
此补丁修改GCC的缺省动态连接器 ld-linux.so.2 的位置,还把 /usr/include 从GCC的头文件搜索路经里去掉<br>
<br>
[lfs@myhost gcc-3.3.1]$ mkdir ../gcc-build<br>
[lfs@myhost gcc-3.3.1]$ cd ../gcc-build<br>
[lfs@myhost gcc-build]$ ../gcc-3.3.1/configure --prefix=/tools <br>
> --with-local-prefix=/tools <br>
> --enable-clocale=gnu --enable-shared <br>
> --enable-threads=posix --enable-__cxa_atexit <br>
> --enable-languages=c,c++<br>
<br>
参数含义:<br>
--enable-threads=posix:使c++异常能处理多线程代码。<br>
--enable-__cxa_atexit:使用 __cxa_atexit来代替 atexit,用来记录本地和全局的的C++ destructors,这是为了完全符合标准的规定。它还会影响到C++ ABI,因此生成的C++共享库,在其他的Linux发行版上也能使用。<br>
--enable-clocale=gnu: 本参数确保C++库在任何情况下都使用正确的locale模块。如果配置脚本查找到de_DE这个locale,它就会使用正确的gnu模块。然而,有的人没有安装de_DE,就有可能创建出ABI不兼容的C++库文件,这是因为错误的使用了generic作为locale模块。<br>
--enable-languages=c,c++: 本参数编译C和C++语言的编译器。<br>
<br>
[lfs@myhost gcc-build]$ time { make; }<br>
<br>
real 8m3.179s<br>
user 7m21.530s<br>
sys 0m37.860s<br>
<br>
[lfs@myhost gcc-build]$ time { make -k check; } <br>
<br>
=== g++ Summary ===<br>
<br>
# of expected passes 8109<br>
# of unexpected failures 1<br>
# of unexpected successes 1<br>
# of expected failures 94<br>
# of untested testcases 9<br>
# of unsupported tests 14<br>
/mnt/lfs/tools/gcc-build/gcc/testsuite/../g++ version 3.3.1<br>
<br>
real 35m30.857s<br>
user 31m3.030s<br>
sys 4m18.870s<br>
<br>
[lfs@myhost gcc-build]$ make install<br>
<br>
再进行一次合理性测试<br>
[lfs@myhost gcc-build]$ cd ..<br>
[lfs@myhost tools]$ echo 'main(){}' > dummy.c<br>
[lfs@myhost tools]$ gcc dummy.c<br>
[lfs@myhost tools]$ readelf -l a.out | grep ': /tools'<br>
[Requesting program interpreter: /tools/lib/ld-linux.so.2]<br>
[lfs@myhost tools]$ rm a.out dummy.c<br>
[lfs@myhost tools]$ rm gcc-3.3.1-no_fixincludes-2.patch gcc-3.3.1-specs-2.patch <br>
[lfs@myhost tools]$ rm -rf gcc-3.3.1<br>
[lfs@myhost tools]$ rm -rf gcc-build<br>
<br>
#---- install script begin ----------------------------------------------------<br>
cd /tools<br>
cp $LFS/sources/gcc-core-3.3.1.tar.bz2 .<br>
cp $LFS/sources/gcc-g++-3.3.1.tar.bz2 .<br>
cp $LFS/sources/gcc-testsuite-3.3.1.tar.bz2 .<br>
cp $LFS/sources/gcc-3.3.1-no_fixincludes-2.patch .<br>
cp $LFS/sources/gcc-3.3.1-specs-2.patch . <br>
tar jxvf gcc-core-3.3.1.tar.bz2 <br>
tar jxvf gcc-g++-3.3.1.tar.bz2 <br>
tar jxvf gcc-testsuite-3.3.1.tar.bz2 <br>
rm gcc-core-3.3.1.tar.bz2 gcc-g++-3.3.1.tar.bz2 gcc-testsuite-3.3.1.tar.bz2<br>
cd gcc-3.3.1<br>
patch -Np1 -i ../gcc-3.3.1-no_fixincludes-2.patch<br>
patch -Np1 -i ../gcc-3.3.1-specs-2.patch <br>
mkdir ../gcc-build<br>
cd ../gcc-build<br>
../gcc-3.3.1/configure --prefix=/tools <br>
--with-local-prefix=/tools <br>
--enable-clocale=gnu --enable-shared <br>
--enable-threads=posix --enable-__cxa_atexit <br>
--enable-languages=c,c++<br>
make;<br>
make -k check<br>
make install<br>
<br>
cd ..<br>
echo 'main(){}' > dummy.c<br>
gcc dummy.c<br>
readelf -l a.out | grep ': /tools'<br>
rm a.out dummy.c<br>
rm gcc-3.3.1-no_fixincludes-2.patch gcc-3.3.1-specs-2.patch <br>
rm -rf gcc-3.3.1<br>
rm -rf gcc-build<br>
<br>
#---- install script end ------------------------------------------------------<br>
<br>
<br>
<br>
5.14 安装 Binutils-2.14 第二遍<br>
<br>
预计安装所需编译时间: 1.5SBU<br>
预计所需硬盘空间: 108MB<br>
<br>
[lfs@myhost tools]$ cp $LFS/sources/binutils-2.14.tar.bz2 .<br>
[lfs@myhost tools]$ tar jxvf binutils-2.14.tar.bz2 <br>
[lfs@myhost tools]$ rm binutils-2.14.tar.bz2 <br>
[lfs@myhost binutils-build]$ ../binutils-2.14/configure --prefix=/tools <br>
> --enable-shared --with-lib-path=/tools/lib<br>
<br>
参数含义:<br>
--with-lib-path=/tools/lib: 这个参数给配置脚本指定缺省的库搜索路径。我们不希望库搜索路径里包含主系统的目录。<br>
<br>
[lfs@myhost tools]$ make<br>
<br>
[lfs@myhost tools]$ make check<br>
运行测试套件:<br>
这时应该没有unexpected failures, 但expected failures是正常的。<br>
<br>
=== ld Summary ===<br>
<br>
# of expected passes 192<br>
# of expected failures 1<br>
/mnt/lfs/tools/binutils-build/ld/ld-new 20030612<br>
<br>
<br>
[lfs@myhost binutils-build]$ make install<br>
<br>
还要再次调整工具链,这里要做一些准备:<br>
[lfs@myhost binutils-build]$ make -C ld clean<br>
[lfs@myhost binutils-build]$ make -C ld LIB_PATH=/usr/lib:/lib<br>
<br>
#---- install script begin ----------------------------------------------------<br>
cd /tools<br>
cp $LFS/sources/binutils-2.14.tar.bz2 .<br>
tar jxvf binutils-2.14.tar.bz2 <br>
rm binutils-2.14.tar.bz2 <br>
../binutils-2.14/configure --prefix=/tools <br>
--enable-shared --with-lib-path=/tools/lib<br>
make<br>
make check<br>
<br>
make install<br>
make -C ld clean<br>
make -C ld LIB_PATH=/usr/lib:/lib<br>
<br>
#---- install script end ------------------------------------------------------<br>
<br>
<br>
5.15 安装 Gawk-3.1.3<br>
<br>
预计所需编译时间: 0.2SBU<br>
预计所需硬盘空间: 17MB<br>
<br>
Gawk是awk的一个实现,用来处理文本文件。<br>
<br>
安装下列程序: awk (link to gawk), gawk, gawk-3.1.1, grcat, igawk, pgawk, pgawk-3.1.1, pwcat<br>
<br>
[lfs@myhost binutils-build]$ cd /tools<br>
[lfs@myhost tools]$ cp $LFS/sources/gawk-3.1.3.tar.bz2 .<br>
[lfs@myhost tools]$ tar jxvf gawk-3.1.3.tar.bz2 <br>
[lfs@myhost tools]$ rm gawk-3.1.3.tar.bz2 <br>
[lfs@myhost tools]$ cd gawk-3.1.3<br>
[lfs@myhost gawk-3.1.3]$ ./configure --prefix=/tools<br>
[lfs@myhost gawk-3.1.3]$ make <br>
[lfs@myhost gawk-3.1.3]$ make check<br>
[lfs@myhost gawk-3.1.3]$ make install<br>
[lfs@myhost gawk-3.1.3]$ cd ..<br>
[lfs@myhost tools]$ rm -rf gawk-3.1.3<br>
<br>
#---- install script begin ----------------------------------------------------<br>
cd /tools<br>
cp $LFS/sources/gawk-3.1.3.tar.bz2 .<br>
tar jxvf gawk-3.1.3.tar.bz2 <br>
rm gawk-3.1.3.tar.bz2 <br>
cd gawk-3.1.3<br>
./configure --prefix=/tools<br>
make <br>
make check<br>
make install<br>
cd ..<br>
rm -rf gawk-3.1.3<br>
<br>
#---- install script end ------------------------------------------------------<br>
<br>
<br>
5.16 安装 Coreutils-5.0<br>
<br>
预计所需编译时间: 0.9SBU<br>
预计所需硬盘空间: 69MB<br>
<br>
一整套基本的shell工具<br>
安装下列程序: basename, cat, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, dirname, du, echo, env, exp和, expr, factor, false, fmt, fold, groups, head, hostid, hostname, id, install, join, kill, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, sort, split, stat, stty, su, sum, sync, tac, tail, tee, test, touch, tr, true, tsort, tty, uname, unexp和, uniq, unlink, uptime, users, vdir, wc, who, whoami 和 yes<br>
<br>
[lfs@myhost tools]$ cp $LFS/sources/coreutils-5.0.tar.bz2 .<br>
[lfs@myhost tools]$ tar jxvf coreutils-5.0.tar.bz2 <br>
[lfs@myhost tools]$ rm coreutils-5.0.tar.bz2 <br>
[lfs@myhost tools]$ cd coreutils-5.0/<br>
[lfs@myhost coreutils-5.0]$ ./configure --prefix=/tools<br>
<br>
[lfs@myhost coreutils-5.0]$ make<br>
[lfs@myhost coreutils-5.0]$ make RUN_EXPENSIVE_TESTS=yes check<br>
[lfs@myhost coreutils-5.0]$ make install<br>
[lfs@myhost coreutils-5.0]$ cd ..<br>
[lfs@myhost tools]$ rm -rf coreutils-5.0 <br>
<br>
#---- install script begin ----------------------------------------------------<br>
cd /tools<br>
cp $LFS/sources/coreutils-5.0.tar.bz2 .<br>
tar jxvf coreutils-5.0.tar.bz2 <br>
rm coreutils-5.0.tar.bz2 <br>
cd coreutils-5.0/<br>
./configure --prefix=/tools<br>
make<br>
make RUN_EXPENSIVE_TESTS=yes check<br>
<br>
make install<br>
cd ..<br>
rm -rf coreutils-5.0 <br>
<br>
#---- install script end ------------------------------------------------------<br>
<br>
<br>
5.17 安装 Bzip2-1.0.2<br>
<br>
预计所需编译时间: 0.1SBU<br>
预计所需硬盘空间: 2.5MB<br>
<br>
Bzip2 是块排序文件压缩器,比传统的gzip生成更高压缩比的文件。<br>
安装下列程序: bunzip2 (link to bzip2), bzcat (link to bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless 和 bzmore<br>
安装下列库文件: libbz2.a, libbz2.so (link to libbz2.so.1.0), libbz2.so.1.0 (link to libbz2.so.1.0.2) 和 libbz2.so.1.0.2<br>
<br>
[lfs@myhost tools]$ cp $LFS/sources/bzip2-1.0.2.tar.bz2 .<br>
[lfs@myhost tools]$ tar jxvf bzip2-1.0.2.tar.bz2 <br>
[lfs@myhost tools]$ rm bzip2-1.0.2.tar.bz2 <br>
[lfs@myhost tools]$ cd bzip2-1.0.2<br>
[lfs@myhost bzip2-1.0.2]$ make PREFIX=/tools install<br>
[lfs@myhost bzip2-1.0.2]$ cd ..<br>
[lfs@myhost tools]$ rm -rf bzip2-1.0.2 <br>
<br>
#---- install script begin ----------------------------------------------------<br>
cd /tools<br>
cp $LFS/sources/bzip2-1.0.2.tar.bz2 .<br>
tar jxvf bzip2-1.0.2.tar.bz2 <br>
rm bzip2-1.0.2.tar.bz2 <br>
cd bzip2-1.0.2<br>
make PREFIX=/tools install<br>
cd ..<br>
rm -rf bzip2-1.0.2 <br>
<br>
#---- install script end ------------------------------------------------------<br>
<br>
<br>
5.18 安装 Gzip-1.3.5<br>
<br>
预计所需编译时间: 0.1SBU<br>
预计所需硬盘空间: 2.6MB<br>
<br>
gzip 包含用Lempel-Ziv编码(LZ77)来压缩和解压文件的程序。<br>
安装下列程序: gunzip (link to gzip), gzexe, gzip, uncompress (link to gunzip), zcat (link to gzip), zcmp, zdiff, zforce, zegrep, zfgrep, zgrep, zmore 和 znew<br>
<br>
[lfs@myhost tools]$ cp $LFS/sources/gzip-1.3.5.tar.bz2 .<br>
[lfs@myhost tools]$ tar jxvf gzip-1.3.5.tar.bz2 <br>
[lfs@myhost tools]$ rm gzip-1.3.5.tar.bz2 <br>
[lfs@myhost tools]$ cd gzip-1.3.5/<br>
[lfs@myhost gzip-1.3.5]$ ./configure --prefix=/tools<br>
[lfs@myhost gzip-1.3.5]$ make<br>
[lfs@myhost gzip-1.3.5]$ make install<br>
[lfs@myhost gzip-1.3.5]$ cd ..<br>
[lfs@myhost tools]$ rm -rf gzip-1.3.5<br>
<br>
#---- install script begin ----------------------------------------------------<br>
cd /tools<br>
cp $LFS/sources/gzip-1.3.5.tar.bz2 .<br>
tar jxvf gzip-1.3.5.tar.bz2 <br>
rm gzip-1.3.5.tar.bz2 <br>
cd gzip-1.3.5/<br>
./configure --prefix=/tools<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -