|
|

楼主 |
发表于 2006-8-17 09:09:13
|
显示全部楼层
Post by 终极幻想
为了确保后来编译出来的包能连接到新的 glibc。binutils本身对路径没有什么要求,所以放在gcc后编译就好了。
看了《反向》一文,现在的理解大概是:
1 制作临时的binutils和gcc,为了编译glibc,
先做binutils是为了保证gcc使用新的binutils,同时制作了后备的ld和ld-linux.so.2
2 制作glibc,可以开始切换到工具链了
3 调整工具链,切换ld(链接新的lib),切换ld-linux.so.2,用gcc重编gcc自身
4 后续工具的编译,这里binutils与其他工具并无大的区别
感觉binutils共经历了5个阶段
临时binutils -> 制作切换所用ld-new1 -> 工具链binutils -> 制作切换用ld-new2 -> 最终系统binutils
6.1的文档貌似是这样吧,6.2中大概为了避免不必要的错误(需要保留环境),给合并成了3个阶段。
这样理解是否正确呢?请指点,谢谢~~
补充一个问题
第一次调整工具链后,先编译了gcc,后编译binutils(是为了先确保编译工具gcc脱离host system么?那这个顺序其实无所谓吧)
第二次调整工具链后,反过来的顺序(是为了先产生一个纯正的ld和ld-linux.so么?也就是说ld-new2只存在了很短的时间)
这两个顺序是必须的么?
谢谢 |
|