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

2012年(8)

2011年(59)

分类: LINUX

2011-08-15 03:14:29

Binutils-2.17

代码:

tar xvf $LFS/binutils-2.17.tar.bz2

mkdir binutils-build

cd binutils-build

../binutils-2.17/configure --prefix=/usr --enable-shared

make tooldir=/usr

make check

这里测试统计可能会出现个别失败。

代码:

make tooldir=/usr install

cp -v ../binutils-2.17/include/libiberty.h /usr/include

cd ..

rm -rf binutils-build

rm -rf binutils-2.17

 

 

GCC-4.1.2

代码:

tar xvf $LFS/gcc-4.1.2.tar.bz2

cd gcc-4.1.2

sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in

sed -i 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in

sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in

sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in

mkdir -v ../gcc-build

cd ../gcc-build

../gcc-4.1.2/configure --prefix=/usr \

--libexecdir=/usr/lib --enable-shared \

--enable-threads=posix --enable-__cxa_atexit \

--enable-clocale=gnu --enable-languages=c,c++

make

make -k check

这里check时间比较长,可能会有一些错误发生

代码:

make install

ln -sv ../usr/bin/cpp /lib

ln -sv gcc /usr/bin/cc

cd ..

rm -rf gcc-build

rm -rf gcc-4.1.2

重新测试工具链是否正确,确定GCC是否安装正确
echo 'main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep 'lib'
如果显示[Requesting program interpreter: /lib/ld-linux.so.2]表示链接位置正确,动态库已经连接到了目标系统的/lib下。
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
应该显示
  /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../crt1.o succeeded
  /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../crti.o succeeded
  /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../crtn.o succeeded
grep -B3 '^ /usr/include' dummy.log
应该显示
  #include <...> search starts here:
   /usr/local/include
   /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include
   /usr/include
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
应该显示
  SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
  SEARCH_DIR("/usr/local/lib")
  SEARCH_DIR("/lib")
  SEARCH_DIR("/usr/lib");
grep "/lib/libc.so.6 " dummy.log
应该显示
  attempt to open /lib/libc.so.6 succeeded
grep found dummy.log
应该显示
  found ld-linux.so.2 at /lib/ld-linux.so.2
如果上面均显示正常,那么表明工具链正常,可以删除测试文件了
rm -v dummy.c a.out dummy.log

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

上一篇:LFS第十二课笔记

下一篇:LFS第十四课笔记

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