- 论坛徽章:
- 0
|
各位大牛
你们好
使用的是centos 6.7 内核版本为:Linux Nginx-A 2.6.32-573.7.1.el6.x86_64
为了学习IPtables,与7层协议,需要做的内核支持。
需给内核打补丁支持7层协议,netfilter-layer7-v2.22后期没有人开始与维护。现在只能支持到 2.6.28的版本。
然后准备升级内核(应该说是降低内核版本),
使用make meunconfig 只能选择7层协议的支持。
进行MAKE时,出现如下报错。
[root@Nginx-A linux-2.6.28.10]# make
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CALL scripts/checksyscalls.sh
CHK include/linux/compile.h
dnsdomainname: Unknown host
AS arch/x86/xen/xen-asm_64.o
arch/x86/xen/xen-asm_64.S: Assembler messages:
arch/x86/xen/xen-asm_64.S:48: Error: suffix or operands invalid for `mov'
arch/x86/xen/xen-asm_64.S:55: Error: suffix or operands invalid for `test'
arch/x86/xen/xen-asm_64.S:72: Error: suffix or operands invalid for `mov'
arch/x86/xen/xen-asm_64.S:90: Error: suffix or operands invalid for `test'
arch/x86/xen/xen-asm_64.S:110: Error: suffix or operands invalid for `setz'
arch/x86/xen/xen-asm_64.S:116: Error: suffix or operands invalid for `cmp'
make[1]: *** [arch/x86/xen/xen-asm_64.o] Error 1
make: *** [arch/x86/xen] Error 2
到网上搜索了好久,给的解决方法都测试了。这个错误还是存在
方法1.修改vi /usr/src/linux-2.6.28.10/arch/x86/kernel/entry_64.S
ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
CFI_STARTPROC
/* Since we don't modify %rdi, evtchn_do_upall(struct *pt_regs) will
see the correct pointer to the pt_regs */
movq %rdi, %rsp # we don't return, adjust the stack frame
CFI_ENDPROC
CFI_DEFAULT_STACK
11: incl %gs:pda_irqcount
movq %rsp,%rbp
CFI_DEF_CFA_REGISTER rbp
cmovzq %gs:pda_irqstackptr,%rsp
pushq %rbp # backlink for old unwinder
call xen_evtchn_do_upcall
popq %rsp
CFI_DEF_CFA_REGISTER rsp
decl %gs:pda_irqcount
jmp error_exit
CFI_ENDPROC
END(do_hypervisor_callback) >>修改为:END(xen_do_hypervisor_callback)
错误依旧存在。。
在线等待解决方法,多谢各位大牛帮助。。。 |
|