内核交叉编译报错:调用tty_audit_push()参数不足
内核交叉编译错误:tty_audit_push()参数缺失
错误核心
调用tty_audit_push()时未传入函数声明要求的struct tty_struct *tty参数,该问题与头文件是否引入无关。
具体错误信息
../kernel/audit.c:995:26: error: too few arguments to function call, single argument 'tty' was not specified
err = tty_audit_push();
~~~~~~~~~~~~~~ ^
../include/linux/tty.h:621:1: note: 'tty_audit_push' declared here
extern void tty_audit_push(struct tty_struct *tty);
排查与解决方向
- 核对内核版本差异:不同内核分支中
tty_audit_push()的函数原型可能变更,你参考的同类代码可能来自参数要求不同的版本 - 定位可用的tty结构体实例:在
audit.c第995行的上下文里,寻找当前可用的struct tty_struct指针(比如从进程关联的tty、函数参数传入等渠道获取) - 检查编译宏影响:确认没有编译选项或宏定义篡改了
tty_audit_push()的函数声明
内容的提问来源于stack exchange,提问作者Anthony Robert Brown
相关产品推荐
相关产品推荐

