LinuxSir.cn,穿越时空的Linuxsir!

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

这样编译LFS工具链可以吗?

[复制链接]
发表于 2008-2-21 22:43:56 | 显示全部楼层 |阅读模式
LFS手册上(第5和第6章)编译bin和gcc各编译了3次(不算调整), glibc编译了2次. 这样做应该是为了尽量不受host system影响, 且为了证明self compile.

那能不能直接从host system的工具链,   编译出目标机器上的工具链呢?
比如, 过程如下:
   先用host system的bin+gcc+ glibc,  编译出目标机器的glibc(我觉得用host system里的bin_h+gcc_h+ glibc_h 编译出来的glibc 和 用临时系统的bin_1+gcc_1+glibc_h编译出来的glibc 应该是一致的);
   然后用host system的bin+gcc+ glibc 编译出 目标系统的bin 和 gcc.  这里生成的ld的搜索路径是host system的/lib和/usr/lib, 这里生成的gcc会需要用到host system的/lib/ld-linux.so.2.  但是这没关系, 等chroot后,  ld和gcc不就可以用我们第一步生成的glibc了吗?

不知这样会产生什么问题?  刚接触, 望大家帮帮忙
 楼主| 发表于 2008-2-21 22:47:36 | 显示全部楼层
因为我以前在本机安装gcc时, 就只编译了一遍, 所以对LFS的多次编译有点不理解
回复 支持 反对

使用道具 举报

发表于 2008-2-22 09:27:11 | 显示全部楼层
你主系统的gcc,glibc和所编译的gcc,glibc的版本不一定相同,lfs里工具链里第一次编译gcc是为了编译glibc,然后再次编译gcc是为了使用刚编译好的glibc。你用主系统的gcc+glibc来编译目标系统的gcc,这样不能保证chroot时工具链可用吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-22 10:31:10 | 显示全部楼层
版本不一致确实会有问题.

那是不是只要主系统的gcc,glibc和所编译的gcc,glibc的版本一致, 就可以直接编译了呢?

还有一个问题, 我用gcc3.1.2编译出来的glibc,  和我用gcc3.3.4编译出来的glibc, 有没有可能是一致的?  即编译glibc时有没有依赖gcc的版本?  我总觉得编译glibc不太依赖于主系统
回复 支持 反对

使用道具 举报

发表于 2008-2-22 11:41:03 | 显示全部楼层
Post by bzw2000;1818843

那是不是只要主系统的gcc,glibc和所编译的gcc,glibc的版本一致, 就可以直接编译了呢?
你的方法里一直没用到工具链里编译的glibc,使用的是主系统的glibc
Post by bzw2000;1818843
还有一个问题, 我用gcc3.1.2编译出来的glibc,  和我用gcc3.3.4编译出来的glibc, 有没有可能是一致的?  即编译glibc时有没有依赖gcc的版本?  我总觉得编译glibc不太依赖于主系统
应该有差别
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-23 10:34:47 | 显示全部楼层
Post by 不开花;1818870
你的方法里一直没用到工具链里编译的glibc,使用的是主系统的glibc


应该有差别



那有啥区别呢?  能说具体一点吗
回复 支持 反对

使用道具 举报

发表于 2008-2-23 19:52:21 | 显示全部楼层
Post by bzw2000;1819150
那有啥区别呢?  能说具体一点吗

问题也不是很大,大概也就是新安装的系统无法启动,某些应用程序无法运行,或者甚至无法chroot等等而已。
回复 支持 反对

使用道具 举报

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

本版积分规则

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