LinuxSir.cn,穿越时空的Linuxsir!

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

做玩LFS后,回过头仔细看,有点问题搞不明白,请指教,谢谢

[复制链接]
发表于 2007-10-29 21:35:57 | 显示全部楼层 |阅读模式
在   5.7. 调整工具链 下有:


从现在开始,所有程序都将连接到 /tools/lib 中的库文件。

下面要做的是修正 GCC 的"specs"文件,使它指向新的动态连接器。一个简单的 sed 命令就能做到:

SPECFILE=`dirname $(gcc -print-libgcc-file-name)`/specs &&
gcc -dumpspecs > $SPECFILE &&
sed 's@^/lib/ld-linux.so.2@/tools&@g' $SPECFILE > tempspecfile &&
mv -vf tempspecfile $SPECFILE &&
unset SPECFILE

我查看了 宿主系统`dirname $(gcc -print-libgcc-file-name)下没有specs文件,lfs 6.2指南(如上),先建立specs文件,并修改 /lib/lib-linux.so.2   为   /tools/lib/lib-linux.so.2 保存在tempspecfile,但是最后又 删除了 specs 和 tempspecfile文件

想问这样 有什么用阿,修改后又没有保存,似乎没有什么用阿

谢谢指教
发表于 2007-10-30 05:07:01 | 显示全部楼层
Good question,怪不得 LFS-6.3 及以後的手冊都改以更直接的方式了

引自 http://www.linuxfromscratch.org/ ... er05/adjusting.html
gcc -dumpspecs | sed 's@^/lib/ld-linux.so.2@/tools&@g' \
  > `dirname $(gcc -print-libgcc-file-name)`/specs
回复 支持 反对

使用道具 举报

发表于 2007-10-30 08:55:54 | 显示全部楼层
Post by zyl19861126
我查看了 宿主系统`dirname $(gcc -print-libgcc-file-name)下没有specs文件


由于set +h所以在5.7的时候运行的gcc应该是工具链的gcc了,而不是宿主系统的gcc

Post by zyl19861126
在   5.7. 调整工具链 下有:
SPECFILE=`dirname $(gcc -print-libgcc-file-name)`/specs &&
gcc -dumpspecs > $SPECFILE &&
sed 's@^/lib/ld-linux.so.2@/tools&@g' $SPECFILE > tempspecfile &&
[color="Red"]mv -vf tempspecfile $SPECFILE &&
unset SPECFILE
.....
但是最后又 删除了 specs 和 tempspecfile文件

想问这样 有什么用阿,修改后又没有保存,似乎没有什么用阿

谢谢指教

最后是把tempspecfile改名成$SPECFILE,然后干掉SPECFILE环境变量,而不是删除$SPECFILE文件,所以最后还是存在一个specs文件的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-30 13:06:31 | 显示全部楼层
谢谢,我在宿主上实验了下,果然如 LanEast 大哥所说,不过那么多的步骤还不如 d00m3d 大哥说的 6.3 那么来得直接 来得那么清楚
回复 支持 反对

使用道具 举报

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

本版积分规则

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