size expression for do_hypervisor_callback does not evaluate to a constant

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私房菜部分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章