Rebuild with Intel Compiler 1.Perform step 1 in the previous section 2.Setup Intel Compiler environment: a.Set the compiler environment: $ source /opt/intel/Compiler/11.1/XXX/bin/ia32/iccvars_ia32.sh where XXX is the particular version you are using b. Edit icc.cfg (in bin directory) and add the following line: -mia32 3. Make source code modifications. a. Modify include/linux/compiler-intel.h and add the following line at the end of the file: #undef __compiler_offsetof b. Modify arch/x86/include/asm/xor_32.h at line 843, change : "+r" (lines), To: : "+rm" (lines), This change is required because the code is written to work with gcc's assumption that the stack is 16 byte aligned (contrary to the ABI) and thus there is one additional register available. c. Add libirc_s.a to the link command by modifying Makefile at line 696. Change: --start-group $(vmlinux-main) --end-group to: --start-group $(vmlinux-main) /opt/intel/Compiler/11.1/XXX/lib/ia32/libirc_s.a --end-group d. Modify arch/x86/include/asm/delay.h and remove the references to __bad_udelay and replace the calls to it with 0. e. Modify include/linux/log2.h and remove the references to ____ilog2_NaN() and replace the calls to it with 0. 4. Start the build: $ cd /rpmbuild/BUILD/kernel-2.6.27/linux-2.6.27.i686 $ make clean $ make HOSTCC=icc CC=icc CPP="gcc -E" CONFIG_DEBUG_SECTION_MISMATCH=y KBUILD_MODPOST_WARN=n bzImage $ make HOSTCC=icc CC=icc CPP="gcc -E" CONFIG_DEBUG_SECTION_MISMATCH=y KBUILD_MODPOST_WARN=n modules $ make HOSTCC=icc CC=icc CPP="gcc -E" CONFIG_DEBUG_SECTION_MISMATCH=y KBUILD_MODPOST_WARN=n modules_install $ make HOSTCC=icc CC=icc CPP="gcc -E" CONFIG_DEBUG_SECTION_MISMATCH=y KBUILD_MODPOST_WARN=n install