Linux打补丁遇到Hunk# succeeded at提示

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 fuzzoffset lines有啥不同呢?

期待大神的回答。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值