LinuxSir.cn,穿越时空的Linuxsir!

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

GCC升级错误[已解决]

[复制链接]
发表于 2009-5-2 16:16:52 | 显示全部楼层 |阅读模式
目前系统升级时更新GCC
还需要按照官方文档http://www.gentoo.org/doc/zh_cn/gcc-upgrading.xml里写的这样做吗?

现在的GCC是否会自动切换到更高的版本?

GCC编译错误

下面是日志文件
/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/libgfortran/intrinsics/selected_int_kind.f90:35.5:

  do i = 1, c
    1
Error: Syntax error in array constructor at (1)
/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/libgfortran/intrinsics/selected_int_kind.f90:36.27:

    if (r <= int_infos (i) % range) then
                          1
Error: Syntax error in IF-expression at (1)
/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/libgfortran/intrinsics/selected_int_kind.f90:37.6:
/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/libgfortran/intrinsics/selected_int_kind.f90:37.6:

      _gfortran_selected_int_kind = int_infos (i) % kind
     1
Error: Unclassifiable statement at (1)
/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/libgfortran/intrinsics/selected_int_kind.f90:39.7:

    end if
      1
Error: Expecting END FUNCTION statement at (1)
/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/libgfortran/intrinsics/selected_int_kind.f90:40.5:

  end do
    1
Error: Expecting END FUNCTION statement at (1)
make[3]: *** [selected_int_kind.lo] 错误 1
make[3]: *** 正在等待未完成的任务....
libtool: compile:  /var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/build/./gcc/xgcc -B/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/build/./gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i$
libtool: compile:  /var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/build/./gcc/xgcc -B/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/build/./gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i$
make[3]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/build/i686-pc-linux-gnu/libgfortran'
make[2]: *** [all] 错误 2
make[2]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/build/i686-pc-linux-gnu/libgfortran'
make[1]: *** [all-target-libgfortran] 错误 2
make[1]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/build'
make: *** [bootstrap-lean] 错误 2
^[[31;01m*^[[0m
^[[31;01m*^[[0m ERROR: sys-devel/gcc-4.3.2-r3 failed.
^[[31;01m*^[[0m Call stack:
^[[31;01m*^[[0m               ebuild.sh, line   48:  Called src_compile
^[[31;01m*^[[0m             environment, line 4767:  Called toolchain_src_compile
^[[31;01m*^[[0m             environment, line 5288:  Called gcc_src_compile
^[[31;01m*^[[0m             environment, line 3061:  Called gcc_do_make
^[[31;01m*^[[0m             environment, line 2852:  Called die
^[[31;01m*^[[0m The specific snippet of code:
^[[31;01m*^[[0m       emake LDFLAGS="${LDFLAGS}" STAGE1_CFLAGS="${STAGE1_CFLAGS}" LIBPATH="${LIBPATH}" BOOT_CFLAGS="${BOOT_CFLAGS}" ${GCC_MAKE_TARGET} || die "emake failed with $$
^[[31;01m*^[[0m  The die message:
^[[31;01m*^[[0m   emake failed with bootstrap-lean
^[[31;01m*^[[0m
^[[31;01m*^[[0m   emake failed with bootstrap-lean
^[[31;01m*^[[0m
^[[31;01m*^[[0m If you need support, post the topmost build error, and the call stack if relevant.
^[[31;01m*^[[0m A complete build log is located at '/var/tmp/portage/sys-devel/gcc-4.3.2-r3/temp/build.log'.
^[[31;01m*^[[0m The ebuild environment file is located at '/var/tmp/portage/sys-devel/gcc-4.3.2-r3/temp/environment'.
^[[31;01m*^[[0m

想问下大虾们,升级GCC需要些什么做些什么步骤,以及上述问题如何解决。
发表于 2009-5-2 16:28:30 | 显示全部楼层
自己 gcc-config -l 查看一下,想用哪个版本自己换。

新装系统用每周编译的stage3,这样需要更新的东东不会太多,特别是gcc这样的大部头。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-3 11:02:35 | 显示全部楼层
Post by zhou3345;1982401
自己 gcc-config -l 查看一下,想用哪个版本自己换。

新装系统用每周编译的stage3,这样需要更新的东东不会太多,特别是gcc这样的大部头。


恩我知道替换方法了可是GCC升级错误没解决努力中。
回复 支持 反对

使用道具 举报

发表于 2009-5-3 11:24:26 | 显示全部楼层
在 /etc/make.conf 中添加 LC_ALL="C"  试试?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-3 11:49:11 | 显示全部楼层
Post by zhou3345;1982641
在 /etc/make.conf 中添加 LC_ALL="C"  试试?


恩我也找到这个贴http://linuxsir.cn/bbs/showthread.php?p=1933548#post1933548
正在编译中
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-3 11:50:24 | 显示全部楼层
恩,编译通过了,谢谢你的帮助。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-3 12:05:04 | 显示全部楼层
Post by zhou3345;1982401
自己 gcc-config -l 查看一下,想用哪个版本自己换。

新装系统用每周编译的stage3,这样需要更新的东东不会太多,特别是gcc这样的大部头。

# emerge -uav gcc
(请用你的CHOST和所要升级的版本号来替换“i686-pc-linux-gnu-3.4.5”
# gcc-config i686-pc-linux-gnu-3.4.5
# source /etc/profile

(重建libtool)
# emerge --oneshot -av libtool
(请用你的CHOST和所要升级的版本号来替换“i686-pc-linux-gnu-3.4.5”

这里我替换为
gcc-config i686-pc-linux-gnu-4.3.2-r3
* gcc-config: Could not locate 'i686-pc-linux-gnu-4.3.2-r3' in '/etc/env.d/gcc/' !
请问是什么原因

原来的版本是i686-pc-linux-gnu-4.3.2
现在
gcc-config -l
[1] i686-pc-linux-gnu-4.3.2 *
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-3 12:56:16 | 显示全部楼层
有人提示下吗?
4.3.2-r3


是不是 GCC 4.3.2与GCC 4.3.2-r3版本一样?都是gcc-config i686-pc-linux-gnu-4.3.2
不用理后面的-r*部分?
回复 支持 反对

使用道具 举报

发表于 2009-5-3 13:01:18 | 显示全部楼层
Post by chenhaolost;1982671
是不是 GCC 4.3.2与GCC 4.3.2-r3版本一样?都是gcc-config i686-pc-linux-gnu-4.3.2
不用理后面的-r*部分?

对啊,-r3是修正的版本号,不用理它。难道你居然加了-r*????
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-3 14:50:29 | 显示全部楼层
知道了,谢谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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