2.6.35内核编译:
AS arch/x86/kernel/entry_64.o
/tmp/ccINj1Ii.s: Assembler messages:/tmp/ccINj1Ii.s: Error: .size expression for do_hypervisor_callback does not evaluate to a constant
make[2]: *** [arch/x86/kernel/entry_64.o] 错误 1
make[1]: *** [arch/x86/kernel] 错误 2
make: *** [arch/x86] 错误 2
论坛,我的解决方式是:END(do_hypervisor_callback)改为END(xen_do_hypervisor_callback)
CC arch/x86/vdso/vgetcpu.o
CC arch/x86/vdso/vvar.o
VDSO arch/x86/vdso/vdso.so.dbg
gcc: 错误: elf_x86_64:没有那个文件或目录
make[2]: *** [arch/x86/vdso/vdso.so.dbg] 错误 1
make[1]: *** [arch/x86/vdso] 错误 2
make: *** [arch/x86] 错误 2
真没办法,可能是我想用X86_64的gcc编译出i386的执行文件的出错,然后就arch/x86/vdso/Makefile里面-m elf_x86_64 -Wl换成-m64 -Wl,-m elf_i386 -Wl换成-m32 -Wl
在写一写编译kernel的步骤:
make dep ---- 建立文件依赖关系
make localmodconfig ----本人觉得执行这步后就很省事啦
make menuconfig
make (bzImage)
make modules_install
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.35
cp System.map /boot/System.map-2.6.35
cp .config /boot/config-2.6.35
cd /boot
mkinitramfs -o initrd.img-2.6.35 2.6.35 ----(这里的名字可在Makefile配置)
depmod -a
update-grub ----更新GRUB
原文地址:http://blog.csdn.net/w627947015/article/details/7718065