1. 问题背景:最近在linux上给内核打补丁时遇到了一些Hunk # succeeded at ... 提示(提示如下图),很纠结这个Hunk提示意味着什么,是不是意味着补丁没打上?
[root@localhost kerneltest]# cat details | grep "Hunk" Hunk #1 succeeded at 2600 (offset 82 lines). Hunk #1 succeeded at 1179 (offset 5 lines). Hunk #5 succeeded at 3164 (offset 13 lines). Hunk #1 succeeded at 200 (offset 15 lines). Hunk #1 succeeded at 2394 with fuzz 1. Hunk #3 succeeded at 2097 (offset 12 lines). Hunk #4 succeeded at 2117 (offset 12 lines). Hunk #5 succeeded at 4937 (offset 12 lines). Hunk #6 succeeded at 6061 (offset 12 lines). Hunk #7 succeeded at 6133 (offset 12 lines). Hunk #8 succeeded at 6141 (offset 12 lines). Hunk #9 succeeded at 6304 (offset 12 lines). Hunk #10 succeeded at 6499 (offset 12 lines). Hunk #11 succeeded at 6545 (offset 12 lines).
讯享网
2. 查找原因:
首先,查看提示“Hunk #1 succeeded at 2600 (offset 82 lines)”相对应的内核文件与patch文件,会发现patch里的该代码块对应的行数与内核文件里找到的该代码块的对应行数发生了82行的偏移。
因此,可以手动改变patch文件里的内码对应的行数,这样子,针对该内核打patch时就不会发生报错。
3. 在有“Hunk# succeeded at (offset lines)"提示下,验证patch补丁是否成功打上?
a.对照组:在第2步查找原因中手动改变patch对应行数,生成不会报Hunk提示的补丁。
b.实验组:patch -p1 <*.patch 文件自动打上patch,会出现Hunk提示。
实验结果:a(对照组)与b(实验组)打上补丁后的内核一样,没有差异。因为我认为,出现“Hunk# succeeded at (offset lines)"提示应该是代表补丁成功打上,只是行数相对于原补丁发生了几行偏移。
4. 疑问?
(1)Linux设定“Hunk# succeeded at (offset lines)"提示的官方原因是什么?什么情况下出现这种提示?
(2)Hunk #1 succeeded at * with fuzz 与Hunk #3 succeeded at * (offset 12 lines)有什么不同? with fuzz与offset lines有啥不同呢?
期待大神的回答。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/53599.html