LinuxSir.cn,穿越时空的Linuxsir!

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

有关新版本LFS里面的一个严重问题。gcc 和binutils2.13.2.1

[复制链接]
发表于 2003-2-20 16:05:21 | 显示全部楼层 |阅读模式
在新版本LFS中使用gcc-3.2.1(3.2.2), glibc-2.3.1和 binutils-2.13.2.1
而很不幸的是在这个版本的gcc中有一个潜在的bug,不能检测长于
3位的版本号。也就是说在检测binutils的时候回出现问题。
在configure的时候回出现
checking assembler hidden support... no
这个地方本来应该是yes

这个问题是存在于gcc的configure文件中的。从而在这样编译的gcc先天不足而最终在编译kde的时候出现,导致不能使用kde程序。

现在如果你在使用这个版本的lfs的话,呵呵。有几个解决办法。

1. 把binutils换成2.13.2版,这个gcc可以认。

2. 在第5,6章中重新编译gcc,这个是一个万全知法,就是重新编译lfs(要吐血的),当然可以先试试编译一个gcc,然后试试kde。在编译gcc之前。echo "#define HAVE_GAS_HIDDEN 1" >>gcc/auto-host.h

3. 别用kde程序,或者呵呵,好好读读lfs的邮件列表,烧烧香等高人们出高招吧。

具体看一眼这个bug吧,在gcc-3.2.1/gcc/configure
7220行左右。

    # GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
    # This is irritatingly difficult to feature test for. Look for
    # the date string after the version number.
    ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`

--> $ld_ver == GNU ld version 2.13.2.1

    ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([ ].*\|\)$,\1,p'`
    ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`

然后变量就是空的了。接着不远给出

    elif test -z "$ld_vers"; then
        # If there was no date string nor ld version number, something is wrong
        gcc_cv_as_hidden="no"
    ...

呵呵,可以拿到shell版讨论一下,HOHO
 楼主| 发表于 2003-2-20 16:08:31 | 显示全部楼层
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=24798
编译kde的问题在这里。

最后感谢,liuspider兄在上面文章中指出这个问题。
发表于 2003-2-20 16:15:58 | 显示全部楼层
好及时啊,已经不少兄弟遇到了。
回去我也要再装一遍,要不然就跟不上形势了:)
发表于 2003-2-20 22:20:35 | 显示全部楼层
如果是还没有安装LFS,可以试试把gcc的configure脚本中的那一部分改掉,使它能识别binutils的新版本号。至于已经编译的,就没办法了。
发表于 2003-2-20 22:48:07 | 显示全部楼层
I found this information on the dot.kde.org through google.  
发表于 2003-2-21 01:23:37 | 显示全部楼层
LFS 好是好,就是一出问题很难办。。。
 楼主| 发表于 2003-2-21 03:19:44 | 显示全部楼层
最初由 kj501 发布
如果是还没有安装LFS,可以试试把gcc的configure脚本中的那一部分改掉,使它能识别binutils的新版本号。至于已经编译的,就没办法了。


前面第2中方法就是强制定义这个变量位yes的。

而并不是lfs除了问题很麻烦,这样的问题在所有的发行版里面的gcc3.2.x都存在。只不过还是潜伏期而已。lfs如果需要大换血,其他发行版无不例外的也要大换血。
发表于 2003-2-21 11:23:47 | 显示全部楼层
其他发行版换血?怎么换?安装RH的人恐怕都不想编译gcc这些大家伙吧?等着redhat出下一版本?哈哈,还是LFS好啊!!!
发表于 2003-2-21 11:27:45 | 显示全部楼层
gcc还算大?
自从编译了kde。。我觉得真是“没什么大不了"

再说rpm可以U升级啊。。
发表于 2003-2-21 13:54:55 | 显示全部楼层
yeah,那就等rh放出升级版吧。赫赫
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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