LinuxSir.cn,穿越时空的Linuxsir!

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

binutils和gcc 编译的顺序关系大么?

[复制链接]
发表于 2008-6-5 17:11:17 | 显示全部楼层 |阅读模式
看lfs 6.3的book的时候,有下面的疑问
在第5章构建临时系统中,制作工具链的第一步是编译binutils(5.3节),然后是gcc(5.4节),然后是glibc(5.6节),在调整完工具链后,却是先编译gcc(5.11节),然后才是binutils(5.12节)

个人感觉binutils比gcc更加“底层”一些,在构建临时系统的时候,应该把binutils放在gcc前面
或是说,在这个步骤上由于我们已经编译了一个与宿主系统无关的glibc,所以binutils和gcc的编译顺序已经无关紧要了?
发表于 2008-6-5 22:32:38 | 显示全部楼层
Post by ccagg;1859418
看lfs 6.3的book的时候,有下面的疑问
在第5章构建临时系统中,制作工具链的第一步是编译binutils(5.3节),然后是gcc(5.4节),然后是glibc(5.6节),在调整完工具链后,却是先编译gcc(5.11节),然后才是binutils(5.12节)

个人感觉binutils比gcc更加“底层”一些,在构建临时系统的时候,应该把binutils放在gcc前面
或是说,在这个步骤上由于我们已经编译了一个与宿主系统无关的glibc,所以binutils和gcc的编译顺序已经无关紧要了?


LFS手册这里的用意是尽快抛弃经过工具链调整的GCC。因为该GCC依赖于那个手工修改过的specs文件。在重新安装gcc之后,新的gcc将使用内建的SPECS。由于gcc是bootstrap过的,因此它本身也是用自己编译的。而binutils也使用这个gcc编译,就能使得实际上所有的工具链程序都不用那个调整过的GCC编译。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-6 11:42:40 | 显示全部楼层
Post by 地球发动机;1859541
LFS手册这里的用意是尽快抛弃经过工具链调整的GCC。因为该GCC依赖于那个手工修改过的specs文件。在重新安装gcc之后,新的gcc将使用内建的SPECS。由于gcc是bootstrap过的,因此它本身也是用自己编译的。而binutils也使用这个gcc编译,就能使得实际上所有的工具链程序都不用那个调整过的GCC编译。


谢谢,你这么一说,我就清楚多了,但是还是有疑问:
gcc bootstrap是在第一次安装的时候执行的,为什么在第二次安装gcc的时候不再使用bootstrap?如果为了避免手工修改的specs影响,貌似再次使用bootstrap会更好。
回复 支持 反对

使用道具 举报

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

本版积分规则

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