今天,就实验了一下昨天对于binutils,gcc和glibc的思考。我在内核3.6.0下升级的。

(参考资料:手把手教你构建自己的linux系统,lFS-7.2英文版,还有gcc,glibc的帮助文档README,INSTALL,及一些博客)

1、升级binutils

      这个安装比较简单,注意一下configure 时的配置就行。

2. 升级gcc

     gcc对make,perl等版本有要求,需先升级make,perl等(参考构建系统),注意gcc的configure 配置。gcc一般也不会有错。


3. 升级glibc

    glibc升级对gcc,perl等有要求(已经升级)。一定要注意glibc的configure .


   ./configure --prefix=/usr--disable-profile --enable-add-ons --enable-kernel=2.6.26 --without-tls


 以上是我用的配置。--with-headers=/usr/src/linux-x.x.x/include 这个我没用。因为我已升级到3.6.0内核

据博客http://www.ibm.com/developerworks/cn/linux/l-cn-glibc-upd/index.html里说,内核版本较高时,不用指定内核头文件,前提条件是用命令:ls -l /lib/modules/$(uname -r) 查看,列出的最后一行是否有

source-> /usr/src/linux-3.6(这里我的是3.6)

有这行,则可以省略,否则要用选项--with-headers

--without-tls:这个是防止c库存储的兼容性问题。这个要看make时是否有错,如果有错把这行给加上,没错可加可不加。我的当时是make出错,然后加上这个,make就没问题了。


我出错最多的地方是: make install 总共29个错。 我发现,是跟gcc安装的时候弄的不是很清楚有关

   问题1. libc.so.6.0.17.py(这个记不准了,后缀没错)不是elf文件, 后来我跟其linux机器对比发现,没有这个  将  其 删掉。

   问题2. 、/usr/bin/perl scripts/test-installation.pl /home/test/glic-build/

              Unmatched (in regex; marked by<- HERE in m/$(<-HERE if $(abi-32-ld-soname),$(abi-32-ld-soname),ld/ at

    scripts/test-installation.pl line 172,<LDD> line1.

 make[1]:***[install] ERROR 29

 make:***[install] 错误2

始终没有解决问题2.

  ”***“这样的错误应该是很严重的。照博客上说,应该启动不了机器才对。但是,我的机器启动了,查看binutils,gcc,glibc等的版本信息都对,暂时使用的命令也能运行,编写简单的程序编译运行也能行,不知道为什么?让人有点心虚。

补充下:我在/lib/ 下看了下文件的更改时间,然后将12年之前的文件删掉了(但这些文件时新库的链接文件链接的),想要重新全部启用新库,但是由于make install不成功,并没有生成,结果机器进不去了。问题是:库安装完后还有旧库文件吗?应不应该有?偷笑抓狂

       请大家,指点一下,交流一下。

                                                                              可以给我发邮件: 12_xia_zai@sina.cn

Logo

更多推荐