Linux内核开发  - 讨论区

标题:[zeuux-linux] 关于ICC编译内核

2009年04月05日 星期日 08:35

Jianjun Kong jianjun在zeuux.org
星期日 四月 5 08:35:39 CST 2009

LinuxDNA这个项目(linuxdna.com),使用ICC编译内核,听说性能提高40%,不知是不是真的?

我在Fedora10(gcc4.3.2(Red Hat 4.3.2-7))上成功安装ICC(10.1.015),一个朋友提供了一个Kernel-2.6.18-53.11AXS3-icc10.1.015.patch的补丁,但我在http://kernel.org/pub/linux/kernel/v2.6/ 目录下没有找到 linux-2.6.18-53 版本内核,最后下载了linux-2.6.18。我分别对2.6.18和2.6.27.13进行了测试。

我把补丁分别打进不同版本,补丁一些内容被忽略了。
在 2.6.18 中 不存在 arch/i386/boot/compressed/relocs.c,
在 2.6.27.13 中还不存在其他几个文件。

两个版本编译均出现很多语法警告,都出现相同的编译错误,并中止。
IPO: WARNING: File scope asm disables -ipo
arch/x86/kernel/acpi/realmode/wakemain.o: In function `main':
wakemain.c:(.text+0x14f): undefined reference to `__intel_new_proc_init'
make[3]: *** [arch/x86/kernel/acpi/realmode/wakeup.elf] Error 1
make[2]: *** [arch/x86/kernel/acpi/realmode/wakeup.bin] Error 2
make[1]: *** [arch/x86/kernel/acpi] Error 2
make: *** [arch/x86/kernel] Error 2
--------------------------

于是我在网上查找到一篇指导ICC编译内核的博客(http://blog.sina.com.cn/s/blog_3e68888d0100bxe7.html)

1、在(include/linux/compiler-intel.h)最后一行添加 #undef __compiler_offsetof

2、修改Makefile中的
    --start-group $(vmlinux-main)    为:
    --start-group $(vmlinux-main) /opt/intel/cc/10.1.022/lib/libirc_s.a

3、把(./scripts/Makefile.build)中的
	quiet_cmd_link_multi-y = LD $@
	cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps) $(cmd_secanalysis)
修改成:
	quiet_cmd_link_multi-y = LD $@
	cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps) $(cmd_secanalysis) /opt/intel/cc/10.1.022/lib/libirc_s.a

但还是编译出错:
compilation aborted for kernel/bounds.c (code 2)
make[1]: *** [kernel/bounds.s] Error 2
make: *** [prepare0] Error 2
--------------------------

最后我到linux-dna官方网站下载了打过补丁的内核源码,
$ make oldconfig
$ make HOSTCC=fcc CC=fcc Ar=xiar LD=xild
这里的fcc就是和icc版本对应的包装脚本
icc: command line error: invalid argument for option '-m'
make[1]: *** [arch/i386/kernel/asm-offsets.s] Error 1
make: *** [prepare0] Error 2
还是出错  :(
--------------------------

我估计对内核代码修改的问题,我在linuxdna网站并没有找到相关补丁的下载。
这里有没有人尝试ICC编译过内核?

-- 
Jianjun Kong
http://kongove.cn/

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-linux]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号