按照lfs书上的方法,非常顺利的完成了临时系统(包含编译器和其他的一些编译、测试工具还有它们依赖的软件)。由于其中使用了一些新的软件包,使得一些过程遇到了麻烦。
最突出的应该算是gcc-4.3了。因为gcc-4.3相对于前面的版本有了很大的改动,用了它之后,有些软件的编译还会遇到麻烦。首先,gcc-4.3本身的依赖性就不一样。书上所用的是gcc-4.2,而gcc-4.3在进行configure的时候,就不能通过,缺少gmp和mpfr两个软件。因此,还要先安装这两个软件。这两个软件之间本身也有依赖关系,mpfr依赖于gmp,需要首先安装gmp,再安装mpfr。不过,这两个软件本身安装起来非常方便,在configure指定一下prefix就可以了。安装完这些后,就可以进行第一遍的编译了。其中configure的参数和书上的一样,gcc已经开始默认进行bootstrap编译了,这个选项可以省略了。这时候编译并安装的是最基本的gcc,只安装了c编译器(主要是用来编译自己的)。但是由于需要bootstrap模式的编译,需要花费很长的时间。
后面的安装还是非常方便的,但是用了gcc-4.3之后,编译glibc就需要打补丁了,在lfs网站上下载了glibc的gcc-4.3补丁之后,就可以顺利的编译并安装了。
这两个大户弄好之后,其他的相对来说就快多了。后面相对麻烦的就是修改spec,改变编译器指向的库文件。这里使用的是sed,一个单文本行的编辑器,以前没有接触过,感觉命令非常难懂,也就没有仔细去研究它,直接复制粘贴到终端中进行修改。
在编译完一些测试套件之后,还要再次编译binutils和gcc。这次gcc的编译之前,也需要使用sed来修改文件,改变完成后的编译器使用的库的位置。看不懂,所以也只是简单地进行复制和粘贴,反正再安装好后进行的编译测试中是正确的,编译器使用了新的glibc库,没有使用主机原来的库的路径。
临时系统弄好了,接下来要干的就是用临时系统中的工具制作新的linux系统了。

