gentoo多版本gcc共存
前几天装xorp的时候发现我当前的gcc版本是4.4.4,编译时提示
error: #ident is a deprecated GCC extension
看来是gcc的版本太新了,已经不兼容这样的一些老用法,于是想emerge一个老版本的gcc,emerge过程倒是简单,到/usr/portage/下找到老版本的ebuild再emerge它就可以了,但是在编译老版本gcc的出现下面的错误:
/var/tmp/portage/sys-devel/gcc-3.4.6-r2/work/gcc-3.4.6/gcc/errors.c:1: error: bad value (native) for -march= core2
后来查资料了解到,这是由于/etc/make.conf里我设定的CFLAGS里面-marc=core2,而这种用法只有.3.2-r3以后的gcc版本才支持,系统在编译老版本的gcc时并不是用当前的新版本去直接编译老版本的gcc,而是使用要编译的老版本gcc去自己编译自己,所以make.conf中的-march=core2对于我要编译的较老的gcc版本是不支持的故而报错。解决方案就是将-march改为兼容老版本的值就ok了
今天装XORP遇到和欢哥一样的问题,百度到了欢哥这。。。HOHO~
[回复]