Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211525
  • 博文数量: 67
  • 博客积分: 1237
  • 博客等级: 中尉
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-01 23:24
文章存档

2012年(8)

2011年(59)

分类: LINUX

2011-08-06 22:38:36

调整工具链

代码:

mv -v /tools/bin/{ld,ld-old}

mv -v /tools/$(gcc -dumpmachine)/bin/{ld,ld-old}

mv -v /tools/bin/{ld-new,ld}

ln -sv /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld

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

GCC_INCLUDEDIR=`dirname $(gcc -print-libgcc-file-name)`/include &&

find ${GCC_INCLUDEDIR}/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; &&

rm -vf `grep -l "DO NOT EDIT THIS FILE" ${GCC_INCLUDEDIR}/*` &&

unset GCC_INCLUDEDIR

工具链的调整方法有好几种,而且不同版本GCCspecs可能会有不同,但实际上都是把specs文件中的/lib/ld-linux.so.2替换成了/tools/lib/ld-linux.so.2,所以即使有些文章在调整工具链上的命令和LFS手册上的不一样也不用太奇怪,当然也可以直接用gcc -dumpspecs导出后手工直接编辑specs文件。
测试工具链的调整
echo 'main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep 'tools'
如果输出大致如下
[Requesting program interpreter: /tools/lib/ld-linux.so.2]
则表示调整成功,因为所有的库已经连接到了/tools/lib下。
rm -rf a.out dummy.c

阅读(1314) | 评论(0) | 转发(0) |
0

上一篇:LFS第四课笔记

下一篇:LFS第六课笔记

给主人留下些什么吧!~~