• 首页
  • 狐文
  • 狐图
  • About
狐窝
OvO
  1. 首页
  2. 未分类
  3. 正文

OpenWrt之quilt打补丁

2020年09月11日 503点热度 0人点赞 0条评论

 

2019-11 from--https://blog.csdn.net/hzlarm/article/details/103264754

OpenWrt使用的是quilt工具来制作补丁非传统的diff

diff和quilt使用方法参考博客

官方quilt文档

准备工作

cat > ~/.quiltrc <<EOF
QUILT_DIFF_ARGS="--no-timestamps --no-index -p ab --color=auto"
QUILT_REFRESH_ARGS="--no-timestamps --no-index -p ab"
QUILT_SERIES_ARGS="--color=auto"
QUILT_PATCH_OPTS="--unified"
QUILT_DIFF_OPTS="-p"
EDITOR="vim"
EOF
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
给gdb打补丁修复Remote ‘g’ packet reply is too long

准备gdb源码以及patch文件

make toolchain/gdb/{clean,prepare} V=s QUILT=1

进入到gdb源码目录

cd build_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/gdb-linaro-7.6-2013.05/

打上原来的所有补丁

quilt push -a

创建新的patch

quilt new 700-fix-remote-g-packet-reply-too-long.patch

修改源文件

quilt edit gdb/remote.c

--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -6110,8 +6110,19 @@ process_g_packet (struct regcache *regca
   buf_len = strlen (rs->buf);
 
   /* Further sanity checks, with knowledge of the architecture.  */
-  if (buf_len > 2 * rsa->sizeof_g_packet)
-    error (_("Remote 'g' packet reply is too long: %s"), rs->buf);
+  // if (buf_len > 2 * rsa->sizeof_g_packet)
+  //  error (_("Remote 'g' packet reply is too long: %s"), rs->buf);
+  if (buf_len > 2 * rsa->sizeof_g_packet) {
+    rsa->sizeof_g_packet = buf_len;
+    for (i = 0; i < gdbarch_num_regs (gdbarch); i++) {
+      if (rsa->regs[i].pnum == -1)
+        continue;
+      if (rsa->regs[i].offset >= rsa->sizeof_g_packet)
+        rsa->regs[i].in_g_packet = 0;
+      else
+        rsa->regs[i].in_g_packet = 1;
+    }
+  }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

查看修改前后对比

quilt diff

更新修改到patch文件

quilt refresh

返回buildroot目录

cd -

打上新的补丁

make toolchain/gdb/update V=s

重新编译

make toolchain/gdb/{clean,compile,install} V=s

cat ./scripts/remote-gdb

 

标签: diff no quilt
最后更新:2020年09月11日

OvO

狐狸

点赞
< 上一篇
下一篇 >
最新 热点 随机
最新 热点 随机
brave编译打包时dump_syms报错Couldn't locate EXE or DLL file 使用Windows Kits创建PE 及精简镜像 Windows精简部署相关简易内容 APC UPS SUA1000ICH 踩坑记 TrueNAS SCALE虚拟机无法 Ping主机 TrueNas Scale libvirt-sock RDMA RoCE相关资料 Linux系统修改网卡名(eth0-3) Linux系统打开SRIOV 构建android内核时DTC工具中的多个定义错误 Windows 来宾系统提示“安全删除硬件” 修改jar的三种方法(反编译jar) 如何在 Debian 10上安装和配置 VNC Openwrt内SR-IOV网卡桥接问题 Linux下编译android 时报错loadlocale.c:130 windows 查看文件夹被那个进程占用 MongoDB中的多表关联 mongodb 学习记录
网络爬虫判断页面是否更新 Caddy文件存储位置 linux后台运行和关闭、查看后台任务 Centos7安装Oracle12c 我的 fedora 調校手冊 我的Vultr VPS设置 验证码破解技术四部曲之使用K近邻算法(三) android可禁用组件的通用规则 在Centos7上安装Htop 2019年的人们如何生成HTTPS证书 如何禁用samba身份验证 Python 定义编码 5 个用于 SOHO 的 Linux 服务器发行版 史上最详细最全的Linux上安装Oracle的教程-centos7-humf android studio no executable code found at line 构建android内核时DTC工具中的多个定义错误 Oracle 12c 使用scott等普通用户的方法 Oracle相关程序下载链接
标签聚合
下载 docker 文件 linux git 编译 密码 https chrome e http 网卡 android ssl com 路由

COPYRIGHT © 2020 狐窝. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS