LinuxSir.cn,穿越时空的Linuxsir!

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

确认lfs中一个步骤的意义

[复制链接]
发表于 2006-8-16 23:34:14 | 显示全部楼层 |阅读模式
我在回顾lfs的过程
在chroot前
第二次编译gcc和binutils的目的最主要是为了把
/lib/ld-linux.so.2换成/tools/lib/ld-linux.so.2,以及gcc和binutils本身所链接的动态库
于是先编gcc,再编binutils
是这样么?
谢谢
发表于 2006-8-17 04:58:30 | 显示全部楼层
为了确保后来编译出来的包能连接到新的 glibc。binutils本身对路径没有什么要求,所以放在gcc后编译就好了。
回复 支持 反对

使用道具 举报

发表于 2006-8-17 07:52:04 | 显示全部楼层
楼主再看看 youbest 的精文《反向分析LFS》应该会很清楚了
回复 支持 反对

使用道具 举报

 楼主| 发表于 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只存在了很短的时间)
这两个顺序是必须的么?
谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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