如何提交内核补丁--checkpatch.pl使用
来源:互联网 发布:淘宝格子铺怎么入驻 编辑:程序博客网 时间:2024/04/30 20:55
转自: http://blog.csdn.net/ganggexiongqi/article/details/7032625#
补丁检测:./scripts/checkpatch.pl xxx.patch
这个时候补丁就制作成了,但是还要使用内核提供的补丁检测工具检测一下补丁的正确性,应为我们发布的补丁不能把很明显错误带进去。
- helight@Zhwen:linux-2.6$ ./scripts/checkpatch.pl 0001-clean-up-code-style-on-samples-tracepoints-tracepoin.patch
- total: 0 errors, 0 warnings, 9 lines checked
-
- 0001-clean-up-code-style-on-samples-tracepoints-tracepoin.patch has no obvious style problems and is ready for submission.
- helight@Zhwen:linux-2.6$
scripts/checkpatch.pl输出的错误或警告有很多种,其中有一些比较具有代表性的,如下所示。在编写的阶段就应当充分注意它们。
错误
换行符为DOS格式(CR+LF)。
行首、行尾有多余的空格。
不是用制表符,而是用空格缩进。
switch语句和case语句的缩进不一致。
函数定义块(block)以外的“{”写在独立的行中。
注释符使用的是“//”。
全局变量或静态变量是明确指定以0初始化的。
前括号“(”或“[”后面有多余的空格。
后括号“)”或“]”前面有多余的空格。
逗号“,”后面没有空格。
if、for、while的前括号“(”前面没有空格。
else未与if块结尾的“}”写在同一行。
使用了将来要废弃的头文件或函数。
补丁内没有Signed-off-by行。
警告
补丁内含有的路径起点不是内核源码树的根目录。
1行的长度超过80字。
制表符前面有空格。
const关键词的使用方法有问题。
printk()没有指定输出级别(KERN_*)。
goto的分支终点的标签label缩进。
用“{}”括住了只有1行的代码块。
使用了volatile修饰符。
kmalloc()的返回值已经转换。
小结
使用scripts/checkpatch.pl可以在投稿前检查补丁的格式。将补丁列入邮件列表时,经常可以看到“未按照规则编写,请修改”的提示。一定要在发布前检查补丁的格式,才能集中对补丁内容进行讨论。
参考文献
Documentation/CodingStyle(内核源文档)
—Munehiro IKEDA
转自: http://book.2cto.com/201302/16274.html
- 如何提交内核补丁--checkpatch.pl使用
- 如何提交内核补丁
- 修改内核代码-打补丁-checkpatch.pl
- 内核补丁制作与提交
- 内核补丁制作与提交
- 内核补丁制作与提交
- 提交补丁
- 提交补丁
- 如何制作内核补丁及一些技巧
- 1.7如何使用补丁文件
- Github | 如何贡献Android开源项目和提交补丁
- git使用补丁方式进行软件代码提交
- git使用补丁方式进行软件代码提交
- 如何使用异步提交
- 我提交的一个内核补丁—CFS的child-runs-first
- linux内核补丁(diff和patch的使用)
- Linux内核补丁与patch/diff使用详解
- Linux内核补丁与patch/diff使用详解
- 《es6标准入门》学习笔记-第三章 变量的解构赋值
- C++11读书笔记—0(迟到的C++11)
- html基本模块
- StringBuilder&& StringBuffer
- Android Service与Activity之间通信的几种方式
- 如何提交内核补丁--checkpatch.pl使用
- Hiding Data from Forensic Imagers – Using the Service Area of a Hard Disk Drive
- 接口自动化测试TestNG 基本语法和TestNG工程建立 (2)
- input子系统分析
- 【Git/Github学习笔记】Git起步
- Android开发机与模拟器相互访问
- 【OpenCV笔记 15-2】OpenCV寻找物体最小包围矩形和最小包围圆
- 协同开发中svn使用规范
- 敌兵布阵