2.6.31内核编译处理3个错误 (redhat)

来源:互联网 发布:mysql 指定账户已存在 编辑:程序博客网 时间:2024/05/17 22:45

 

编译2.6.31内核时,遇到3个错误。网上资料也很少能参考的,记录一下处理过程。

错误提示1

drivers/built-in.o(.init.text+0x3bad): In function `con_init':

include/trace/events/kmem.h:47: undefined reference to `.L1452'

解决:

vi /usr/src/linux/drivers/char/vt.c

删除以下行(2875)

vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);  

在相同位置添加

vc_cons[currcons].d = vc = alloc_bootmem(sizeof(struct vc_data));

 

错误提示2

drivers/char/vt.c: In function `con_init':

drivers/char/vt.c:2875: error: implicit declaration of function `alloc_bootmem'

drivers/char/vt.c:2875: warning: assignment makes pointer from integer without a cast

原因:vt.c中引用了alloc_bootmem,但是找不到相关.h定义文件或没有在相关的头文件.h中定义

解决:

 

# vi /usr/src/linux/drivers/char/vt.c,添加以下这行:

 

#include <linux/bootmem.h>

 

错误提示3

drivers/message/fusion/mptsas.c: In function `mptsas_port_delete':

drivers/message/fusion/mptsas.c:105: sorry, unimplemented: inlining failed in call to 'mptsas_set_rphy': function body not available

drivers/message/fusion/mptsas.c:467: sorry, unimplemented: called from here

原因:

mptsas_port_delete中引用了mptsas_set_rphy,但mptsas_set_rphy的定义却在mptsas_port_delete之后。

解决:

vi /usr/src/linux/drivers/message/fusion/mptsas.c,将mptsas_set_rphy的定义(第483行起)移动到mptsas_port_delete的定义(第446行)前面即可。

 

原创粉丝点击