LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1003|回复: 2

<反向分析LFS>的疑问

[复制链接]
发表于 2008-2-20 17:12:52 | 显示全部楼层 |阅读模式
文章接近结尾地方有这么一段话:
....下面的问题就是这个工具链是如何来的呢?
  这个问题就要回到前面所提到的工具链运行时所依赖的环境,还是这个glibc,
要编译这个glibc必须是在工具链的编译工具生成之前,而工具链的编译工具又依赖于glibc,
那么这个glibc就不能是现在工具链中的编译工具编译出来的,那么是谁编译的呢?
  这个问题的答案:当然还是编译器编译的这个glibc和工具链里的编译工具,
也就是说在工具链中的编译工具编译目标系统之前需要另一个编译器来编译这个在使用的工具链中的
编译器和编译器所依赖的glibc。.......

    如何理解呢?

    网上有篇文章<LFS构造原理的分析>中写道:
    ......为什么要将Bintuils和Gcc编译两次,可以直接用宿主系统?
第一次编译bintuils和Gcc的目的一方面是为了编译Glibc;
另一方面是为了能自己编译出第二遍的Gcc,即使得Gcc是自我编译的。
如果直接使用宿主系统可以满足编译Glibc的要求,但是Gcc就不是自我编译了。
这里为了保证制造的正确性以及使Gcc是自我编译.......

    而论坛上有说如果gcc编译器的版本同src的版本时,bootstrap就没有必要,既然自我编译没有必要,
而直接使用宿主系统可以满足编译Glibc的要求,那么gcc就不需要pass 1这一步了,直接用host编译glibc就
可以了。
    哪个才是正确的理解呢?
发表于 2008-2-21 08:44:02 | 显示全部楼层
你不能确认主系统提供的gcc一定和你要编译的gcc一致。
回复 支持 反对

使用道具 举报

发表于 2008-2-23 19:44:16 | 显示全部楼层
有些情况可以保证一致,比如用LFS LiveCD 做宿主。
更多的情况下是不一致。尽管看上去版本号一样,但其实是不一样的,有可能发行版使用Hack过的版本。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表