编译linux-2.6.35的时候居然报错:
.size expression for do_hypervisor_callback does not evaluate to a constant
这里加"居然"是因为之前对这个内核编译过很多次,都没有遇到这个问题,不知到这次为啥碰到这个问题。
碰到问题了,不能老抱怨人品了,还是的解决,于是根据报错的提示,找到文件arch/x86/kernel/entry_64.S的do_hypervisor_callback函数,发现这个函数的代码显然有语法错误:
- > ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
-
> [..]
-
> END(do_hypervisor_callback)
于是将其改为END(xen_do_hypervisor_callback),编译通过。
比较费解的是,为什么内核中会有这种低级错误,更令人费解的是,为啥以前编译的时候没有报错!
阅读(6874) | 评论(0) | 转发(0) |