在编译内核时,常常会得到如下警告:

CHK include/linux/utsrelease.h

CALL scripts/checksyscalls.sh

:1104: warning: #warning syscall fadvise64 not implemented

:1272: warning: #warning syscall migrate_pages not implemented

:1328: warning: #warning syscall pselect6 not implemented

:1332: warning: #warning syscall ppoll not implemented

:1372: warning: #warning syscall epoll_pwait not implemented

虽然无数事实证明,这个警告对内核的编译没什么大影响,但是每次编译都提示这玩意,总觉得不爽,于是徐图去之。

分析编译过程信息可知,这段提示大概出现在调用scripts/checksyscalls.sh之后出现的。打开这个文件一看:

好家伙,原来不光是提示出来的那几个系统调用,还有更多的系统调用都没有定义啊!只不过内核厚此薄彼,没有忽略掉这些而已。这样就好办了,我们依样画葫芦,加上不就得了:

把这部分内容添加到#endif后面即可。