本次问题出现在编译linux-2.6.15版的内核时出现的,其他版本的内核大同小异。
在make menuconfig配置完之后(选的默认配置),然后就make出现如下错误:
CHK include/linux/version.h CHK include/linux/compile.h CHK usr/initramfs_list SYSCALL arch/i386/kernel/vsyscall-int80.so gcc: 错误: elf_i386:没有那个文件或目录 make[1]: *** [arch/i386/kernel/vsyscall-int80.so] 错误 1 make: *** [arch/i386/kernel] 错误 2
原因是 gcc 4.6 不再支持 linker-style 架构。将 arch/i386/kernel中的Makefile中的"-m elf_i386"替换成"-m32"。