- 论坛徽章:
- 0
|
本帖最后由 zzwevil 于 2012-12-22 18:16 编辑
RHEL x86_64升级安装GCC make出现[c-lang.o] 错误 1,求帮助,搞了几天无果。google此问题和相关的解决办法,只有很少的资料,试过一些,看上去比较靠谱的修改gmp.h也不行。
需求:
(GCC) 4.4.6 准备升级至GCC 4.6.3
当前环境:DELL T620 E5 8G ,RHEL 6.2 x86_64
m4 (GNU M4) 1.4.13
(GCC) 4.4.6
gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4)
Copyright © 2010 Free Software Foundation, Inc.
[root@xxxx]# rpm -qa | grep gcc
libgcc-4.4.6-3.el6.i686
gcc-4.4.6-3.el6.x86_64
gcc-gfortran-4.4.6-3.el6.x86_64
libgcc-4.4.6-4.el6.x86_64
gcc-gfortran-4.4.6-4.el6.x86_64
libgcc-4.4.6-4.el6.i686
gcc-c++-4.4.6-4.el6.x86_64
gcc-4.4.6-4.el6.x86_64
gcc-c++-4.4.6-3.el6.x86_64
libgcc-4.4.6-3.el6.x86_64
过程:下载,编译安装最新gmp,mpfr,mpc,在安装GCC时,configure通过,make出错。
make结果如下:
In file included from /home/zzw/insdir/gcc-4.7.2/gcc/c-lang.c:24:
/home/zzw/insdir/gcc-4.7.2/gcc/system.h:499: 错误:与‘strsignal’类型冲突
/usr/include/string.h:566: 附注:‘strsignal’的上一个声明在此
在包含自 ./tm.h:19 的文件中,
从 /home/zzw/insdir/gcc-4.7.2/gcc/c-lang.c:26:
./options.h:3738:2: 错误:#error too many masks for ix86_isa_flags
In file included from /home/zzw/insdir/gcc-4.7.2/gcc/input.h:25,
from /home/zzw/insdir/gcc-4.7.2/gcc/tree.h:27,
from /home/zzw/insdir/gcc-4.7.2/gcc/c-lang.c:27:
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/line-map.h:208: 错误:‘CHAR_BIT’未声明(不在函数内)
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/line-map.h:208: 错误:位段‘reason’的宽度不是一个整数常量
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/line-map.h:208: 警告:‘reason’比其类型的值要窄
在包含自 /home/zzw/insdir/gcc-4.7.2/gcc/tree.h:32 的文件中,
从 /home/zzw/insdir/gcc-4.7.2/gcc/c-lang.c:27:
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:87:5: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:87:5: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:90:6: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:90:6: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:93:7: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:93:7: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:96:8: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:96:8: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:99:9: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:99:9: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:102:10: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:102:10: 错误:#if 中用零做除数
/home/zzw/insdir/gcc-4.7.2/gcc/real.h:105:9: 错误:#error "REAL_WIDTH > 6 not supported"
In file included from /home/zzw/insdir/gcc-4.7.2/gcc/c-family/c-common.h:26,
from /home/zzw/insdir/gcc-4.7.2/gcc/c-tree.h:25,
from /home/zzw/insdir/gcc-4.7.2/gcc/c-lang.c:28:
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/cpplib.h:225: 错误:位段‘type’的宽度不是一个整数常量
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/cpplib.h:225: 警告:‘type’比其类型的值要窄
在包含自 /home/zzw/insdir/gcc-4.7.2/gcc/c-family/c-common.h:26 的文件中,
从 /home/zzw/insdir/gcc-4.7.2/gcc/c-tree.h:25,
从 /home/zzw/insdir/gcc-4.7.2/gcc/c-lang.c:28:
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/cpplib.h:267:3: 错误:#error "Cannot find a least-32-bit signed integer type"
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/cpplib.h:269: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cppchar_t’
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/cpplib.h:270: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cppchar_signed_t’
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/cpplib.h:768: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cpp_interpret_charconst’
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/cpplib.h:779: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cpp_host_to_exec_charset’
/home/zzw/insdir/gcc-4.7.2/gcc/../libcpp/include/cpplib.h:954: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cpp_parse_escape’
make[3]: *** [c-lang.o] 错误 1
make[3]: Leaving directory `/usr/local/gcc463/gcc'
make[2]: *** [all-stage1-gcc] 错误 2
make[2]: Leaving directory `/usr/local/gcc463'
make[1]: *** [stage1-bubble] 错误 2
make[1]: Leaving directory `/usr/local/gcc463'
make: *** [all] 错误 2
#以上操作是在PC上的操作结果,与DELL SERVER上操作结果相同。
求解惑。
|
|