+ -
当前位置:首页 → 问答吧 → 做玩LFS后,回过头仔细看,有点问题搞不明白,请指教,谢谢

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

时间:2007-10-30

来源:互联网

在 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文件

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

谢谢指教

作者: zyl19861126   发布时间: 2007-10-30

Good question,怪不得 LFS-6.3 及以後的手冊都改以更直接的方式了

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

作者: d00m3d   发布时间: 2007-10-30

引用:
作者: zyl19861126
我查看了 宿主系统`dirname $(gcc -print-libgcc-file-name)下没有specs文件
由于set +h所以在5.7的时候运行的gcc应该是工具链的gcc了,而不是宿主系统的gcc

引用:
作者: 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 &&
mv -vf tempspecfile $SPECFILE &&
unset SPECFILE
.....
但是最后又 删除了 specs 和 tempspecfile文件

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

谢谢指教
最后是把tempspecfile改名成$SPECFILE,然后干掉SPECFILE环境变量,而不是删除$SPECFILE文件,所以最后还是存在一个specs文件的

作者: LanEast   发布时间: 2007-10-30

谢谢,我在宿主上实验了下,果然如 LanEast 大哥所说,不过那么多的步骤还不如 d00m3d 大哥说的 6.3 那么来得直接 来得那么清楚

作者: zyl19861126   发布时间: 2007-10-30