patch补丁文件制作 使用和常见问题
1. 给源码树加 patch
进入源码树的根目录下:
cd SRC_DIR
patch -p 1 < /path/to/your/patch
-p 1 指定忽略的目录个数,如你的patch头为 diff -urN orig/include/linux/module.h tgt/include/linux/module.h,则是对 $SRC_DIR/ 下的 include/linux/modue.h 应用该patch
-p 2 则是对$SRC_DIR/ 下的 linux/modue.h 应用该 patch
2. 移去加入的 patch
cd SRC_DIR
patch -R -p1 </path/to/your/patch
3. 模拟打补丁
有时我们需要测试一下,自己生成patch 能否正确的应用到目标源码树下而没有冲突,则:
patch --dry-run -p1 < /path/to/your/patch
4. 常见错误
patch: **** malformed patch at line 129
出现这中错误,一般是 patch 生成后被手工修改了,如下的patch:
diff -urN a/include/asm-mips/module.h b/include/asm-mips/module.h
--- a/include/asm-mips/module.h 1970-01-01 00:00:00.000000000 +0000
+++ b/include/asm-mips/module.h 2008-01-03 16:51:23.000000000 +0000
@@ -104,6 +104,8 @@
#define MODULE_PROC_FAMILY "NEVADA "
#elif defined CONFIG_CPU_R8000
#define MODULE_PROC_FAMILY "R8000 "
+#elif defined CONFIG_CPU_R9721
+#define MODULE_PROC_FAMILY "R9721"
#elif defined CONFIG_CPU_R10000
#define MODULE_PROC_FAMILY "R10000 "
#elif defined CONFIG_CPU_RM7000
数字6,表示记录了6行原始文件,数字8表示记录了8行目标文件
如果你这时手工加了一行:
@@ -104,6 +104,8 @@
#define MODULE_PROC_FAMILY "NEVADA "
#elif defined CONFIG_CPU_R8000
#define MODULE_PROC_FAMILY "R8000 "
+#elif defined CONFIG_CPU_R9721
+#define MODULE_PROC_FAMILY "R9721"
+#define MODULE_PROC_ABC "ABC"
#elif defined CONFIG_CPU_R10000
#define MODULE_PROC_FAMILY "R10000 "
#elif defined CONFIG_CPU_RM7000
这是你应用这个补丁,patch 就会提示失败,并输出:
patch: **** malformed patch at line xxx
应用时,patch 都会检查受影响的行是否与记录在两个 @@ 之间的数值一致,手工加一行后,记录的目标文件行数为9,因此patch会失败。
将@@ -104,6 +104,8 @@ 改为@@ -104,6 +104,9 @@ 即可成功打上patch
patch补丁文件制作 使用和常见问题相关推荐
- linux -- patch补丁文件以及相关内容
本文的目的是向Linux新手介绍一种无价的资源,Larry Wall的patch程序.patch是用来查找文件之间差异的GNU diff命令的一个接口:diff有很多选项,但是该命令最常用的用途是用来 ...
- buildroot patch 补丁文件使用方法
在使用 buildroot 编译内核源码时,时常会有修改驱动或第三方包的需求,直接在 output/build/ 下修改源码,make clean 修改内容就会丢失,使用打补丁方式,把补丁包放到pac ...
- u-boot的patch文件制作
首先明白为什么要制作patch文件,因为u-boot的移植过程需要根据实际需要修改通用u-boot,如果每次手工修改的话,太麻烦,所以用了patch文件一步到位,这点类似于makefile的作用,哈哈 ...
- patch 补丁制作方法
补丁制作方法: diff -uNr A B > C.patch A是内核源码: linux-2.6.31 B是修改后的内核源码:linux-2.6.31_XXX C是生成的补丁文件:li ...
- Rimworld Mod制作教程3 使用Xpath制作patch(补丁)
文章目录 废话 核心内容 1 使用Xpath制作patch(补丁) 1.1 基本格式 1.2 手术类型 1.3 ~~偷窥~~ 参考他人代码 废话 rimworld在A17版本后提供了一个新的编写mod ...
- 打补丁文件时候patch -p1命令的含义
其实patch在具体使用的时候是不用指定原文件的,因为补丁文件中都已经记载了原文件的路径和名称.patch足够聪明可以认出来.但是有时候会 有点小问题.比如一般对两个目录diff的时候可能已经包含了原 ...
- patch 修补文件(给文件打补丁)
patch 修补文件(给文件打补丁) 功能:修补文件.使用补丁文件,对源文件进行更改.更改方式根据参数来设定. 倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行.如果配合修补文件的方式则能一次 ...
- patch diff 补丁文件
diff 和 patch 是一对工具,使用这对工具可以获取更新文件与历史文件的差异,并将更新应用到历史文件上.在数学上说,diff就是对两个集合的差运算,patch就是对两个集合的和运算.在数学上我们 ...
- 补丁的制作和使用:diff和patch
原理 现在有一个文件file1,通过修改file1得到了文件file2,然后用diff工具比较file1和file2的差异,得到一个补丁文件file.patch,它记录了两个文件的不同之处,patch ...
- 【patch】x64dbg_2018_10_11导出的内存补丁文件内容如何理解地址偏移(va内存,Rva相对,Fva文件)
最近分析了一个程序,导出的一个文件 导出菜单 补丁文件gdul4.5.0.5.1337内容: >gdul_win64.exe 0000000000077D32:7E->EB 使用winhe ...
最新文章
- javascript的Array对象
- 【每日一算法】相同的树
- hive或mysql报错Too many connections
- MyBatis SQL注入隐患及防范
- 交通灯程序设计C语言,单片机C语言程序设计:LED 模拟交通灯
- 《计算机组成原理》唐朔飞第三版知识点总结
- 医学统计学计算机操作教程第3版附录答案,医学统计学课后习题集答案解析.doc...
- 2021年低压电工新版试题及低压电工考试总结
- 用telnet逛bbs
- java 各种编码间转换
- python数据库开发 dga_使用深度学习检测DGA(域名生成算法)——LSTM的输入数据本质上还是词袋模型...
- 从地图投影折射出的中西方文化差异
- Allure 安装及使用
- 106短信群发如何在移动信息时代下实现精准营销
- 什么是链接?(动态链接库和静态链接库的对比)
- oracle撤销段的功能,oracle撤销表空间和回滚段
- Json.NET使用入门(二)【反序列化】
- 搞懂大数据,这篇文章一定要细细品读! 大数据
- iview实现视频文件上传
- 她没有你会使用计算机英语,2017中考英语句子翻译题解题方法加真题演练附答案...