+ -
当前位置:首页 → 问答吧 → 有谁用intel c++编译过内核,说说经验.

有谁用intel c++编译过内核,说说经验.

时间:2008-12-20

来源:互联网

我是直接修改Makefile,将gcc相关都改为icc。
make menuconfig通过,
但是make不能通过,好像是不接受"-m"参数。

作者: kangtian   发布时间: 2008-12-20

There is a project to compile the Linux kernel with ICC:

http://www.pyrillion.org/linuxkernelpatch.html

作者: RTL   发布时间: 2008-12-20

好像内核有部分特征只能用gcc

作者: ch_fb   发布时间: 2008-12-20

引用:
作者: RTL
There is a project to compile the Linux kernel with ICC:

http://www.pyrillion.org/linuxkernelpatch.html
内容好像都有四年久矣,未知今天仍能通用否?

作者: d00m3d   发布时间: 2008-12-20

我試了下 裝裏面的 kicc 然後用kicc 編譯 内核(沒有打裏面的補丁)
代码:
 make CC=kicc LD=xild AR=xiar
可以順利 編譯,而且編譯出來的 内核也正常
kicc.jpg


我找到了 另一种方法 http://software.intel.com/en-us/foru...c/61873/page/1

作者: RTL   发布时间: 2008-12-21

我用了上面提供的wrapper来编译,make bzImage不能通过,但是make modules却成功了。

作者: kangtian   发布时间: 2008-12-21

用 上面提供的wrapper来编译 還要 按照 那貼的 説明 改 幾個文件才能 順利 make bzImage

作者: RTL   发布时间: 2008-12-21

make CC=kicc LD=xild AR=xiar

这样不能用 icc编译内核吧,我试了下,还是gcc编译(编译过程中,进程中没有icc,只有gcc)
应该用HOSTCC=kicc

作者: kangtian   发布时间: 2008-12-21

引用:
作者: kangtian
我是直接修改Makefile,将gcc相关都改为icc。
make menuconfig通过,
但是make不能通过,好像是不接受"-m"参数。
用intel c++编译内核是出于什么考虑?
要最大程度发挥Intel CPU的性能?

作者: think365   发布时间: 2008-12-21

我是 AMD 拥凳,看来是无法受惠於 icc 的了。。。

作者: d00m3d   发布时间: 2008-12-23

现在有重大突破,
我现在make vmlinux能通过,但是make bzImage却失败。
问下,能不能手工压缩vmlinux

作者: kangtian   发布时间: 2008-12-24

还有intel c++并不是只针对intel的处理器,amd的处理器同样适用。
intel c++针对的是指令集。

作者: kangtian   发布时间: 2008-12-24

bzImage 我到可以 make出來 但發現 2.6.25-28 的内核無法啓動
2.6.18的内核可以正常 ,其他版本的内核 還沒測試

ps:我用的是 icc 10.1.021

作者: RTL   发布时间: 2008-12-24

make CC=kicc LD=xild AR=xiar
这样仍然是用gcc编译的

作者: kangtian   发布时间: 2008-12-24

我用的是這個腳本

代码:

#--------------------------------------------------------

# This is a wrapper script for icc 10.1 on IA-32

#--------------------------------------------------------

ARGS=$@

ICCARGS="-fno-builtin"


# For loop to change options of icc

for ARG in $@

do

case $ARG in

-fno-stack-protector )

ICCARGS="$ICCARGS -fno-stack-security-check"

;;


-Wno-pointer-sign | -msoft-float | -ffreestanding )

;;


* )

ICCARGS="$ICCARGS $ARG"

;;

esac

done


icc $ICCARGS


exit $?

作者: RTL   发布时间: 2008-12-24

恩,这个脚本可以冲掉icc不接受的参数。

作者: kangtian   发布时间: 2008-12-24

终于编译成功了,但是生成的内核却不能启动。
发现grub引导时:
kernel /boot/kernel-icc
出现信息:setup=0x4000

引导正常的内核信息是:setup=0x2c00

作者: kangtian   发布时间: 2008-12-27

MS现在GCC的性能也不错了把。

作者: trublemaker   发布时间: 2008-12-27

强烈关注,不知ICC编译能比GCC提高多少

作者: godloveme   发布时间: 2009-02-04