- 论坛徽章:
- 0
|
回复 #5 prolj 的帖子
> 其实这个意义不是很大,因为你跑的 testcase 不一样得分也是不一样的。
对,得看什么样的benchmark
>客观的说,在 x86 上, ICC 做的很好(不过有人和 VS 比说 VS 编译出来的代码效率更高), GCC的确有很大的改进空间(每个 Arch 都是,写出来高水平的 md 不容易,我现在体会到了)
icc估计更多microarchitecture 级别的优化, 而不是通用的优化。 Intel的icc开发工程师也有很多给gcc的x86 backend提补丁的
>不否认我也使用 OpenSolaris 去跑 SUN cc 了,可是在 OpenSolaris 上连 GCC 4 都无法编译(也许可以,太麻烦了)我就放弃了,意义不大,5 年之后 SUN cc 和 ICC 还有那个 ORC 对 GCC 还会有多少优势?10 年之后还会谁还会存在?
opensolarsi上编译gcc不麻烦,我就在用gcc 4.3.1呢。 我的笔记,仅供参考:
44) 在Solaris/x86 上编译gcc
(注意,只针对4.0以及更新的gcc)
准备:
-> 安装libintl, sunfreeware上有;
-> 安装libmpfr和libgmp,用blastwave安装即可;
配置:
$ gtar jvxf gcc-4.3.1.tar.bz2
$ cd gcc-4.3.1
$ mkdir src
$ mv * src/
$ mkdir obj/ dst/
$ cd obj/
$ ../src/configure --prefix=/export/home/soft/gcc-4.3.1/dst/ --with-gnu-as \
--with-as=/usr/sfw/bin/gas --with-ld=/usr/ccs/bin/ld --without-gnu-ld
--enable-shared --enable-languages=c,c++ --with-gmp=/opt/csw/ --with-mpfr=/opt/csw/
/* 你可以直接:
*
* $ gmake
* 来编译gcc; 也可以:
*
* $ make bootstrap
* 让gcc把编译过程分成3个stage,每一个stage的结果用来编译下一个stage,这是
* 一个bootstraping的过程。如果硬盘空间不足,还想bootstrap,那就:
*
* $ gmake bootstrap-lean
*/
$ gmake bootstrap
/*{{{*/ 如果出现错误:
libcpp/下编译时找不到libintl_gettext等符号:
$ cd libcpp/
$ vi Makefile 给CFLAGS加上-L/usr/local/lib -lintl
$ gmake
//继续
$ cd ..
$ gmake
其他目录出现这个错误也是一样的办法。
/*}}}*/
[FYI] Solaris上是否可以用gcc和GNU ld来编译、连接程序? gcc官方文档推荐使用SUN的link-editor,
亦即/usr/ccs/bin/ld,而不是GNU ld。
网上有人说,如果编译gcc时指定了--with-gnu-ld,那就可以把GNU ld的路径export到环境变量
GCC_EXEC_PREFIX中去,gcc就可以使用GNU ld了。 (该方法尚待验证) |
|