LinuxSir.cn,穿越时空的Linuxsir!

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

lfs6.3 第5.7 第一次调整工具链的疑问.

[复制链接]
发表于 2009-12-16 18:31:41 | 显示全部楼层 |阅读模式
lfs6.3 第5.7 第一次调整工具链的疑问.
gcc -dumpspecs | sed 's@^/lib/ld-linux.so.2@/tools&@g' \
  > `dirname $(gcc -print-libgcc-file-name)`/specs
对上面这句话我有3个疑问
1.这个gcc应该是/tools/bin/gcc吧???
2.因为gcc的连接是由/tools/bin/ld实现的.那么上一部[mv -v /tools/bin/{ld-new,ld}]
的作用是什么??ld-new已经知道去/tools/lib查找库,为什么我又要调整gcc的specs呢?
还是这部可以省略(为了安全).gcc-pass2的patch是否也可以省略.
3.关于/tools/lib/ld-linux.so的疑问.
当新的gcc(gcc-pass1之后)编译的运行程序,为什么/tools/lib/ld-linux.so 知道去/tools/lib找,
这和编译binutils时指定[make -C ld LIB_PATH=/tools/lib]LIB_PATH有什么关系??
LIB_PATH告诉ld只是连接的时候去哪找库,而ld-linux.so是决定运行的时候去哪加载库??
和--prefix又有什么关系吗?
发表于 2009-12-17 08:04:57 | 显示全部楼层
有类似的疑问。
这几天在进行gcc 4.5 的升级和glibc的重编译工作,一直不能完美成功,正在肯手册原理中。
回复 支持 反对

使用道具 举报

发表于 2009-12-17 08:06:34 | 显示全部楼层
Post by d00m3d;2055097
昨天找来 gcc-4.5-20091203 对 QT-3.3.8b 作测试,还没时间重新编译 kde 的库,结果所言非虚,所有依赖 QT 的软件包括 KDE 旗下的及 K3B 之类的即时起飞
刚好新的 snapshot gcc-4.5-20091210 出来又试一下,编译大件的 C 程序如 wine 及 SeaMonkey (Gtk+2 的)依然不能用 -O3,但 -O2 就能正常运作,wine 也能跑软件了,同样有起飞的感觉,但编译内核却能用 -O3。
吾乃贪心之人,一不做,二不休。既然 gcc-4.5 已进 stage 3,亦即是已经"定型",现只作 debug 阶段,於是把 glibc-2.11 也来一遍。呵呵,简直是解胎换骨,好不快哉!
个半月前仍是 stage 1,很不稳定,事隔个半月已有点不可同日而语,gcc-4.5 绝对值得期待。
Btw,编译 gcc-4.5-20091210 多了一个新依赖 mpc,但可轻松搞定。

版主,写个教程吧。给个明灯照照路
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-17 09:40:04 | 显示全部楼层
正在研究....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-17 17:51:10 | 显示全部楼层
问题的回答:
1.因为PATH=/tools/bin,所以gcc是/tools/bin/gcc
2.没有弄清楚ld和ld-linux.so.2的关系.不过我做了实验/bin/ld和/tools/bin/ld都默认去找/lib/ld-linux.so.2,也不知道为什么?
3.编译binutils指定--prefix=path,那么ld的库查找路径就自动加入path/lib.所以ld(不是ld-new)知道去/tools/lib找
回复 支持 反对

使用道具 举报

发表于 2009-12-18 18:50:38 | 显示全部楼层
ld 是 Binutils 提供的
ld.so 是 Glibc 提供的
回复 支持 反对

使用道具 举报

发表于 2009-12-19 07:56:26 | 显示全部楼层
Post by 飞龙在天;2056505
版主,写个教程吧。给个明灯照照路


我建议你先看看精华区关於编译源码升级 glibc 的文章
回复 支持 反对

使用道具 举报

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

本版积分规则

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