LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: xxdaystar

能不能解释一下什么是循环依赖问题?

[复制链接]
 楼主| 发表于 2009-4-4 12:44:34 | 显示全部楼层
就是不明白啊,我的问题还是停留在1楼的问题上,循环依赖问题的关键到底是什么,是Gblic吗,Glibc要不要依赖呢,照理说应该不用依赖因为它不是程序,但这样理解的话为什么在在切换虚拟根系统前的顺序是
->Binutils -> Gcc -> Glibc -> Gcc -> Binutils
即为什么不把Glic放在第一位呢?

而在切换完根后又可以直接
->Glibc -> Binutils -> Gcc

这时Glibc没有依赖问题吗?

不管怎样 谢谢你
回复 支持 反对

使用道具 举报

发表于 2009-4-4 13:04:12 | 显示全部楼层
自举
凑字
回复 支持 反对

使用道具 举报

发表于 2009-4-4 21:40:21 | 显示全部楼层
个人理解是为了保证系统的纯净。
glibc虽然是自满足的,但是编译glibc 也需要binutils和gcc,为了保证toolchains尽可能不受到host系统的影响,所以先安装binutils和gcc。
不知道你是不是用livecd来制作lfs的,如果你制作的lfs和livecd的版本一致的话,这样的步骤大概影响不大,因为host中的binutils和gcc都和目标系统的版本一致,也许可以省掉第一次的binutils和gcc(我猜的,没实验过)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-4 23:03:20 | 显示全部楼层
楼上说得挺有道理的,我今天再看了一下手册发现以前看得很不仔细,编译时使用的gcc的确会对gblic造成可能的影响(一些功能的开启),至于第二次可以直接编译glibc我想是因为 ‘中间系统’ 的gcc是新的,而且配置成所要求的,所以没必要了。同理,如果宿主系统的gcc也一样的话应该是可以的。我也是猜测的。

至于第一次时binutils为什么要在gcc前面,我想是不是有一些复杂的原因。实际上ld应该算是编译了5次。
回复 支持 反对

使用道具 举报

发表于 2009-4-15 16:54:28 | 显示全部楼层
又看了一遍手册里关于toolchain的描述,第五章里提到的顺序是:
binutils-->gcc-->libc-->gcc-->binutils
总觉得,最后这2个包的顺序貌似没多大关系。
如果是:
binutils-->gcc-->libc-->binutils-->gcc
好像也没什么影响。

这样的想法对吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

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