size expression for do_hypervisor_callback does not evaluate to a constant

本文提供了一份详细的2.6.35 Linux内核编译教程,包括遇到的错误及其解决办法,如修改.do文件的名称及调整编译参数等。同时还介绍了完整的编译步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


详细一点的讲解见鸟哥的Linux私房菜部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值